From ae866402d10ba4fcb3391b0671ffa688f0d51f2e Mon Sep 17 00:00:00 2001 From: Patrick Herrington Date: Wed, 22 Jan 2025 16:33:37 -0600 Subject: [PATCH] Start of trickify GUI --- trick_source/java/pom.xml | 16 ++ .../trick/trickify/TrickifyApplication.java | 181 ++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 trick_source/java/src/main/java/trick/trickify/TrickifyApplication.java diff --git a/trick_source/java/pom.xml b/trick_source/java/pom.xml index ee69706c..3abc3590 100644 --- a/trick_source/java/pom.xml +++ b/trick_source/java/pom.xml @@ -154,6 +154,22 @@ SimControl + + + trickify + package + + shade + + + + + trick.trickify.TrickifyApplication + + + Trickify + + sniffer diff --git a/trick_source/java/src/main/java/trick/trickify/TrickifyApplication.java b/trick_source/java/src/main/java/trick/trickify/TrickifyApplication.java new file mode 100644 index 00000000..ddb4e3c0 --- /dev/null +++ b/trick_source/java/src/main/java/trick/trickify/TrickifyApplication.java @@ -0,0 +1,181 @@ +package trick.trickify; + +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Container; +import java.awt.Desktop; +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.GridLayout; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.InputEvent; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.*; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.StringReader; +import java.lang.reflect.ParameterizedType; +import java.net.URI; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.Enumeration; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.swing.*; +import javax.swing.AbstractAction; +import javax.swing.AbstractButton; +import javax.swing.Box; +import javax.swing.ButtonGroup; +import javax.swing.ImageIcon; +import javax.swing.JCheckBox; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JRadioButton; +import javax.swing.JRootPane; +import javax.swing.JScrollPane; +import javax.swing.JSeparator; +import javax.swing.JSplitPane; +import javax.swing.JToolBar; +import javax.swing.KeyStroke; +import javax.swing.SwingWorker; +import javax.swing.border.CompoundBorder; +import javax.swing.border.EmptyBorder; +import javax.swing.border.TitledBorder; +import javax.swing.filechooser.FileNameExtensionFilter; +import javax.swing.tree.TreePath; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.namespace.QName; +import javax.xml.transform.stream.StreamSource; + +import joptsimple.OptionParser; +import joptsimple.OptionSet; +import joptsimple.OptionSpec; + +import org.jdesktop.application.Application; +import org.jdesktop.application.View; +import org.jdesktop.swingx.JXButton; +import org.jdesktop.swingx.JXFrame; +import org.jdesktop.swingx.JXLabel; +import org.jdesktop.swingx.JXPanel; +import org.jdesktop.swingx.JXTextField; +import org.xml.sax.InputSource; + +import trick.common.RunTimeTrickApplication; +import trick.common.TrickApplication; +import trick.common.utils.UnitType; +import trick.common.utils.UnitType.Unit; +import trick.common.utils.VariableServerConnection; +import trick.common.utils.vs.VSLong; +import trick.common.utils.vs.Variable; +import trick.common.utils.vs.VariableListener; +import trick.common.utils.vs.VariableTracker; + +public class TrickifyApplication extends RunTimeTrickApplication +{ + JXLabel timeLabel; + String defaultDirectory; + JXTextField manualField; + JFileChooser fileChooser; + + protected AbstractAction newAction = new AbstractAction("New", + new ImageIcon(TrickApplication.class.getResource("resources/filenew.gif"))) { + { + } + public void actionPerformed(ActionEvent actionEvent) + { + } + }; + + @Override + @SuppressWarnings("unchecked") + protected void startup() + { + JFrame mainFrame = getMainFrame(); + } + + @Override + @SuppressWarnings("unchecked") + protected JComponent createMainPanel() + { + return new JPanel(); + } + + public static void main(String[] args) + { + JFrame frame = new JFrame(); + frame.setSize(500, 600); + + JFileChooser src_dirs_chooser = new JFileChooser(); + src_dirs_chooser.setBounds(0, 0, 400, 250); + frame.add(src_dirs_chooser); + + int checkbox_x = 0; + int checkbox_y = 300; + int checkbox_width = 250; + int checkbox_offset = 20; + int checkbox_relative_offset = 0; + + JCheckBox full_build_box = new JCheckBox(" Full library build"); + full_build_box.setBounds(checkbox_x, checkbox_y + checkbox_relative_offset, checkbox_width, checkbox_offset); + checkbox_relative_offset += checkbox_offset; + frame.add(full_build_box); + + JCheckBox no_clean_obj_box = new JCheckBox(" Don't rebuild object file list"); + no_clean_obj_box.setBounds(checkbox_x, checkbox_y + checkbox_relative_offset, checkbox_width, checkbox_offset); + checkbox_relative_offset += checkbox_offset; + frame.add(no_clean_obj_box); + + JCheckBox no_clean_src_box = new JCheckBox(" Don't rebuild source file list"); + no_clean_src_box.setBounds(checkbox_x, checkbox_y + checkbox_relative_offset, checkbox_width, checkbox_offset); + checkbox_relative_offset += checkbox_offset; + frame.add(no_clean_src_box); + + JCheckBox no_clean_s_source_box = new JCheckBox(" Don't rebuild S_source.hh"); + no_clean_s_source_box.setBounds(checkbox_x, checkbox_y + checkbox_relative_offset, checkbox_width, checkbox_offset); + checkbox_relative_offset += checkbox_offset; + frame.add(no_clean_s_source_box); + + JCheckBox debug_box = new JCheckBox(" Debug info"); + debug_box.setBounds(checkbox_x, checkbox_y + checkbox_relative_offset, checkbox_width, checkbox_offset); + checkbox_relative_offset += checkbox_offset; + frame.add(debug_box); + + + frame.setLayout(null); + frame.setVisible(true); + //Application.launch(TrickifyApplication.class, args); + } + +}