aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java')
-rw-r--r--netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java152
1 files changed, 152 insertions, 0 deletions
diff --git a/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java b/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java
new file mode 100644
index 0000000..0693357
--- /dev/null
+++ b/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java
@@ -0,0 +1,152 @@
+/* DebuggingPanel.java -- Displays and sets options for debugging.
+Copyright (C) 2010 Red Hat
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+package net.sourceforge.jnlp.controlpanel;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+
+import javax.swing.Box;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import net.sourceforge.jnlp.runtime.DeploymentConfiguration;
+import net.sourceforge.jnlp.runtime.Translator;
+
+/**
+ * This displays the options related to debugging.
+ *
+ * @author Andrew Su ([email protected], [email protected])
+ *
+ */
+public class DebuggingPanel extends NamedBorderPanel implements ItemListener {
+
+ /** List of properties used by this panel */
+ public static String[] properties = { "deployment.trace", // Debugging
+ "deployment.log", // Debugging
+ "deployment.javapi.lifecycle.exception", // Debugging
+ "deployment.console.startup.mode", // Java Console
+ };
+ private DeploymentConfiguration config;
+
+ /**
+ * Create a new instance of the debugging panel.
+ *
+ * @param config
+ * loaded DeploymentConfiguration file.
+ */
+ public DebuggingPanel(DeploymentConfiguration config) {
+ super(Translator.R("CPHeadDebugging"), new GridBagLayout());
+
+ this.config = config;
+
+ addComponents();
+ }
+
+ /**
+ * Add components to panel.
+ */
+ private void addComponents() {
+ GridBagConstraints c = new GridBagConstraints();
+
+ JLabel debuggingDescription = new JLabel("<html>" + Translator.R("CPDebuggingDescription") + "<hr /><br /></html>");
+
+ JCheckBox[] debuggingOptions = { new JCheckBox(Translator.R("DPEnableTracing")),
+ new JCheckBox(Translator.R("DPEnableLogging")),
+ new JCheckBox(Translator.R("DPLifeCycleExceptions")) };
+
+ ComboItem[] javaConsoleItems = { new ComboItem(Translator.R("DPDisable"), "DISABLE"),
+ new ComboItem(Translator.R("DPHide"), "HIDE"),
+ new ComboItem(Translator.R("DPShow"), "SHOW"), };
+
+ JLabel consoleLabel = new JLabel(Translator.R("DPJavaConsole"));
+ JComboBox consoleComboBox = new JComboBox();
+ consoleComboBox.setActionCommand("deployment.console.startup.mode"); // The property this comboBox affects.
+
+ JPanel consolePanel = new JPanel();
+ consolePanel.setLayout(new FlowLayout(FlowLayout.LEADING));
+ consolePanel.add(consoleLabel);
+ consolePanel.add(consoleComboBox);
+
+ c.fill = GridBagConstraints.BOTH;
+ c.weightx = 1;
+ c.gridx = 0;
+ c.gridy = 0;
+ add(debuggingDescription, c);
+
+ /*
+ * Add the items to the panel unless we can not get the values for them.
+ */
+ for (int i = 0; i < properties.length; i++) {
+ try {
+ String s = config.getProperty(properties[i]);
+ c.gridy = i + 1;
+
+ switch (i) {
+ case 0:
+ case 1:
+ case 2:
+ debuggingOptions[i].setSelected(Boolean.parseBoolean(s));
+ debuggingOptions[i].setActionCommand(properties[i]);
+ debuggingOptions[i].addItemListener(this);
+ add(debuggingOptions[i], c);
+ break;
+ case 3:
+ for (int j = 0; j < javaConsoleItems.length; j++) {
+ consoleComboBox.addItem(javaConsoleItems[j]);
+ if (config.getProperty("deployment.console.startup.mode").equals(javaConsoleItems[j].getValue())) consoleComboBox.setSelectedIndex(j);
+ }
+ consoleComboBox.addItemListener(this);
+ add(consolePanel, c);
+ }
+
+ } catch (Exception e) {
+ debuggingOptions[i] = null;
+ }
+ }
+
+ // pack the bottom so that it doesn't change size if resized.
+ Component filler = Box.createRigidArea(new Dimension(1, 1));
+ c.gridy++;
+ c.weighty = 1;
+ add(filler, c);
+ }
+
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+
+ Object o = e.getSource();
+
+ if (o instanceof JCheckBox) {
+ JCheckBox jcb = (JCheckBox) o;
+ config.setProperty(jcb.getActionCommand(), String.valueOf(jcb.isSelected()));
+ } else if (o instanceof JComboBox) {
+ JComboBox jcb = (JComboBox) o;
+ ComboItem c = (ComboItem) e.getItem();
+ config.setProperty(jcb.getActionCommand(), c.getValue());
+ }
+
+ }
+}