diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/SaveAsAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/SaveAsAction.java index 05a90ca..1d96d65 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/SaveAsAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/SaveAsAction.java @@ -35,10 +35,9 @@ // Adds file filter for supported file format FileFilter defaultFilter = new FileFilter() { - public boolean accept(File file) { String lcase = file.getName().toLowerCase(); - return lcase.endsWith(".model"); + return lcase.endsWith(".model"); } @Override @@ -46,14 +45,22 @@ return null; } }; + fc.addChoosableFileFilter(defaultFilter); fc.addChoosableFileFilter(model); fc.addChoosableFileFilter(dtram); int rc = fc.showDialog(null, "Save Model File"); + + // choose file extentions from a dialog. if (rc == JFileChooser.APPROVE_OPTION) { + FileNameExtensionFilter selectedFilter = (FileNameExtensionFilter)fc.getFileFilter(); + + String extension = "." + selectedFilter.getExtensions()[0].toString(); lastDir = fc.getSelectedFile().getParent(); - editor.setCurFilePath(fc.getSelectedFile().getAbsolutePath()); + + editor.setCurFilePath(fc.getSelectedFile().getAbsolutePath() + extension); editor.save(); + frame.setTitle(frame.title + " - " + fc.getSelectedFile().getAbsolutePath()); } } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java index 346bcbd..3aa1250 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java @@ -234,7 +234,8 @@ if(extension.contains(".model")) { saveModel(file); } else { - + + FileWriter filewriter = new FileWriter(file); filewriter.write("model {\n"); filewriter.write(model.getSourceText()); diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/WebServiceEditor.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/WebServiceEditor.java index 1b0c7f1..8391c6b 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/WebServiceEditor.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/WebServiceEditor.java @@ -4,11 +4,18 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import com.mxgraph.view.mxCellState; import com.mxgraph.view.mxGraph; +import com.mxgraph.view.mxGraphView; import algorithms.UpdateConflictCheck; +import models.dataConstraintModel.ChannelGenerator; +import models.dataConstraintModel.IdentifierTemplate; import models.dataFlowModel.DataFlowModel; +import models.visualModel.FormulaChannelGenerator; import models.webServices.Service; import models.webServices.WebServicesInfo; import parser.ParserDTRAMForWebService; @@ -48,7 +55,6 @@ /**-------------------------------------------------------------------------------- * * @param graph : the editor of generate prototype tool. - * */ public WebServiceEditor(final mxGraph graph) { super(graph); @@ -59,7 +65,7 @@ /**-------------------------------------------------------------------------------- * [public] /**-------------------------------------------------------------------------------- - /** + /* open a file that has a ".dtram" extension. * @param file */ @Override @@ -106,6 +112,74 @@ } /**-------------------------------------------------------------------------------- + /* + * @param service + */ + @Override + public void save() { + super.save(); +// if (curFilePath != null) { +// try { +// File file = new File(curFilePath); +// String extension = ""; +// if(file != null && file.exists()) { +// // get a file's name +// String name = file.getName(); +// +// // get a file's extention +// extension = name.substring(name.lastIndexOf(".")); +// } else { +// +// FileWriter filewriter = new FileWriter(file); +// filewriter.write("model {\n"); +// filewriter.write(model.getSourceText()); +// filewriter.write("}\n"); +// filewriter.write("geometry {\n"); +// +// Object root = graph.getDefaultParent(); +// for (int i = 0; i < graph.getModel().getChildCount(root); i++) { +// Object cell = graph.getModel().getChildAt(root, i); +// if (graph.getModel().isVertex(cell)) { +// mxGraphView view = graph.getView(); +// mxCellState state = view.getState(cell); +// int x = (int) state.getX(); +// int y = (int) state.getY(); +// int w = (int) state.getWidth(); +// int h = (int) state.getHeight(); +// +// for(ChannelGenerator ch: model.getChannelGenerators()) { +// if(ch instanceof FormulaChannelGenerator && state.getLabel().equals(ch.getChannelName())) { +// filewriter.write("node fc " + state.getLabel() + ":" + x + "," + y + "," + w + "," + h+"\n"); +// } else if(ch instanceof ChannelGenerator && state.getLabel().equals(ch.getChannelName())) { +// filewriter.write("node c " + state.getLabel() + ":" + x + "," + y + "," + w + "," + h+"\n"); +// } +// } +// +// for (IdentifierTemplate res: model.getIdentifierTemplates()){ +// if(res instanceof IdentifierTemplate && state.getLabel().equals(res.getResourceName())) +// filewriter.write("node r " + state.getLabel() + ":" + x + "," + y + "," + w + "," + h + "\n"); +// } +// +// for (ChannelGenerator ioC: model.getIOChannelGenerators()) { +// if(ioC instanceof ChannelGenerator && state.getLabel().equals(ioC.getChannelName())) { +// filewriter.write("node ioc " + state.getLabel() + ":" + x + "," + y + "," + w + "," + h + "\n"); +// } +// } +// } +// } +// +// filewriter.write("}\n"); +// filewriter.close(); +// } +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } + + } + + + /**-------------------------------------------------------------------------------- * setter /**-------------------------------------------------------------------------------- /**