package org.greenstone.admin.guiext.mat; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.Properties; import java.io.FileInputStream; import org.greenstone.server.BrowserLauncher; import org.greenstone.admin.guiext.BasePanel; import org.greenstone.admin.GAI; public class ControlPanel implements BasePanel { JPanel _controlPanel = null; JCheckBox _localAnalysis = null; public ControlPanel() { _controlPanel = new JPanel(); _controlPanel.setLayout(new BorderLayout()); Mat mat = new Mat(); final int left_margin = 7; final int right_margin = 7; final int HORIZONTAL_GAP = 5; final int VERTICAL_GAP = 5; String fileSep = System.getProperty("file.separator"); JButton start_button = new JButton("Analyse"); start_button.setPreferredSize(new Dimension(50,25)); start_button.setMaximumSize(new Dimension(50,25)); start_button.setName("Analyse"); start_button.setEnabled(true); start_button.addActionListener(new aListener(mat)); JLabel oai_temp_directory = new JLabel(); oai_temp_directory.setText("OAI temporary download directory:"); JTextField oai_temp_directory_text = new JTextField(); oai_temp_directory_text.setText(GAI.getGSDL3ExtensionHome() + fileSep + "mat" + fileSep + "tmp"); oai_temp_directory_text.setEditable(false); oai_temp_directory_text.setBackground(Color.WHITE); JLabel install_path = new JLabel(); install_path.setText("Metadata Quality Tool is installed in:"); JTextField install_path_text = new JTextField(); install_path_text.setText(GAI.getGSDL3ExtensionHome() + fileSep + "mat"); install_path_text.setEditable(false); install_path_text.setBackground(Color.WHITE); JCheckBox web_tool_checkbox = new JCheckBox("Web OAI Collection Building"); web_tool_checkbox.setBorder(BorderFactory.createEmptyBorder(0,0,0,0)); web_tool_checkbox.setVisible(false); _localAnalysis = new JCheckBox("Local Collection Analysis"); _localAnalysis.setBorder(BorderFactory.createEmptyBorder(0,0,0,0)); GridLayout gridLayout3 = new GridLayout(3,3); gridLayout3.setVgap(VERTICAL_GAP); JPanel control_content_pane = new JPanel(gridLayout3); control_content_pane.setBorder(BorderFactory.createEmptyBorder(5, left_margin, 5, right_margin)); GridLayout gridLayout2 = new GridLayout(1,2); gridLayout2.setHgap(HORIZONTAL_GAP); JPanel control_button_pane = new JPanel(gridLayout2); control_button_pane.setBorder(BorderFactory.createEmptyBorder(5, left_margin, 5, right_margin)); GridLayout gridLayout1 = new GridLayout(2,2); gridLayout1.setVgap(VERTICAL_GAP); JPanel control_description_pane = new JPanel(gridLayout1); control_description_pane.setBorder(BorderFactory.createEmptyBorder(5, left_margin, 5, right_margin)); JPanel control_pane = new JPanel(); control_pane.setLayout(new BoxLayout(control_pane, BoxLayout.Y_AXIS)); control_content_pane.add(_localAnalysis); control_content_pane.add(Box.createRigidArea(new Dimension(10,5))); control_content_pane.add(Box.createRigidArea(new Dimension(10,5))); JPanel tempPane = new JPanel(new BorderLayout()); tempPane.add(Box.createRigidArea(new Dimension(18,5)), BorderLayout.WEST); tempPane.add(start_button, BorderLayout.CENTER); control_content_pane.add(tempPane); control_content_pane.add(Box.createRigidArea(new Dimension(10,5))); control_content_pane.add(Box.createRigidArea(new Dimension(10,5))); //control_content_pane.add(web_tool_checkbox); control_content_pane.add(Box.createRigidArea(new Dimension(10,5))); control_content_pane.add(Box.createRigidArea(new Dimension(10,5))); control_content_pane.add(Box.createRigidArea(new Dimension(10,5))); control_description_pane.add(install_path); control_description_pane.add(install_path_text); control_description_pane.add(oai_temp_directory); control_description_pane.add(oai_temp_directory_text); control_content_pane.setAlignmentX(Component.LEFT_ALIGNMENT); control_pane.add(control_content_pane); control_description_pane.setAlignmentX(Component.LEFT_ALIGNMENT); control_pane.add(control_description_pane); control_button_pane.setAlignmentX(Component.LEFT_ALIGNMENT); control_pane.add(control_button_pane); _controlPanel.add(control_pane, BorderLayout.CENTER); } public JPanel getPanel() { return _controlPanel; } class aListener implements ActionListener { private Mat adaptee; aListener(Mat adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { JButton button = (JButton)e.getSource(); if(button.getName().equalsIgnoreCase("Analyse")){ if(_localAnalysis.isSelected()){ execute_application(); } else{ try{ Properties properties = new Properties(); FileInputStream fis = new FileInputStream(GAI.getGSDL3Home() + System.getProperty("file.separator") + "build.properties"); properties.load(fis); fis.close(); Thread bl = new BrowserLauncher("", "http://" + properties.getProperty("tomcat.server") + ":" + properties.getProperty("tomcat.port") + "/mat/analyse"); bl.run(); } catch(Exception ex){ ex.printStackTrace(); } } } } public void execute_application(){ MatLaunchApplication app = new MatLaunchApplication(adaptee); app.start(); } } }