Re: TopComponent not running
geertjan wielenga <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Organization | Oracle Corporation |
| Message-ID | <[email protected]> |
On 9-3-2017 21:19, ruperty wrote:
>
> Not sure where I'd start on that without rebuilding the entire project, as I don't know what the issue might be.
>
> The installer worked about 8 months ago, on Linux, but doesn't now. Something I've done recently is delete some of the menus, through XML Layer. Might that be an issue?
If you think that's the issue, why not show the code from the layer.xml
file, instead of the TopComponent code?
Best of all would be if you'd put your application on GitHub or
somewhere where someone can take a look at it, right now, pretty much
impossible to help you, the code below isn't applicable at all since you
point out that the application worked until your tweaked the layer.xml file.
Gj
>
> Wasn't sure what code to post, but here's the main topcomponent maybe that will help.
>
>
>
> Code:
>
> /*
> * To change this template, choose Tools | Templates
> * and open the template in the editor.
> */
> package uk.co.moonsit.gui.controlpanel.core;
>
> import java.beans.PropertyChangeEvent;
> import java.beans.PropertyChangeListener;
> import java.io.File;
> import java.util.HashMap;
> import java.util.List;
> import java.util.Set;
> import java.util.logging.Level;
> import java.util.logging.Logger;
> import javax.swing.JFileChooser;
> import javax.swing.JFrame;
> import javax.swing.JPanel;
> import javax.swing.JScrollPane;
> import javax.swing.JTextArea;
> import org.netbeans.api.settings.ConvertAsProperties;
> import org.openide.awt.ActionID;
> import org.openide.awt.ActionReference;
> import org.openide.util.Exceptions;
> import org.openide.util.NbBundle.Messages;
> import org.openide.windows.TopComponent;
> import org.openide.windows.WindowManager;
> import uk.co.moons.gui.components.ControlHierarchyEventMonitor;
> import uk.co.moons.gui.controlpanel.helper.ControlPanelHelper;
> import uk.co.moons.gui.controlpanel.helper.ParameterslPanelHelper;
> import uk.co.moons.gui.controlpanel.helper.PlotPanelHelper;
> import uk.co.moonsit.utils.Environment;
> import uk.co.moonsit.sockets.ControlDataClient;
>
> /**
> * Top component which displays something.
> */
> @ConvertAsProperties(
> dtd = "-//uk.co.moonsit.gui.controlpanel.core//ControlPanel//EN",
> autostore = false)
> @TopComponent.Description(
> preferredID = "ControlPanelTopComponent",
> //iconBase="SET/PATH/TO/ICON/HERE",
> persistenceType = TopComponent.PERSISTENCE_ALWAYS)
> @TopComponent.Registration(mode = "editor", openAtStartup = true)
> @ActionID(category = "Window", id = "uk.co.moonsit.gui.controlpanel.core.ControlPanelTopComponent")
> @ActionReference(path = "Menu/Window" /*, position = 333 */)
> @TopComponent.OpenActionRegistration(
> displayName = "#CTL_ControlPanelAction",
> preferredID = "ControlPanelTopComponent")
> @Messages({
> "CTL_ControlPanelAction=ControlPanel",
> "CTL_ControlPanelTopComponent=ControlPanel Window",
> "HINT_ControlPanelTopComponent=This is a ControlPanel window"
> })
> public final class ControlPanelTopComponent extends TopComponent {
>
> static final Logger LOG = Logger.getLogger(ControlPanelTopComponent.class.getName());
>
> public ControlPanelTopComponent() {
> initComponents();
>
> {
> env = System.getenv("CPA_CONTROLLERS");
> if (env == null) {
> jTextFieldControllersDir.setText("CPA_CONTROLLERS environmental variable not set");
> } else {
> jTextFieldControllersDir.setText(env);
> }
> }
> {
> String env = System.getenv("EV3_IP");
> if (env == null) {
> jTextFieldHost.setText("EV3_IP environmental variable not set");
> } else {
> jTextFieldHost.setText(env);
> }
> }
> jFileChooser.setCurrentDirectory(new File(jTextFieldControllersDir.getText()));
> Environment.getInstance().setShortNames(jCheckBoxShortNames.isSelected());
>
> setName(Bundle.CTL_ControlPanelTopComponent());
> setToolTipText(Bundle.HINT_ControlPanelTopComponent());
>
> }
>
> /**
> * This method is called from within the constructor to initialize the form.
> * WARNING: Do NOT modify this code. The content of this method is always
> * regenerated by the Form Editor.
> */
> // <editor-fold defaultstate="collapsed" desc="Generated Code">
> private void initComponents() {
>
> jFileChooser = new javax.swing.JFileChooser();
> mainPanel = new javax.swing.JPanel();
> jPanel1 = new javax.swing.JPanel();
> jPanelMainLayers = new javax.swing.JPanel();
> jPanelLayers = new javax.swing.JPanel();
> jPanelControls = new javax.swing.JPanel();
> jPanelLocal = new javax.swing.JPanel();
> jLabel1 = new javax.swing.JLabel();
> jButtonOpenFile = new javax.swing.JButton();
> jButtonStart = new javax.swing.JButton();
> jButtonStep = new javax.swing.JButton();
> jPanelCommon = new javax.swing.JPanel();
> jPanelOutput = new javax.swing.JPanel();
> jButtonDescription = new javax.swing.JButton();
> jButtonParameters = new javax.swing.JButton();
> jCheckBoxPrint = new javax.swing.JCheckBox();
> jCheckBoxOutput = new javax.swing.JCheckBox();
> jTextFieldFileRoot = new javax.swing.JTextField();
> jCheckBoxPlot = new javax.swing.JCheckBox();
> jTextFieldPlotItems = new javax.swing.JTextField();
> jCheckBoxShortNames = new javax.swing.JCheckBox();
> jTextFieldFontSize = new javax.swing.JTextField();
> jLabelFont = new javax.swing.JLabel();
> jPanelRemote = new javax.swing.JPanel();
> jButtonRemote = new javax.swing.JButton();
> jTextFieldHost = new javax.swing.JTextField();
> jTextFieldFreq = new javax.swing.JTextField();
> jLabelFreq = new javax.swing.JLabel();
> jTextFieldPort = new javax.swing.JTextField();
> jLabelHost = new javax.swing.JLabel();
> jLabelPort = new javax.swing.JLabel();
> jButtonShutdown = new javax.swing.JButton();
> jPanelFile = new javax.swing.JPanel();
> jLabelTime = new javax.swing.JLabel();
> monitor = new ControlHierarchyEventMonitor();
> monitor.addTimePropertyChangeListener(new TimeLabelListener());
> jLabelFilename = new javax.swing.JLabel();
> jLabel6 = new javax.swing.JLabel();
> jTextFieldControllersDir = new javax.swing.JTextField();
>
> setPreferredSize(new java.awt.Dimension(800, 644));
> setLayout(new java.awt.BorderLayout());
>
> mainPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(51, 153, 255)));
> mainPanel.setLayout(new java.awt.BorderLayout());
>
> jPanel1.setBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, new java.awt.Color(255, 0, 51)));
> jPanel1.setLayout(new java.awt.BorderLayout());
>
> jPanelMainLayers.setBorder(javax.swing.BorderFactory.createEtchedBorder());
> jPanelMainLayers.setLayout(new java.awt.BorderLayout());
>
> javax.swing.GroupLayout jPanelLayersLayout = new javax.swing.GroupLayout(jPanelLayers);
> jPanelLayers.setLayout(jPanelLayersLayout);
> jPanelLayersLayout.setHorizontalGroup(
> jPanelLayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGap(0, 860, Short.MAX_VALUE)
> );
> jPanelLayersLayout.setVerticalGroup(
> jPanelLayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGap(0, 516, Short.MAX_VALUE)
> );
>
> jPanelMainLayers.add(jPanelLayers, java.awt.BorderLayout.CENTER);
>
> jPanel1.add(jPanelMainLayers, java.awt.BorderLayout.CENTER);
>
> jPanelControls.setPreferredSize(new java.awt.Dimension(750, 120));
>
> jPanelLocal.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
>
> jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
> org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jLabel1.text")); // NOI18N
>
> org.openide.awt.Mnemonics.setLocalizedText(jButtonOpenFile, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jButtonOpenFile.text")); // NOI18N
> jButtonOpenFile.setActionCommand(org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jButtonOpenFile.actionCommand")); // NOI18N
> jButtonOpenFile.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jButtonOpenFileActionPerformed(evt);
> }
> });
>
> org.openide.awt.Mnemonics.setLocalizedText(jButtonStart, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jButtonStart.text")); // NOI18N
> jButtonStart.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jButtonStartActionPerformed(evt);
> }
> });
>
> org.openide.awt.Mnemonics.setLocalizedText(jButtonStep, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jButtonStep.text")); // NOI18N
> jButtonStep.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jButtonStepActionPerformed(evt);
> }
> });
>
> javax.swing.GroupLayout jPanelLocalLayout = new javax.swing.GroupLayout(jPanelLocal);
> jPanelLocal.setLayout(jPanelLocalLayout);
> jPanelLocalLayout.setHorizontalGroup(
> jPanelLocalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelLocalLayout.createSequentialGroup()
> .addGroup(jPanelLocalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelLocalLayout.createSequentialGroup()
> .addComponent(jLabel1)
> .addGap(16, 16, 16))
> .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelLocalLayout.createSequentialGroup()
> .addComponent(jButtonStart)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))
> .addGroup(jPanelLocalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
> .addComponent(jButtonOpenFile)
> .addComponent(jButtonStep))
> .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
> );
> jPanelLocalLayout.setVerticalGroup(
> jPanelLocalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelLocalLayout.createSequentialGroup()
> .addGroup(jPanelLocalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
> .addComponent(jLabel1)
> .addComponent(jButtonOpenFile))
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addGroup(jPanelLocalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addComponent(jButtonStep)
> .addComponent(jButtonStart))
> .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
> );
>
> jPanelCommon.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
> jPanelCommon.setPreferredSize(new java.awt.Dimension(814, 34));
>
> org.openide.awt.Mnemonics.setLocalizedText(jButtonDescription, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jButtonDescription.text")); // NOI18N
> jButtonDescription.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jButtonDescriptionActionPerformed(evt);
> }
> });
>
> org.openide.awt.Mnemonics.setLocalizedText(jButtonParameters, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jButtonParameters.text")); // NOI18N
> jButtonParameters.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jButtonParametersActionPerformed(evt);
> }
> });
>
> javax.swing.GroupLayout jPanelOutputLayout = new javax.swing.GroupLayout(jPanelOutput);
> jPanelOutput.setLayout(jPanelOutputLayout);
> jPanelOutputLayout.setHorizontalGroup(
> jPanelOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelOutputLayout.createSequentialGroup()
> .addComponent(jButtonParameters)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
> .addComponent(jButtonDescription)
> .addGap(0, 10, Short.MAX_VALUE))
> );
> jPanelOutputLayout.setVerticalGroup(
> jPanelOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelOutputLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
> .addComponent(jButtonParameters)
> .addComponent(jButtonDescription))
> );
>
> org.openide.awt.Mnemonics.setLocalizedText(jCheckBoxPrint, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jCheckBoxPrint.text")); // NOI18N
>
> org.openide.awt.Mnemonics.setLocalizedText(jCheckBoxOutput, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jCheckBoxOutput.text")); // NOI18N
>
> jTextFieldFileRoot.setText(org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jTextFieldFileRoot.text")); // NOI18N
>
> jCheckBoxPlot.setSelected(true);
> org.openide.awt.Mnemonics.setLocalizedText(jCheckBoxPlot, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jCheckBoxPlot.text")); // NOI18N
>
> jTextFieldPlotItems.setText(org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jTextFieldPlotItems.text")); // NOI18N
> jTextFieldPlotItems.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
> public void propertyChange(java.beans.PropertyChangeEvent evt) {
> plotLimitChange(evt);
> }
> });
>
> org.openide.awt.Mnemonics.setLocalizedText(jCheckBoxShortNames, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jCheckBoxShortNames.text")); // NOI18N
> jCheckBoxShortNames.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jCheckBoxShortNamesActionPerformed(evt);
> }
> });
>
> jTextFieldFontSize.setText(org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jTextFieldFontSize.text")); // NOI18N
> jTextFieldFontSize.addFocusListener(new java.awt.event.FocusAdapter() {
> public void focusLost(java.awt.event.FocusEvent evt) {
> focusFontSize(evt);
> }
> });
> jTextFieldFontSize.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
> public void propertyChange(java.beans.PropertyChangeEvent evt) {
> fontSizeChange(evt);
> }
> });
>
> org.openide.awt.Mnemonics.setLocalizedText(jLabelFont, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jLabelFont.text")); // NOI18N
>
> javax.swing.GroupLayout jPanelCommonLayout = new javax.swing.GroupLayout(jPanelCommon);
> jPanelCommon.setLayout(jPanelCommonLayout);
> jPanelCommonLayout.setHorizontalGroup(
> jPanelCommonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelCommonLayout.createSequentialGroup()
> .addComponent(jCheckBoxPrint)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
> .addComponent(jCheckBoxOutput)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jTextFieldFileRoot, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
> .addComponent(jCheckBoxPlot)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jTextFieldPlotItems, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addGap(5, 5, 5)
> .addComponent(jLabelFont)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jTextFieldFontSize, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jCheckBoxShortNames)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jPanelOutput, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
> );
> jPanelCommonLayout.setVerticalGroup(
> jPanelCommonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addComponent(jPanelOutput, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelCommonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
> .addComponent(jCheckBoxPrint)
> .addComponent(jCheckBoxOutput)
> .addComponent(jTextFieldFileRoot, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addComponent(jCheckBoxPlot)
> .addComponent(jTextFieldPlotItems, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addComponent(jCheckBoxShortNames)
> .addComponent(jTextFieldFontSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addComponent(jLabelFont, javax.swing.GroupLayout.DEFAULT_SIZE, 29, Short.MAX_VALUE))
> );
>
> jPanelRemote.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
>
> org.openide.awt.Mnemonics.setLocalizedText(jButtonRemote, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jButtonRemote.text")); // NOI18N
> jButtonRemote.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jButtonRemoteActionPerformed(evt);
> }
> });
>
> jTextFieldHost.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
> jTextFieldHost.setText(org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jTextFieldHost.text")); // NOI18N
>
> jTextFieldFreq.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
> jTextFieldFreq.setText(org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jTextFieldFreq.text")); // NOI18N
>
> org.openide.awt.Mnemonics.setLocalizedText(jLabelFreq, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jLabelFreq.text")); // NOI18N
>
> jTextFieldPort.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
> jTextFieldPort.setText(org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jTextFieldPort.text")); // NOI18N
> jTextFieldPort.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jTextFieldPortActionPerformed(evt);
> }
> });
>
> org.openide.awt.Mnemonics.setLocalizedText(jLabelHost, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jLabelHost.text")); // NOI18N
>
> org.openide.awt.Mnemonics.setLocalizedText(jLabelPort, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jLabelPort.text")); // NOI18N
>
> org.openide.awt.Mnemonics.setLocalizedText(jButtonShutdown, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jButtonShutdown.text")); // NOI18N
> jButtonShutdown.addActionListener(new java.awt.event.ActionListener() {
> public void actionPerformed(java.awt.event.ActionEvent evt) {
> jButtonShutdownActionPerformed(evt);
> }
> });
>
> javax.swing.GroupLayout jPanelRemoteLayout = new javax.swing.GroupLayout(jPanelRemote);
> jPanelRemote.setLayout(jPanelRemoteLayout);
> jPanelRemoteLayout.setHorizontalGroup(
> jPanelRemoteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelRemoteLayout.createSequentialGroup()
> .addGap(6, 6, 6)
> .addComponent(jLabelHost)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jTextFieldHost, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addGap(18, 18, 18)
> .addComponent(jLabelPort)
> .addGap(6, 6, 6)
> .addComponent(jTextFieldPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
> .addGroup(jPanelRemoteLayout.createSequentialGroup()
> .addComponent(jButtonRemote)
> .addGap(22, 22, 22)
> .addComponent(jButtonShutdown)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jLabelFreq)
> .addGap(2, 2, 2)
> .addComponent(jTextFieldFreq, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE))
> );
> jPanelRemoteLayout.setVerticalGroup(
> jPanelRemoteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelRemoteLayout.createSequentialGroup()
> .addGroup(jPanelRemoteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelRemoteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
> .addComponent(jButtonRemote)
> .addComponent(jButtonShutdown))
> .addComponent(jLabelFreq))
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addGroup(jPanelRemoteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
> .addComponent(jTextFieldHost, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addComponent(jLabelHost)
> .addComponent(jLabelPort)
> .addComponent(jTextFieldPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
> .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
> .addGroup(jPanelRemoteLayout.createSequentialGroup()
> .addComponent(jTextFieldFreq, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addGap(0, 0, Short.MAX_VALUE))
> );
>
> jPanelFile.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
>
> jLabelTime.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
> org.openide.awt.Mnemonics.setLocalizedText(jLabelTime, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jLabelTime.text")); // NOI18N
>
> org.openide.awt.Mnemonics.setLocalizedText(jLabelFilename, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jLabelFilename.text")); // NOI18N
>
> org.openide.awt.Mnemonics.setLocalizedText(jLabel6, org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jLabel6.text")); // NOI18N
>
> jTextFieldControllersDir.setText(org.openide.util.NbBundle.getMessage(ControlPanelTopComponent.class, "ControlPanelTopComponent.jTextFieldControllersDir.text")); // NOI18N
>
> javax.swing.GroupLayout jPanelFileLayout = new javax.swing.GroupLayout(jPanelFile);
> jPanelFile.setLayout(jPanelFileLayout);
> jPanelFileLayout.setHorizontalGroup(
> jPanelFileLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelFileLayout.createSequentialGroup()
> .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
> .addComponent(jLabel6)
> .addGap(18, 18, 18)
> .addComponent(jTextFieldControllersDir, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addGap(0, 17, Short.MAX_VALUE))
> .addGroup(jPanelFileLayout.createSequentialGroup()
> .addComponent(jLabelTime, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
> .addComponent(jLabelFilename, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
> .addContainerGap())
> );
> jPanelFileLayout.setVerticalGroup(
> jPanelFileLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelFileLayout.createSequentialGroup()
> .addGroup(jPanelFileLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
> .addComponent(jLabelTime)
> .addComponent(jLabelFilename))
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addGroup(jPanelFileLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addComponent(jLabel6)
> .addComponent(jTextFieldControllersDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
> .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
> );
>
> javax.swing.GroupLayout jPanelControlsLayout = new javax.swing.GroupLayout(jPanelControls);
> jPanelControls.setLayout(jPanelControlsLayout);
> jPanelControlsLayout.setHorizontalGroup(
> jPanelControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelControlsLayout.createSequentialGroup()
> .addContainerGap()
> .addGroup(jPanelControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addComponent(jPanelCommon, javax.swing.GroupLayout.DEFAULT_SIZE, 844, Short.MAX_VALUE)
> .addGroup(jPanelControlsLayout.createSequentialGroup()
> .addComponent(jPanelLocal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jPanelRemote, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jPanelFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addGap(0, 0, Short.MAX_VALUE)))
> .addContainerGap())
> );
> jPanelControlsLayout.setVerticalGroup(
> jPanelControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
> .addGroup(jPanelControlsLayout.createSequentialGroup()
> .addContainerGap()
> .addGroup(jPanelControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
> .addComponent(jPanelFile, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
> .addComponent(jPanelLocal, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
> .addComponent(jPanelRemote, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
> .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
> .addComponent(jPanelCommon, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
> .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
> );
>
> jPanel1.add(jPanelControls, java.awt.BorderLayout.PAGE_END);
>
> mainPanel.add(jPanel1, java.awt.BorderLayout.CENTER);
>
> add(mainPanel, java.awt.BorderLayout.CENTER);
> }// </editor-fold>
>
> private class TimeLabelListener implements PropertyChangeListener {
>
> @Override
> public void propertyChange(PropertyChangeEvent evt) {
> if (ControlHierarchyEventMonitor.TIME.equals(evt.getPropertyName())) {
> jLabelTime.setText((String) evt.getNewValue());
> }
> }
> }
>
> private void jButtonStartActionPerformed(java.awt.event.ActionEvent evt) {
> cph.setStep(false);
> if ("Start".equals(jButtonStart.getText()) || "Resume".equals(jButtonStart.getText())) {
> if ("Start".equals(jButtonStart.getText())) {
> try {
> cph.init();
> } catch (Exception ex) {
> //LOG.warning(ex.toString());
> Logger.getLogger(ControlPanelTopComponent.class.getName()).log(Level.SEVERE, null, ex);
> LOG.warning("System exitint");
> System.exit(0);
> }
> }
> LOG.info("+++ start ");
> if (cph.isFinished()) {
> plotPanelHelper.empty();
> }
> jButtonStart.setText("Stop");
> if (cph != null) {
> Thread tt = new Thread(cph);
> tt.start();
> LOG.info("+++ started thread ");
> }
> } else if ("Stop".equals(jButtonStart.getText())) {
> LOG.info("+++ stop ");
> jButtonStart.setText("Resume");
> if (cph != null) {
> cph.setStep(true);
> try {
> cph.stop();
> } catch (Exception ex) {
> Logger.getLogger(ControlPanelTopComponent.class.getName()).log(Level.SEVERE, null, ex);
> }
> }
> }
>
>
> }
>
> private String getOutputFileName(String file) {
>
> String home = System.getProperty("user.home");
> String os = System.getProperty("os.name");
> File dir;
> if (os.equalsIgnoreCase("linux")) {
> dir = new File(home + "/tmp/PCT/");
> if (!dir.exists()) {
> dir.mkdir();
> }
> } else {
> dir = new File(home + "\\tmp\\PCT\\Controllers\\");
> if (!dir.exists()) {
> dir.mkdir();
> }
>
> }
>
> String outputFile = dir + File.separator + file + ".csv";
> LOG.log(Level.INFO, "Output file path {0}", outputFile);
> File f = new File(outputFile);
> if (f.exists()) {
> f.delete();
> }
> return outputFile;
> }
>
> @SuppressWarnings("SleepWhileInLoop")
> private void jButtonOpenFileActionPerformed(java.awt.event.ActionEvent evt) {
>
> LOG.info("+++ openFileAction");
> monitor.clear();
>
> jButtonStart.setText("Start");
> if (cph != null) {
> try {
> cph.close();
> } catch (Exception ex) {
> Exceptions.printStackTrace(ex);
> }
>
> if (!jButtonStart.getText().equals("Start")) {
> while (!cph.isFinished()) {
> LOG.log(Level.INFO, "+++ Waiting for closedown");
> try {
> Thread.sleep(2000);
> } catch (InterruptedException ex) {
> Exceptions.printStackTrace(ex);
> }
> }
> }
> }
> jButtonStart.setText("Start");
>
> int returnVal = jFileChooser.showOpenDialog(super.getComponent(0));
>
> String currentDir = jFileChooser.getCurrentDirectory().getName();
> LOG.log(Level.INFO, "+++ {0}", currentDir);
> if (!currentDir.equalsIgnoreCase(env)) {
> jFileChooser.setCurrentDirectory(new File(currentDir));
> }
>
> int pdil = Integer.parseInt(jTextFieldPlotItems.getText());
> if (returnVal == JFileChooser.APPROVE_OPTION) {
> File file = jFileChooser.getSelectedFile();
>
> LOG.log(Level.INFO, "Opening: {0}.", file.getAbsolutePath());
> try {
> jLabelFilename.setText(file.getName());
> Environment.getInstance().setFilePath(file.getAbsolutePath());
> Environment.getInstance().setFileRoot(file.getName());
> cph = new ControlPanelHelper(file, jCheckBoxPrint.isSelected(), jCheckBoxOutput.isSelected(), monitor, pdil);
> if (jCheckBoxOutput.isSelected()) {
> jTextFieldFileRoot.setText(Environment.getInstance().getFileRoot().substring(0, Environment.getInstance().getFileRoot().length()));
> cph.setOutputFile(getOutputFileName(Environment.getInstance().getFileRoot().substring(0, Environment.getInstance().getFileRoot().length())));
> }
> cph.setTimeLabel(jLabelTime);
> cph.constructGUI(jPanelLayers);
> //jPanelPlot.add(cph.getPlotPanel());
> if (jCheckBoxPlot.isSelected()) {
>
> Set<TopComponent> setTc = WindowManager.getDefault().getRegistry().getOpened();
> for (TopComponent tc : setTc) {
> LOG.info("+++ TC " + tc.getName());
> }
> pjp = (PlotPanelTopComponent) WindowManager.getDefault().findTopComponent("PlotPanelTopComponent");
> if (plotPanelHelper == null) {
> if (pjp == null) {
> pjp = new PlotPanelTopComponent(cph);
> }
> plotPanelHelper = pjp.getPlotPanelHelper();
> if (pjp.getCph() == null) {
> pjp.setCph(cph);
> }
> plotPanelHelper.addPlotPanel(pjp, cph);
> } else {
> plotPanelHelper.clear();
> pjp.setCph(cph);
> plotPanelHelper.updateControllersListModel(cph);
> plotPanelHelper.loadPlotsResource();
> }
> cph.setPlotPanelHelper(plotPanelHelper);
> }
> this.getComponent(0).revalidate();
> this.getComponent(0).repaint();
> //cph.setLayerPanel(jPanelLayers);
> } catch (Exception ex) {
> Logger.getLogger(ControlPanelTopComponent.class.getName()).log(Level.SEVERE, null, ex);
> // System.exit(0);
> }
> } else {
> LOG.info("Open command cancelled by user.");
> }
>
> }
>
> private void jButtonDescriptionActionPerformed(java.awt.event.ActionEvent evt) {
> JTextArea jTextAreaDescription1 = new JTextArea();
> JFrame descriptionFrame = new JFrame("Description");
> String description = null;
> if (cph == null) {
> description = "Select a controller";
> } else {
> try {
> description = cph.getDescription();
> } catch (Exception ex) {
> Logger.getLogger(ControlPanelTopComponent.class.getName()).log(Level.SEVERE, null, ex);
> }
> }
> descriptionFrame.add(jTextAreaDescription1);
>
> jTextAreaDescription1.setText(description);
>
> descriptionFrame.pack();
> descriptionFrame.setVisible(true);
> descriptionFrame.setSize(600, 300);
>
> }
>
> private void jButtonParametersActionPerformed(java.awt.event.ActionEvent evt) {
> JFrame parametersFrame = new JFrame("Parameters");
> JPanel jPanel = new JPanel();
> JScrollPane jsp = new JScrollPane();
> jsp.setViewportView(jPanel);
> parametersFrame.add(jsp);
> if (cph == null) {
> JTextArea jTextAreaDescription = new JTextArea();
> jPanel.add(jTextAreaDescription);
> jTextAreaDescription.setText("Controller not yet selected");
> } else {
> ParameterslPanelHelper pph = new ParameterslPanelHelper();
> pph.setControlHierarchy(cph.getControlHierarchy());
> pph.constructGUI(jPanel);
> }
>
> parametersFrame.pack();
> parametersFrame.setVisible(true);
> }
>
> private void jButtonStepActionPerformed(java.awt.event.ActionEvent evt) {
> cph.setStep(true);
> //logger.info("+++ step");
> if (cph != null) {
> if (jButtonStart.getText().equalsIgnoreCase("start")) {
> try {
> cph.init();
> } catch (Exception ex) {
> Exceptions.printStackTrace(ex);
> }
> }
> jButtonStart.setText("Resume");
> try {
> cph.stop();
> } catch (Exception ex) {
> Logger.getLogger(ControlPanelTopComponent.class.getName()).log(Level.SEVERE, null, ex);
> }
> Thread tt = new Thread(cph);
> tt.start();
> //logger.info("+++ started step thread ");
> }
> }
>
> @SuppressWarnings("SleepWhileInLoop")
> private void jButtonRemoteActionPerformed(java.awt.event.ActionEvent evt) {
> monitor.clear();
> if (jButtonRemote.getText().equalsIgnoreCase("connect")) {
> try {
> LOG.info("+++ connecting ...");
> try {
> int pdil = Integer.parseInt(jTextFieldPlotItems.getText());
>
> cph = new ControlPanelHelper(jTextFieldHost.getText(),
> Integer.parseInt(jTextFieldPort.getText()),
> Integer.parseInt(jTextFieldPort.getText()) + 1,
> Integer.parseInt(jTextFieldFreq.getText()),
> jCheckBoxPrint.isSelected(),
> jCheckBoxOutput.isSelected(),
> monitor, pdil, jTextFieldControllersDir.getText(), 20000);
>
> jTextFieldFileRoot.setText(cph.getOutputFile());
> cph.setTimeLabel(jLabelTime);
> cph.constructGUI(jPanelLayers);
>
> jLabelFilename.setText(Environment.getInstance().getFileRoot());
>
> if (jCheckBoxPlot.isSelected()) {
> Set<TopComponent> setTc = WindowManager.getDefault().getRegistry().getOpened();
> for (TopComponent tc : setTc) {
> LOG.log(Level.INFO, "+++ TC {0}", tc.getName());
> }
> pjp = (PlotPanelTopComponent) WindowManager.getDefault().findTopComponent("PlotPanelTopComponent");
> if (plotPanelHelper == null) {
> if (pjp == null) {
> pjp = new PlotPanelTopComponent(cph);
> }
> plotPanelHelper = pjp.getPlotPanelHelper();
> if (pjp.getCph() == null) {
> pjp.setCph(cph);
> }
> plotPanelHelper.addPlotPanel(pjp, cph);
> } else {
> plotPanelHelper.clear();
> pjp.setCph(cph);
> plotPanelHelper.updateControllersListModel(cph);
> plotPanelHelper.loadPlotsResource();
> }
> cph.setPlotPanelHelper(plotPanelHelper);
> }
> jButtonRemote.setText("Disconnect");
> } catch (Exception ex) {
> Logger.getLogger(ControlPanelTopComponent.class.getName()).log(Level.SEVERE, null, ex);
> // System.exit(0);
> }
>
> if (cph != null) {
> Thread tt = new Thread(cph);
> tt.start();
> LOG.info("+++ started cph thread ");
> }
>
> } catch (NumberFormatException ex) {
> Exceptions.printStackTrace(ex);
> }
> } else {
> disconnect();
> }
>
> }
>
> private void disconnect() {
> LOG.info("+++ disconnecting ...");
> try {
> if (cph != null) {
> cph.stop();
> cph.close();
> }
> } catch (Exception ex) {
> Logger.getLogger(ControlPanelTopComponent.class.getName()).log(Level.SEVERE, null, ex);
> }
>
> jButtonRemote.setText("Connect");
> }
>
> private void jTextFieldPortActionPerformed(java.awt.event.ActionEvent evt) {
> // TODO add your handling code here:
> }
>
> private void jCheckBoxShortNamesActionPerformed(java.awt.event.ActionEvent evt) {
> Environment.getInstance().setShortNames(jCheckBoxShortNames.isSelected());
> }
>
> private void jButtonShutdownActionPerformed(java.awt.event.ActionEvent evt) {
>
> if (cph != null) {
> cph.shutdown();
> }
>
> disconnect();
> }
>
> private void plotLimitChange(java.beans.PropertyChangeEvent evt) {
> if (cph != null) {
> cph.setPlotDataItemsLimit(Integer.parseInt(jTextFieldPlotItems.getText()));
> }
> }
>
> private void fontSizeChange(java.beans.PropertyChangeEvent evt) {
> //Environment.getInstance().setFontSize(Integer.parseInt(jTextFieldFontSize.getText()));
> }
>
> private void focusFontSize(java.awt.event.FocusEvent evt) {
> Environment.getInstance().setFontSize(Integer.parseInt(jTextFieldFontSize.getText()));
> }
>
> // Variables declaration - do not modify
> private javax.swing.JButton jButtonDescription;
> private javax.swing.JButton jButtonOpenFile;
> private javax.swing.JButton jButtonParameters;
> private javax.swing.JButton jButtonRemote;
> private javax.swing.JButton jButtonShutdown;
> private javax.swing.JButton jButtonStart;
> private javax.swing.JButton jButtonStep;
> private javax.swing.JCheckBox jCheckBoxOutput;
> private javax.swing.JCheckBox jCheckBoxPlot;
> private javax.swing.JCheckBox jCheckBoxPrint;
> private javax.swing.JCheckBox jCheckBoxShortNames;
> private javax.swing.JFileChooser jFileChooser;
> private javax.swing.JLabel jLabel1;
> private javax.swing.JLabel jLabel6;
> private javax.swing.JLabel jLabelFilename;
> private javax.swing.JLabel jLabelFont;
> private javax.swing.JLabel jLabelFreq;
> private javax.swing.JLabel jLabelHost;
> private javax.swing.JLabel jLabelPort;
> private javax.swing.JLabel jLabelTime;
> private javax.swing.JPanel jPanel1;
> private javax.swing.JPanel jPanelCommon;
> private javax.swing.JPanel jPanelControls;
> private javax.swing.JPanel jPanelFile;
> private javax.swing.JPanel jPanelLayers;
> private javax.swing.JPanel jPanelLocal;
> private javax.swing.JPanel jPanelMainLayers;
> private javax.swing.JPanel jPanelOutput;
> private javax.swing.JPanel jPanelRemote;
> private javax.swing.JTextField jTextFieldControllersDir;
> private javax.swing.JTextField jTextFieldFileRoot;
> private javax.swing.JTextField jTextFieldFontSize;
> private javax.swing.JTextField jTextFieldFreq;
> private javax.swing.JTextField jTextFieldHost;
> private javax.swing.JTextField jTextFieldPlotItems;
> private javax.swing.JTextField jTextFieldPort;
> private javax.swing.JPanel mainPanel;
> // End of variables declaration
> private ControlPanelHelper cph;
> private boolean connected = false;
> //private DefaultListModel functionsListModel = null;
> private HashMap<String, String> hmFunctions;
> private List<String> selectedFunctions = null;
> private PlotPanelHelper plotPanelHelper = null;
> private PlotPanelTopComponent pjp = null;
> private ControlHierarchyEventMonitor monitor;
> private ControlDataClient mc = null;
> private String env = null;
>
> @Override
> public void componentOpened() {
> // TODO add custom code on component opening
> }
>
> @Override
> public void componentClosed() {
> // TODO add custom code on component closing
> }
>
> void writeProperties(java.util.Properties p) {
> // better to version settings since initial version as advocated at
> // http://wiki.apidesign.org/wiki/PropertyFiles
> p.setProperty("version", "1.0");
> // TODO store your settings
> }
>
> void readProperties(java.util.Properties p) {
> String version = p.getProperty("version");
> // TODO read your settings according to their version
> }
> }
>
>
>
>
>
>
>