From 5b0937a8eb4131aea176694bd7d2094492b5a111 Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Thu, 19 Nov 2020 19:43:06 +0100 Subject: [PATCH] can now get java code from path to console --- src/UMLClassView.form | 107 ++++++++++++++++++++++++------ src/UMLClassView.java | 31 ++++++--- src/UMLConverterMain.java | 8 ++- src/UMLField.java | 1 - src/UMLManager.java | 21 ++++++ src/{Main.java => XMLParser.java} | 32 +++++---- 6 files changed, 154 insertions(+), 46 deletions(-) create mode 100644 src/UMLManager.java rename src/{Main.java => XMLParser.java} (50%) diff --git a/src/UMLClassView.form b/src/UMLClassView.form index 5d57eb3..accbba2 100644 --- a/src/UMLClassView.form +++ b/src/UMLClassView.form @@ -1,6 +1,6 @@
- + @@ -8,32 +8,97 @@ - + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + diff --git a/src/UMLClassView.java b/src/UMLClassView.java index b8c2ddc..6a492c3 100644 --- a/src/UMLClassView.java +++ b/src/UMLClassView.java @@ -5,30 +5,41 @@ import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class UMLClassView { - private JTextArea textArea1; + private JTextArea inputArea; private JPanel panel1; private JButton convertButton; - private JTextArea textArea2; + private JTextArea outputArea; + private JTextField pathField; + private JButton convertFileButton; + + private UMLManager manager; public UMLClassView() { convertButton.addActionListener(e -> { - String text = textArea1.getText(); + String text = inputArea.getText(); UMLClass umlClass = new UMLClass(text); - textArea2.setText(umlClass.toString()); + outputArea.setText(umlClass.toString()); }); - textArea1.addKeyListener(new KeyAdapter() { + inputArea.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { - String text = textArea1.getText(); - + String text = inputArea.getText(); UMLClass umlClass = new UMLClass(text); + outputArea.setText(umlClass.toString()); + } + }); - textArea2.setText(umlClass.toString()); + convertFileButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + String path = pathField.getText(); + XMLParser parser = new XMLParser(path); + manager.parseClasses(parser.getClassesText()); } }); } @@ -36,4 +47,8 @@ public class UMLClassView { public JPanel getPanel1() { return panel1; } + + public void setManager(UMLManager manager) { + this.manager = manager; + } } diff --git a/src/UMLConverterMain.java b/src/UMLConverterMain.java index 4a549e7..efbee3d 100644 --- a/src/UMLConverterMain.java +++ b/src/UMLConverterMain.java @@ -5,11 +5,13 @@ public class UMLConverterMain { public static void main(String[] args) { - JFrame frame = new JFrame(); - frame.setContentPane( new UMLClassView().getPanel1()); + UMLClassView view = new UMLClassView(); + new UMLManager(view); + frame.setContentPane(view.getPanel1()); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - frame.setExtendedState(Frame.MAXIMIZED_BOTH); + frame.pack(); + //frame.setExtendedState(Frame.MAXIMIZED_BOTH); frame.setVisible(true); } diff --git a/src/UMLField.java b/src/UMLField.java index fdd5cd4..8433571 100644 --- a/src/UMLField.java +++ b/src/UMLField.java @@ -20,7 +20,6 @@ public class UMLField { public UMLField(String line) { String formatted = line.replaceAll("([+\\-~#]) ((?:[a-z]|[A-Z]|[0-1])+): (.*)", "$1;$3;$2"); - System.out.println(formatted); String[] formattedSplit = formatted.split(";"); this.encapsulation = switch (formattedSplit[0]) { diff --git a/src/UMLManager.java b/src/UMLManager.java new file mode 100644 index 0000000..81d60b1 --- /dev/null +++ b/src/UMLManager.java @@ -0,0 +1,21 @@ +import java.util.ArrayList; + +public class UMLManager { + + UMLClassView view; + + public UMLManager(UMLClassView view){ + this.view = view; + view.setManager(this); + } + + public void parseClasses(ArrayList classesText){ + ArrayList classes = new ArrayList<>(); + + for (String text : classesText){ + classes.add(new UMLClass(text)); + } + + classes.forEach(e -> System.out.println(e.toString())); + } +} diff --git a/src/Main.java b/src/XMLParser.java similarity index 50% rename from src/Main.java rename to src/XMLParser.java index 62d9fb3..e8bf16a 100644 --- a/src/Main.java +++ b/src/XMLParser.java @@ -9,25 +9,31 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import java.io.File; import java.io.IOException; +import java.util.ArrayList; -public class Main { +public class XMLParser { - public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException { + private Document doc; - String path = "C:\\Users\\nilsh\\Desktop\\Umlet/test.uxf"; + public XMLParser(String path) { + try { + File inputFile = new File(path); + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + doc = builder.parse(inputFile); + } catch (ParserConfigurationException | SAXException | IOException e){ + e.printStackTrace(); + } + } - File inputFile = new File(path); - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - Document doc = builder.parse(inputFile); - System.out.println("Root element: " + doc.getDocumentElement().getNodeName()); - System.out.println("---------"); + public ArrayList getClassesText(){ + + ArrayList classes = new ArrayList<>(); NodeList nList = doc.getDocumentElement().getElementsByTagName("element"); for (int i = 0; i < nList.getLength(); i++) { Node node = nList.item(i); - System.out.println("Current Element: " + node.getNodeName()); if (node.getNodeType() == Node.ELEMENT_NODE){ @@ -35,13 +41,13 @@ public class Main { if(element.getElementsByTagName("id").item(0).getTextContent().equals("UMLClass")){ - System.out.println("class"); + String classBody = element.getElementsByTagName("panel_attributes").item(0).getTextContent(); + classes.add(classBody); } - } } + return classes; } - }