diff --git a/src/UMLClass.java b/src/UMLClass.java index 6a7587f..3298da4 100644 --- a/src/UMLClass.java +++ b/src/UMLClass.java @@ -3,24 +3,29 @@ import java.util.ArrayList; public class UMLClass { private final String name; + private final String fullName; private final String packageString; private final ArrayList fields = new ArrayList<>(); private final ArrayList methods = new ArrayList<>(); - public UMLClass(String classDiagram, String packageString) { + private UMLManager manager; + public UMLClass(String classDiagram, String packageString, UMLManager manager) { + + this.manager = manager; this.packageString = packageString; String[] lines = classDiagram.split("\n"); - String[] linesBeheaded = new String[lines.length-1]; + String[] linesBeheaded = new String[lines.length - 1]; + this.fullName = lines[0]; this.name = lines[0].split(" ")[0]; System.arraycopy(lines, 1, linesBeheaded, 0, linesBeheaded.length); for (String line : linesBeheaded) { - if(line != null) { + if (line != null) { if (line.matches(Regex.METHOD_FIND_REGEX)) { //MATCHES METHOD methods.add(new UMLMethod(line, name)); } else if (line.matches(Regex.FIELD_FIND_REGEX)) { //MATCHES FIELD @@ -33,23 +38,32 @@ public class UMLClass { @Override public String toString() { StringBuilder s = new StringBuilder(); - if(!packageString.equals("")){ + + if(manager.isShowWatermark()) { + s.append("//TODO AUTO-GENERATED METHODS\n\n"); + } + + if (!packageString.equals("")) { s.append("package ").append(packageString).append(";\n\n"); } - s.append("public class ").append(name).append(" {\n\n"); + s.append("public class ").append(fullName).append(" {\n\n"); - for (UMLField field : fields){ - s.append(field.toString()); + if (fields.size() > 0) { + for (UMLField field : fields) { + s.append(field.toString()); + } + + s.append("\n"); } - s.append("\n"); + if (methods.size() > 0) { + for (UMLMethod method : methods) { + s.append(method.toString()); + } - for (UMLMethod method : methods){ - s.append(method.toString()); + s.append("}"); } - s.append("\n}"); - return s.toString(); } diff --git a/src/UMLClassView.form b/src/UMLClassView.form index 2059419..a3fb383 100644 --- a/src/UMLClassView.form +++ b/src/UMLClassView.form @@ -1,6 +1,6 @@
- + @@ -58,6 +58,11 @@ + + + + + @@ -66,11 +71,6 @@ - - - - - @@ -103,9 +103,26 @@ - + - + + + + + + + + + + + + + + + + + + diff --git a/src/UMLClassView.java b/src/UMLClassView.java index 852381f..3f73834 100644 --- a/src/UMLClassView.java +++ b/src/UMLClassView.java @@ -3,6 +3,8 @@ import java.awt.datatransfer.DataFlavor; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetDropEvent; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; @@ -15,6 +17,7 @@ public class UMLClassView { private JTextField pathField; private JButton convertFileButton; private JTextField packagePathField; + private JCheckBox watermarkBox; private UMLManager manager; @@ -24,15 +27,11 @@ public class UMLClassView { inputArea.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { - String text = inputArea.getText(); - UMLClass umlClass = new UMLClass(text, ""); - outputArea.setText(umlClass.toString()); + refreshTextArea(); } @Override public void keyReleased(KeyEvent e) { - String text = inputArea.getText(); - UMLClass umlClass = new UMLClass(text, ""); - outputArea.setText(umlClass.toString()); + refreshTextArea(); } }); @@ -62,6 +61,18 @@ public class UMLClassView { } } }); + + + watermarkBox.addActionListener(e -> { + manager.setShowWatermark(watermarkBox.isSelected()); + refreshTextArea(); + }); + } + + private void refreshTextArea(){ + String text = inputArea.getText(); + UMLClass umlClass = new UMLClass(text, "", manager); + outputArea.setText(umlClass.toString()); } public JPanel getPanel1() { @@ -71,4 +82,8 @@ public class UMLClassView { public void setManager(UMLManager manager) { this.manager = manager; } + + public boolean isWatermarkSelected(){ + return watermarkBox.isSelected(); + } } diff --git a/src/UMLManager.java b/src/UMLManager.java index d66e130..63f9897 100644 --- a/src/UMLManager.java +++ b/src/UMLManager.java @@ -5,10 +5,12 @@ import java.util.ArrayList; public class UMLManager { - UMLClassView view; + private UMLClassView view; + private boolean showWatermark; public UMLManager(UMLClassView view) { this.view = view; + this.showWatermark = view.isWatermarkSelected(); view.setManager(this); } @@ -20,7 +22,7 @@ public class UMLManager { ArrayList classes = new ArrayList<>(); for (String text : classesText) { - classes.add(new UMLClass(text, packageString)); + classes.add(new UMLClass(text, packageString, this)); } classes.forEach(e -> System.out.println(e.toString())); @@ -38,4 +40,12 @@ public class UMLManager { } } } + + public boolean isShowWatermark() { + return showWatermark; + } + + public void setShowWatermark(boolean showWatermark) { + this.showWatermark = showWatermark; + } } diff --git a/src/UMLMethod.java b/src/UMLMethod.java index 53df229..031b331 100644 --- a/src/UMLMethod.java +++ b/src/UMLMethod.java @@ -50,7 +50,7 @@ public class UMLMethod { @Override public String toString() { StringBuilder returnString = new StringBuilder(); - returnString.append("\n ").append(encapsulation).append(returnType).append(name).append(" ("); + returnString.append(" ").append(encapsulation).append(returnType).append(name).append(" ("); for (int i = 0; i < argsNames.size(); i++) { returnString.append(argsTypes.get(i)).append(" ").append(argsNames.get(i));