package com.clearlyspam23.GLE.basic.gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.DefaultListModel; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JTextField; import javax.swing.LayoutStyle.ComponentPlacement; import com.clearlyspam23.GLE.GUI.PLangSubPanel; import com.clearlyspam23.GLE.util.Utility; import javax.swing.JScrollPane; public class JavaLanguagePanel extends PLangSubPanel<JavaLanguagePanel.JavaLanguageData> { /** * */ private static final long serialVersionUID = 1L; private JTextField javaTextField; private JTextField textField_1; private JList<String> list; private DefaultListModel<String> list_model; public static class JavaLanguageData{ public String javaLocation; public List<String> parameters; } public JavaLanguagePanel(String javaLocation) { JLabel lblJavaLocation = new JLabel("Java Location"); lblJavaLocation.setBounds(7, 12, 66, 14); javaTextField = new JTextField(); javaTextField.setBounds(91, 10, 259, 20); javaTextField.setColumns(10); javaTextField.setText(javaLocation); final JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); //fc.setAcceptAllFileFilterUsed(true); JButton btnBrowse = new JButton("Browse"); btnBrowse.setBounds(360, 8, 89, 23); btnBrowse.setToolTipText("The directory of your java executable"); btnBrowse.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int ret = fc.showOpenDialog(JavaLanguagePanel.this); if(ret==JFileChooser.APPROVE_OPTION) { javaTextField.setText(fc.getSelectedFile().getPath()); registerChange(); } } }); JLabel lblJvmArguments = new JLabel("JVM Arguments"); lblJvmArguments.setBounds(7, 52, 74, 14); list_model = new DefaultListModel<String>(); textField_1 = new JTextField(); textField_1.setBounds(91, 152, 212, 20); textField_1.setColumns(10); JButton btnAdd = new JButton("Add"); btnAdd.setBounds(313, 151, 63, 23); btnAdd.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ ArrayList<String> tokens = Utility.tokenizeBySpaceAndQuote(textField_1.getText()); int index = list.getSelectedIndex()+1; if(index<0||index>list_model.getSize()) index = list_model.getSize(); for(int i = 0; i < tokens.size(); i++) { list_model.add(index+i, tokens.get(i)); } textField_1.setText(""); registerChange(); } }); JButton btnRemove = new JButton("Delete"); btnRemove.setBounds(386, 151, 63, 23); btnRemove.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int index = list.getSelectedIndex(); if(index>=0&&index<list.getModel().getSize()){ list_model.remove(index); list.setSelectedIndex(index-1); registerChange(); } } }); setLayout(null); add(lblJavaLocation); add(lblJvmArguments); add(textField_1); add(btnAdd); add(btnRemove); add(javaTextField); add(btnBrowse); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(91, 50, 358, 93); add(scrollPane); list = new JList<String>(); scrollPane.setViewportView(list); list.setModel(list_model); } public JTextField getJavaTextField() { return javaTextField; } public JTextField getTextField_1() { return textField_1; } public JList<String> getList() { return list; } @Override public void reset() { //txtWhatever.setText(""); textField_1.setText(""); } @Override public JavaLanguageData getData() { // TODO Auto-generated method stub return null; } @Override public void setToData(JavaLanguageData data) { // TODO Auto-generated method stub } }