diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewChannelAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewChannelAction.java index d8906b8..dca44dc 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewChannelAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewChannelAction.java @@ -32,11 +32,7 @@ } String channelName = JOptionPane.showInputDialog("Channel Name:"); if (channelName == null) return; - model.addChannelGenerator(new DataflowChannelGenerator(channelName)); - ResourceDependencyGraph resourceGraph = NecessityOfStoringResourceStates.doDecide(model); - ResourceDependencyGraph resourceDependecyGraph = SelectableDataTransfers.init(resourceGraph); - editor.setResourceDependencyGraph(resourceDependecyGraph); - editor.constructGraph(model, resourceDependecyGraph); + editor.addChannelGenerator(new DataflowChannelGenerator(channelName)); } } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewIOChannelAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewIOChannelAction.java index 08fc200..e1016d2 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewIOChannelAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewIOChannelAction.java @@ -31,11 +31,7 @@ } String channelName = JOptionPane.showInputDialog("I/O Channel Name:"); if (channelName == null) return; - model.addIOChannelGenerator(new DataflowChannelGenerator(channelName)); - ResourceDependencyGraph resourceGraph = NecessityOfStoringResourceStates.doDecide(model); - ResourceDependencyGraph resourceDependecyGraph = SelectableDataTransfers.init(resourceGraph); - editor.setResourceDependencyGraph(resourceDependecyGraph); - editor.constructGraph(model, resourceDependecyGraph); + editor.addIOChannelGenerator(new DataflowChannelGenerator(channelName)); } } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewResourceAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewResourceAction.java index f2bf3bd..ac7622f 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewResourceAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewResourceAction.java @@ -31,11 +31,7 @@ } String resName = JOptionPane.showInputDialog("Resourece Name:"); if (resName == null) return; - model.addIdentifierTemplates(new IdentifierTemplate(resName, 0)); - ResourceDependencyGraph resourceGraph = NecessityOfStoringResourceStates.doDecide(model); - ResourceDependencyGraph resourceDependecyGraph = SelectableDataTransfers.init(resourceGraph); - editor.setResourceDependencyGraph(resourceDependecyGraph); - editor.constructGraph(model, resourceDependecyGraph); + editor.addIdentifierTemplate(new IdentifierTemplate(resName, 0)); } } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java index 8715432..c30904d 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java @@ -259,6 +259,58 @@ } } + public void addIdentifierTemplate(IdentifierTemplate res) { + graph.getModel().beginUpdate(); + Object parent = graph.getDefaultParent(); + try { + graph.insertVertex(parent, null, res.getResourceName(), 20, 20, 80, 30, + "shape=ellipse;perimeter=ellipsePerimeter"); // insert a resource as a vertex + } finally { + graph.getModel().endUpdate(); + } + } + + public void addChannelGenerator(DataflowChannelGenerator channelGen) { + graph.getModel().beginUpdate(); + Object parent = graph.getDefaultParent(); + try { + mxGeometry geo1 = new mxGeometry(0, 0.5, PORT_DIAMETER, PORT_DIAMETER); + geo1.setOffset(new mxPoint(-PORT_RADIUS, -PORT_RADIUS)); + geo1.setRelative(true); + + mxGeometry geo2 = new mxGeometry(1.0, 0.5, PORT_DIAMETER, PORT_DIAMETER); + geo2.setOffset(new mxPoint(-PORT_RADIUS, -PORT_RADIUS)); + geo2.setRelative(true); + + Object channel = graph.insertVertex(parent, null, channelGen.getChannelName(), 150, 20, 30, 30); // insert a channel as a vertex + mxCell port_in = new mxCell(null, geo1, "shape=ellipse;perimter=ellipsePerimeter"); + port_in.setVertex(true); + graph.addCell(port_in, channel); // insert the input port of a channel + mxCell port_out = new mxCell(null, geo2, "shape=ellipse;perimter=ellipsePerimeter"); + port_out.setVertex(true); + graph.addCell(port_out, channel); // insert the output port of a channel + } finally { + graph.getModel().endUpdate(); + } + } + + public void addIOChannelGenerator(DataflowChannelGenerator ioChannelGen) { + graph.getModel().beginUpdate(); + Object parent = graph.getDefaultParent(); + try { + mxGeometry geo2 = new mxGeometry(1.0, 0.5, PORT_DIAMETER, PORT_DIAMETER); + geo2.setOffset(new mxPoint(-PORT_RADIUS, -PORT_RADIUS)); + geo2.setRelative(true); + + Object channel = graph.insertVertex(parent, null, ioChannelGen.getChannelName(), 150, 20, 30, 30); // insert an I/O channel as a vertex + mxCell port_out = new mxCell(null, geo2, "shape=ellipse;perimter=ellipsePerimeter"); + port_out.setVertex(true); + graph.addCell(port_out, channel); // insert the output port of a channel + } finally { + graph.getModel().endUpdate(); + } + } + public boolean connectEdge(mxCell src, mxCell dst) { ChannelGenerator srcCh = model.getChannelGenerator((String) src.getValue()); if (srcCh == null) { diff --git a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java index d81269c..0e400ef 100644 --- a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java +++ b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java @@ -237,7 +237,7 @@ return identifierTemplates.get(resourceName); } - public void addIdentifierTemplates(IdentifierTemplate identifierTemplate) { + public void addIdentifierTemplate(IdentifierTemplate identifierTemplate) { identifierTemplates.put(identifierTemplate.getResourceName(), identifierTemplate); } diff --git a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java index c41a255..1e0600d 100644 --- a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java +++ b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java @@ -131,7 +131,7 @@ IdentifierTemplate identifier = model.getIdentifierTemplate(resourceName); if (identifier == null) { identifier = new IdentifierTemplate(resourceName, 0); - model.addIdentifierTemplates(identifier); + model.addIdentifierTemplate(identifier); } if (!stream.hasNext()) throw new ExpectedAssignment(stream.getLine()); @@ -171,7 +171,7 @@ IdentifierTemplate identifier = model.getIdentifierTemplate(resourceName); if (identifier == null) { identifier = new IdentifierTemplate(resourceName, 0); - model.addIdentifierTemplates(identifier); + model.addIdentifierTemplate(identifier); } ChannelMember channelMember = new ChannelMember(identifier); StateTransition stateTransition = new StateTransition();