watermark option

This commit is contained in:
nora 2020-11-20 20:24:14 +01:00
parent c970867916
commit 17f732f04b
5 changed files with 85 additions and 29 deletions

View file

@ -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<UMLField> fields = new ArrayList<>();
private final ArrayList<UMLMethod> 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();
}

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="UMLClassView">
<grid id="27dc6" binding="panel1" default-binding="true" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="27dc6" binding="panel1" default-binding="true" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="3" left="3" bottom="3" right="3"/>
<constraints>
<xy x="20" y="20" width="500" height="400"/>
@ -58,6 +58,11 @@
<text value="Package Destination Path"/>
</properties>
</component>
<vspacer id="1a17d">
<constraints>
<grid row="3" column="0" row-span="1" col-span="2" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
<component id="96709" class="javax.swing.JTextField" binding="packagePathField">
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
@ -66,11 +71,6 @@
</constraints>
<properties/>
</component>
<vspacer id="1a17d">
<constraints>
<grid row="3" column="0" row-span="1" col-span="2" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
</children>
</grid>
<grid id="425fa" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
@ -103,9 +103,26 @@
</grid>
</children>
</tabbedpane>
<vspacer id="6f6a3">
<component id="fa538" class="javax.swing.JLabel">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Settings:"/>
</properties>
</component>
<component id="8f883" class="javax.swing.JCheckBox" binding="watermarkBox">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<selected value="true"/>
<text value="Add Watermark"/>
</properties>
</component>
<vspacer id="5f3c8">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
</children>

View file

@ -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();
}
}

View file

@ -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<UMLClass> 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;
}
}

View file

@ -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));