mirror of
https://github.com/Noratrieb/UMLetClassParser.git
synced 2026-01-14 16:45:05 +01:00
watermark option
This commit is contained in:
parent
c970867916
commit
17f732f04b
5 changed files with 85 additions and 29 deletions
|
|
@ -3,24 +3,29 @@ import java.util.ArrayList;
|
||||||
public class UMLClass {
|
public class UMLClass {
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
private final String fullName;
|
||||||
private final String packageString;
|
private final String packageString;
|
||||||
|
|
||||||
private final ArrayList<UMLField> fields = new ArrayList<>();
|
private final ArrayList<UMLField> fields = new ArrayList<>();
|
||||||
private final ArrayList<UMLMethod> methods = 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;
|
this.packageString = packageString;
|
||||||
|
|
||||||
String[] lines = classDiagram.split("\n");
|
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];
|
this.name = lines[0].split(" ")[0];
|
||||||
|
|
||||||
System.arraycopy(lines, 1, linesBeheaded, 0, linesBeheaded.length);
|
System.arraycopy(lines, 1, linesBeheaded, 0, linesBeheaded.length);
|
||||||
|
|
||||||
for (String line : linesBeheaded) {
|
for (String line : linesBeheaded) {
|
||||||
if(line != null) {
|
if (line != null) {
|
||||||
if (line.matches(Regex.METHOD_FIND_REGEX)) { //MATCHES METHOD
|
if (line.matches(Regex.METHOD_FIND_REGEX)) { //MATCHES METHOD
|
||||||
methods.add(new UMLMethod(line, name));
|
methods.add(new UMLMethod(line, name));
|
||||||
} else if (line.matches(Regex.FIELD_FIND_REGEX)) { //MATCHES FIELD
|
} else if (line.matches(Regex.FIELD_FIND_REGEX)) { //MATCHES FIELD
|
||||||
|
|
@ -33,23 +38,32 @@ public class UMLClass {
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder s = new StringBuilder();
|
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("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){
|
if (fields.size() > 0) {
|
||||||
s.append(field.toString());
|
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("}");
|
||||||
s.append(method.toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s.append("\n}");
|
|
||||||
|
|
||||||
return s.toString();
|
return s.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="UMLClassView">
|
<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"/>
|
<margin top="3" left="3" bottom="3" right="3"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<xy x="20" y="20" width="500" height="400"/>
|
<xy x="20" y="20" width="500" height="400"/>
|
||||||
|
|
@ -58,6 +58,11 @@
|
||||||
<text value="Package Destination Path"/>
|
<text value="Package Destination Path"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</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">
|
<component id="96709" class="javax.swing.JTextField" binding="packagePathField">
|
||||||
<constraints>
|
<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">
|
<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>
|
</constraints>
|
||||||
<properties/>
|
<properties/>
|
||||||
</component>
|
</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>
|
</children>
|
||||||
</grid>
|
</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">
|
<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>
|
</grid>
|
||||||
</children>
|
</children>
|
||||||
</tabbedpane>
|
</tabbedpane>
|
||||||
<vspacer id="6f6a3">
|
<component id="fa538" class="javax.swing.JLabel">
|
||||||
<constraints>
|
<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>
|
</constraints>
|
||||||
</vspacer>
|
</vspacer>
|
||||||
</children>
|
</children>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ import java.awt.datatransfer.DataFlavor;
|
||||||
import java.awt.dnd.DnDConstants;
|
import java.awt.dnd.DnDConstants;
|
||||||
import java.awt.dnd.DropTarget;
|
import java.awt.dnd.DropTarget;
|
||||||
import java.awt.dnd.DropTargetDropEvent;
|
import java.awt.dnd.DropTargetDropEvent;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.KeyAdapter;
|
import java.awt.event.KeyAdapter;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
@ -15,6 +17,7 @@ public class UMLClassView {
|
||||||
private JTextField pathField;
|
private JTextField pathField;
|
||||||
private JButton convertFileButton;
|
private JButton convertFileButton;
|
||||||
private JTextField packagePathField;
|
private JTextField packagePathField;
|
||||||
|
private JCheckBox watermarkBox;
|
||||||
|
|
||||||
private UMLManager manager;
|
private UMLManager manager;
|
||||||
|
|
||||||
|
|
@ -24,15 +27,11 @@ public class UMLClassView {
|
||||||
inputArea.addKeyListener(new KeyAdapter() {
|
inputArea.addKeyListener(new KeyAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void keyPressed(KeyEvent e) {
|
public void keyPressed(KeyEvent e) {
|
||||||
String text = inputArea.getText();
|
refreshTextArea();
|
||||||
UMLClass umlClass = new UMLClass(text, "");
|
|
||||||
outputArea.setText(umlClass.toString());
|
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void keyReleased(KeyEvent e) {
|
public void keyReleased(KeyEvent e) {
|
||||||
String text = inputArea.getText();
|
refreshTextArea();
|
||||||
UMLClass umlClass = new UMLClass(text, "");
|
|
||||||
outputArea.setText(umlClass.toString());
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -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() {
|
public JPanel getPanel1() {
|
||||||
|
|
@ -71,4 +82,8 @@ public class UMLClassView {
|
||||||
public void setManager(UMLManager manager) {
|
public void setManager(UMLManager manager) {
|
||||||
this.manager = manager;
|
this.manager = manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isWatermarkSelected(){
|
||||||
|
return watermarkBox.isSelected();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,12 @@ import java.util.ArrayList;
|
||||||
|
|
||||||
public class UMLManager {
|
public class UMLManager {
|
||||||
|
|
||||||
UMLClassView view;
|
private UMLClassView view;
|
||||||
|
private boolean showWatermark;
|
||||||
|
|
||||||
public UMLManager(UMLClassView view) {
|
public UMLManager(UMLClassView view) {
|
||||||
this.view = view;
|
this.view = view;
|
||||||
|
this.showWatermark = view.isWatermarkSelected();
|
||||||
view.setManager(this);
|
view.setManager(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -20,7 +22,7 @@ public class UMLManager {
|
||||||
ArrayList<UMLClass> classes = new ArrayList<>();
|
ArrayList<UMLClass> classes = new ArrayList<>();
|
||||||
|
|
||||||
for (String text : classesText) {
|
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()));
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ public class UMLMethod {
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder returnString = new StringBuilder();
|
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++) {
|
for (int i = 0; i < argsNames.size(); i++) {
|
||||||
returnString.append(argsTypes.get(i)).append(" ").append(argsNames.get(i));
|
returnString.append(argsTypes.get(i)).append(" ").append(argsNames.get(i));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue