diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewChannelAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewChannelAction.java index 58bdfbf..71bbc69 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewChannelAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewChannelAction.java @@ -2,7 +2,15 @@ import java.awt.event.ActionEvent; +import javax.swing.JOptionPane; + +import algorithms.NecessityOfStoringResourceStates; +import algorithms.SelectableDataTransfers; import graphicalrefactor.editor.Editor; +import models.dataConstraintModel.ChannelGenerator; +import models.dataFlowModel.DataFlowModel; +import models.dataFlowModel.DataflowChannelGenerator; +import models.dataFlowModel.ResourceDependencyGraph; public class NewChannelAction extends AbstractEditorAction { @@ -17,7 +25,18 @@ @Override public void actionPerformed(ActionEvent e) { - + DataFlowModel model = editor.getModel(); + if(model == null) { + model = new DataFlowModel(); + editor.setModel(model); + } + String channelName = JOptionPane.showInputDialog("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); } } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewIOChannelAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewIOChannelAction.java new file mode 100644 index 0000000..08fc200 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewIOChannelAction.java @@ -0,0 +1,41 @@ +package graphicalrefactor.actions; + +import java.awt.event.ActionEvent; + +import javax.swing.JOptionPane; + +import algorithms.NecessityOfStoringResourceStates; +import algorithms.SelectableDataTransfers; +import graphicalrefactor.editor.Editor; +import models.dataFlowModel.DataFlowModel; +import models.dataFlowModel.DataflowChannelGenerator; +import models.dataFlowModel.ResourceDependencyGraph; + +public class NewIOChannelAction extends AbstractEditorAction { + + /** + * + */ + private static final long serialVersionUID = -1657072017390171313L; + + public NewIOChannelAction(Editor editor) { + super("New I/O Channel", editor); + } + + @Override + public void actionPerformed(ActionEvent e) { + DataFlowModel model = editor.getModel(); + if(model == null) { + model = new DataFlowModel(); + editor.setModel(model); + } + 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); + } + +} diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewResourceAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewResourceAction.java index d704e52..f2bf3bd 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewResourceAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewResourceAction.java @@ -2,7 +2,14 @@ import java.awt.event.ActionEvent; +import javax.swing.JOptionPane; + +import algorithms.NecessityOfStoringResourceStates; +import algorithms.SelectableDataTransfers; import graphicalrefactor.editor.Editor; +import models.dataConstraintModel.IdentifierTemplate; +import models.dataFlowModel.DataFlowModel; +import models.dataFlowModel.ResourceDependencyGraph; public class NewResourceAction extends AbstractEditorAction { @@ -17,7 +24,18 @@ @Override public void actionPerformed(ActionEvent e) { - + DataFlowModel model = editor.getModel(); + if(model == null) { + model = new DataFlowModel(); + editor.setModel(model); + } + 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); } } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java index 4d51c71..fb9c3e1 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java @@ -170,14 +170,11 @@ } // create resource vertices - for (Node n : resourceDependencyGraph.getNodes()) { - if (n instanceof ResourceNode) { - ResourceNode resourceNode = (ResourceNode) n; - Object resource = graph.insertVertex(parent, null, - resourceNode.getIdentifierTemplate().getResourceName(), 20, 20, 80, 30, - "shape=ellipse;perimeter=ellipsePerimeter"); // insert a resource as a vertex - resources.put(resourceNode.getIdentifierTemplate(), resource); - } + for (IdentifierTemplate res: model.getIdentifierTemplates()) { + Object resource = graph.insertVertex(parent, null, + res.getResourceName(), 20, 20, 80, 30, + "shape=ellipse;perimeter=ellipsePerimeter"); // insert a resource as a vertex + resources.put(res, resource); } // add input, output and reference edges diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactorMenuBar.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactorMenuBar.java index e2deede..a1b2436 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactorMenuBar.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactorMenuBar.java @@ -13,6 +13,7 @@ import graphicalrefactor.actions.JavaPrototypeGenerateAction; import graphicalrefactor.actions.JerseyPrototypeGenerateAction; import graphicalrefactor.actions.NewChannelAction; +import graphicalrefactor.actions.NewIOChannelAction; import graphicalrefactor.actions.NewResourceAction; import graphicalrefactor.actions.SaveAction; import graphicalrefactor.actions.TreeLayoutAction; @@ -26,6 +27,7 @@ private GraphicalRefactor graphicalModelRefactor = null; private NewResourceAction newResourceAction = null; private NewChannelAction newChannelAction = null; + private NewIOChannelAction newIOChannelAction = null; private OpenAction openAction = null; private DeleteAction deleteAction = null; private JavaPrototypeGenerateAction javaPrototypeGenerateAction = null; @@ -39,6 +41,7 @@ menu = add(new JMenu("File")); menu.add(newResourceAction = new NewResourceAction(graphicalModelRefactor.getEditor())); menu.add(newChannelAction = new NewChannelAction(graphicalModelRefactor.getEditor())); + menu.add(newIOChannelAction = new NewIOChannelAction(graphicalModelRefactor.getEditor())); menu.add(openAction = new OpenAction(graphicalModelRefactor.getEditor())); menu.addSeparator(); menu.add(new SaveAction());