package edu.cmu.minorthird; import edu.cmu.minorthird.ui.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; /** * A launch bar for Minorthird applications. */ public class Minorthird extends JFrame { static final long serialVersionUID=20071015; private String[] defaultArgs; public Minorthird(String[] args) { super(); // copy the args, adding 'gui' defaultArgs = new String[args.length+1]; defaultArgs[0] = "-gui"; for (int i=0; i<args.length; i++) { defaultArgs[i+1] = args[i]; } // build the content panel initContent(); // pop the launcher window setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); pack(); setVisible(true); } private void initContent() { JPanel panel = new JPanel(); panel.setLayout(new GridLayout(2,2)); panel.setBorder(new TitledBorder("Applications to Launch")); JPanel tcPanel = new JPanel(); tcPanel.setBorder(new TitledBorder("Classify Text")); addUIButton(tcPanel,"Expt", new TrainTestClassifier()); addUIButton(tcPanel,"Train", new TrainClassifier()); addUIButton(tcPanel,"Test", new TestClassifier()); panel.add(tcPanel); JPanel txPanel = new JPanel(); txPanel.setBorder(new TitledBorder("Extract From Text")); addUIButton(txPanel,"Expt", new TrainTestExtractor()); addUIButton(txPanel,"Train", new TrainExtractor()); addUIButton(txPanel,"Test", new TestExtractor()); panel.add(txPanel); JPanel cPanel = new JPanel(); cPanel.setBorder(new TitledBorder("Non-Text Data")); cPanel.add(new JButton(new AbstractAction("Expt/Train/Test") { static final long serialVersionUID=20071015; @Override public void actionPerformed(ActionEvent ev) { new edu.cmu.minorthird.classify.UI.DataClassificationTask().callMain(defaultArgs); } })); panel.add(cPanel); JPanel oPanel = new JPanel(); oPanel.setBorder(new TitledBorder("Execute")); addUIButton(oPanel,"Mixup",new RunMixup()); addUIButton(oPanel,"Annotator",new ApplyAnnotator()); panel.add(oPanel); //addHelpPane(panel); panel.setPreferredSize(new java.awt.Dimension(800,200)); getContentPane().removeAll(); getContentPane().add(panel, BorderLayout.CENTER); setTitle("Minorthird LaunchPad"); panel.revalidate(); } private void addUIButton(final JPanel panel,final String tag,final UIMain m) { panel.add(new JButton(new AbstractAction(tag) { static final long serialVersionUID=20071015; @Override public void actionPerformed(ActionEvent ev) { m.callMain(defaultArgs); } })); } /* private void addHelpPane(JPanel panel) { JEditorPane editorPane = new JEditorPane(); editorPane.setEditable(false); try { java.net.URL helpURL = new java.net.URL("http://wcohen.com/index.html"); editorPane.setPage(helpURL); } catch (Exception e) { e.printStackTrace(); } panel.add(new JScrollPane(editorPane)); } */ static public void main(String[] args) { new Minorthird(args); } }