|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.vcs.advanced.commands;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.beans.PropertyDescriptor;
import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;
import java.util.Arrays;
import javax.swing.table.DefaultTableModel;
import org.openide.DialogDescriptor;
import org.openide.DialogDisplayer;
import org.openide.ErrorManager;
import org.openide.NotifyDescriptor;
import org.openide.explorer.propertysheet.DefaultPropertyModel;
import org.openide.explorer.propertysheet.PropertyPanel;
import org.openide.explorer.propertysheet.editors.EnhancedCustomPropertyEditor;
import org.netbeans.modules.vcscore.cmdline.exec.StructuredExec;
import org.netbeans.modules.vcscore.cmdline.exec.StructuredExec.Argument;
import org.netbeans.modules.vcscore.commands.VcsCommand;
import org.netbeans.modules.vcscore.util.ChooseDirDialog;
import org.netbeans.modules.vcscore.util.ChooseFileDialog;
import org.netbeans.modules.vcscore.util.VcsUtilities;
import org.openide.util.NbBundle;
/**
*
* @author Martin Entlicher
*/
public class StructuredExecPanel extends javax.swing.JPanel implements EnhancedCustomPropertyEditor {
private String execString;
private StructuredExec execStructured;
protected DefaultTableModel argTableModel;
private VcsCommand cmd;
/** Creates new form StructuredExecPanel */
public StructuredExecPanel() {
this(null);
}
/** Creates new form StructuredExecPanel */
public StructuredExecPanel(VcsCommand cmd) {
this.cmd = cmd;
initComponents();
execButtonGroup.add(stringRadioButton);
execButtonGroup.add(structuredRadioButton);
stringTextField.setColumns(50);
attachFocusLostListener();
postInitComponents();
editButton.setVisible(isEditArgTableRowSupported());
argTable.getSelectionModel().addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent lsev) {
removeButton.setEnabled(argTable.getSelectedRows().length > 0);
}
});
}
/** 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.
*/
private void initComponents() {//GEN-BEGIN:initComponents
java.awt.GridBagConstraints gridBagConstraints;
execButtonGroup = new javax.swing.ButtonGroup();
stringRadioButton = new javax.swing.JRadioButton();
stringTextField = new javax.swing.JTextField();
stringEditButton = new javax.swing.JButton();
structuredRadioButton = new javax.swing.JRadioButton();
structuredPanel = new javax.swing.JPanel();
workLabel = new javax.swing.JLabel();
workTextField = new javax.swing.JTextField();
workButton = new javax.swing.JButton();
execLabel = new javax.swing.JLabel();
execTextField = new javax.swing.JTextField();
execButton = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
argTable = new javax.swing.JTable();
buttonsPanel = new javax.swing.JPanel();
addButton = new javax.swing.JButton();
editButton = new javax.swing.JButton();
removeButton = new javax.swing.JButton();
FormListener formListener = new FormListener();
setLayout(new java.awt.GridBagLayout());
getAccessibleContext().setAccessibleName(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel"));
getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel"));
stringRadioButton.setMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.stringRadioButton_mnc").charAt(0));
stringRadioButton.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.ExecString"));
stringRadioButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 11);
add(stringRadioButton, gridBagConstraints);
stringRadioButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.StringRadioButton"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 30, 0, 6);
add(stringTextField, gridBagConstraints);
stringTextField.getAccessibleContext().setAccessibleName(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.stringField"));
stringTextField.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.stringField"));
stringEditButton.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.ExecString.EditButton"));
stringEditButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 1;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 11);
add(stringEditButton, gridBagConstraints);
stringEditButton.getAccessibleContext().setAccessibleName(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.stringButton"));
stringEditButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.stringButton"));
structuredRadioButton.setMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.structuredRadioButton").charAt(0));
structuredRadioButton.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.ExecStructured"));
structuredRadioButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11);
add(structuredRadioButton, gridBagConstraints);
structuredRadioButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructureExecPanel.structuredExecRadioButton"));
structuredPanel.setLayout(new java.awt.GridBagLayout());
workLabel.setDisplayedMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.workLabel").charAt(0));
workLabel.setLabelFor(workTextField);
workLabel.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.ExecStructured.Working"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 6);
structuredPanel.add(workLabel, gridBagConstraints);
workLabel.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.wrokLabel"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 12);
structuredPanel.add(workTextField, gridBagConstraints);
workTextField.getAccessibleContext().setAccessibleName(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.workTextField"));
workTextField.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.workTextField"));
workButton.setMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.workButton_mnc").charAt(0));
workButton.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.Browse"));
workButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 0);
structuredPanel.add(workButton, gridBagConstraints);
workButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.workButton"));
execLabel.setDisplayedMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.execLabel").charAt(0));
execLabel.setLabelFor(execTextField);
execLabel.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.ExecStructured.Executable"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 6);
structuredPanel.add(execLabel, gridBagConstraints);
execLabel.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.execLabel"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 12);
structuredPanel.add(execTextField, gridBagConstraints);
execTextField.getAccessibleContext().setAccessibleName(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.execTextField"));
execTextField.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.execTextField"));
execButton.setMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.execButton_mnc").charAt(0));
execButton.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.Browse"));
execButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
structuredPanel.add(execButton, gridBagConstraints);
execButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.workButton"));
jScrollPane1.setPreferredSize(new java.awt.Dimension(400, 200));
jScrollPane1.setViewportView(argTable);
argTable.getAccessibleContext().setAccessibleName(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.argTable"));
argTable.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.argTable"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(6, 0, 0, 12);
structuredPanel.add(jScrollPane1, gridBagConstraints);
buttonsPanel.setLayout(new java.awt.GridBagLayout());
addButton.setMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.addButton_mnc").charAt(0));
addButton.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.AddArg"));
addButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 0);
buttonsPanel.add(addButton, gridBagConstraints);
addButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.addButton"));
editButton.setMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.editButton_mnc").charAt(0));
editButton.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.EditArg"));
editButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 0);
buttonsPanel.add(editButton, gridBagConstraints);
editButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.editButton"));
removeButton.setMnemonic(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACS_StructuredExecPanel.removeButton_nmc").charAt(0));
removeButton.setText(org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.RemoveArg"));
removeButton.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 0);
buttonsPanel.add(removeButton, gridBagConstraints);
removeButton.getAccessibleContext().setAccessibleDescription(NbBundle.getBundle("org/netbeans/modules/vcs/advanced/commands/Bundle").getString("ACSD_StructuredExecPanel.removeButton"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
gridBagConstraints.insets = new java.awt.Insets(6, 0, 0, 0);
structuredPanel.add(buttonsPanel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 30, 11, 11);
add(structuredPanel, gridBagConstraints);
}
// Code for dispatching events from components to event handlers.
private class FormListener implements java.awt.event.ActionListener {
public void actionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getSource() == stringRadioButton) {
StructuredExecPanel.this.stringRadioButtonActionPerformed(evt);
}
else if (evt.getSource() == stringEditButton) {
StructuredExecPanel.this.stringEditButtonActionPerformed(evt);
}
else if (evt.getSource() == structuredRadioButton) {
StructuredExecPanel.this.structuredRadioButtonActionPerformed(evt);
}
else if (evt.getSource() == workButton) {
StructuredExecPanel.this.workButtonActionPerformed(evt);
}
else if (evt.getSource() == execButton) {
StructuredExecPanel.this.execButtonActionPerformed(evt);
}
else if (evt.getSource() == addButton) {
StructuredExecPanel.this.addButtonActionPerformed(evt);
}
else if (evt.getSource() == editButton) {
StructuredExecPanel.this.editButtonActionPerformed(evt);
}
else if (evt.getSource() == removeButton) {
StructuredExecPanel.this.removeButtonActionPerformed(evt);
}
}
}//GEN-END:initComponents
private void structuredRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_structuredRadioButtonActionPerformed
// Add your handling code here:
if (stringRadioButton.isSelected() && execStructured == null) {
execStructured = new StructuredExec(new java.io.File(workTextField.getText()), execTextField.getText(), new Argument[0]);
}
enableString(stringRadioButton.isSelected());
enableStructured(structuredRadioButton.isSelected());
}//GEN-LAST:event_structuredRadioButtonActionPerformed
private void stringRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stringRadioButtonActionPerformed
// Add your handling code here:
enableString(stringRadioButton.isSelected());
enableStructured(structuredRadioButton.isSelected());
}//GEN-LAST:event_stringRadioButtonActionPerformed
private void stringEditButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stringEditButtonActionPerformed
// Add your handling code here:
PropertyEditor stringEditor = PropertyEditorManager.findEditor (String.class);
if (stringEditor == null) {
stringEditButton.setEnabled(false);
}
stringEditor.setValue(stringTextField.getText());
java.awt.Component editorComponent = stringEditor.getCustomEditor();
DialogDescriptor dd = new DialogDescriptor(editorComponent, org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.ExecString"));
if (NotifyDescriptor.OK_OPTION.equals(DialogDisplayer.getDefault().notify(dd))) {
if (editorComponent instanceof EnhancedCustomPropertyEditor) {
try {
stringTextField.setText((String) ((EnhancedCustomPropertyEditor) editorComponent).getPropertyValue());
} catch (IllegalStateException isex) {
ErrorManager.getDefault().notify(isex);
}
} else {
stringTextField.setText((String) stringEditor.getValue());
}
}
}//GEN-LAST:event_stringEditButtonActionPerformed
private void execButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_execButtonActionPerformed
// Add your handling code here:
java.awt.Frame frame = null;
java.awt.Dialog dialog = null;
java.awt.Container tparent = getTopLevelAncestor();
if (tparent instanceof java.awt.Frame) {
frame = (java.awt.Frame) tparent;
} else if (tparent instanceof java.awt.Dialog) {
dialog = (java.awt.Dialog) tparent;
} else {
frame = new javax.swing.JFrame();
}
ChooseFileDialog chooseFile;
if (frame != null) {
chooseFile = new ChooseFileDialog(frame, new java.io.File(execTextField.getText ()), false);
} else {
chooseFile = new ChooseFileDialog(dialog, new java.io.File(execTextField.getText ()), false);
}
VcsUtilities.centerWindow (chooseFile);
chooseFile.show();
String selected = chooseFile.getSelectedFile();
if (selected == null) {
//D.deb("no directory selected"); // NOI18N
return ;
}
execTextField.setText(selected);
}//GEN-LAST:event_execButtonActionPerformed
private void workButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_workButtonActionPerformed
// Add your handling code here:
java.awt.Frame frame = null;
java.awt.Dialog dialog = null;
java.awt.Container tparent = getTopLevelAncestor();
if (tparent instanceof java.awt.Frame) {
frame = (java.awt.Frame) tparent;
} else if (tparent instanceof java.awt.Dialog) {
dialog = (java.awt.Dialog) tparent;
} else {
frame = new javax.swing.JFrame();
}
ChooseDirDialog chooseDir;
if (frame != null) {
chooseDir = new ChooseDirDialog(frame, new java.io.File(workTextField.getText ()));
} else {
chooseDir = new ChooseDirDialog(dialog, new java.io.File(workTextField.getText ()));
}
VcsUtilities.centerWindow (chooseDir);
chooseDir.show();
String selected = chooseDir.getSelectedDir();
if (selected == null) {
//D.deb("no directory selected"); // NOI18N
return ;
}
workTextField.setText(selected);
}//GEN-LAST:event_workButtonActionPerformed
private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed
// Add your handling code here:
removeArgTableRow();
}//GEN-LAST:event_removeButtonActionPerformed
private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editButtonActionPerformed
// Add your handling code here:
editArgTableRow();
}//GEN-LAST:event_editButtonActionPerformed
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
// Add your handling code here:
addArgTableRow();
}//GEN-LAST:event_addButtonActionPerformed
protected void postInitComponents() {
argTableModel = new DefaultTableModel(new Object[0][0], new Object[] {
org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.Arguments"),
org.openide.util.NbBundle.getMessage(StructuredExecPanel.class, "StructuredExecPanel.ArgLine")
}) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.Boolean.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
};
argTable.setModel(argTableModel);
Object lineHeaderValue = argTable.getColumnModel().getColumn(1).getHeaderValue();
javax.swing.table.TableCellRenderer tcr = argTable.getColumnModel().getColumn(1).getHeaderRenderer();
if (tcr == null) {
tcr = argTable.getTableHeader().getDefaultRenderer();
}
java.awt.Component lineHeaderComponent = tcr.getTableCellRendererComponent(argTable, lineHeaderValue, false, true, 0, 1);
int width = lineHeaderComponent.getPreferredSize().width;
argTable.getColumnModel().getColumn(1).setPreferredWidth(width + 24);
argTable.getColumnModel().getColumn(1).setMaxWidth(width + 24);
}
private void enableString(boolean enable) {
stringTextField.setEnabled(enable);
stringEditButton.setEnabled(enable);
}
private void enableStructured(boolean enable) {
structuredPanel.setEnabled(enable);
workLabel.setEnabled(enable);
workTextField.setEnabled(enable);
workButton.setEnabled(enable);
execLabel.setEnabled(enable);
execTextField.setEnabled(enable);
execButton.setEnabled(enable);
argTable.setEnabled(enable);
addButton.setEnabled(enable);
editButton.setEnabled(enable);
removeButton.setEnabled(enable);
}
protected void addArgTableRow() {
argTableModel.addRow(new Object[] { "", Boolean.FALSE });
}
protected boolean isEditArgTableRowSupported() {
return false;
}
protected void editArgTableRow() {
}
protected void removeArgTableRow() {
int[] rows = argTable.getSelectedRows();
Arrays.sort(rows);
for (int i = rows.length - 1; i >= 0; i--) {
argTableModel.removeRow(rows[i]);
}
}
private void attachFocusLostListener() {
FocusListener fl = new FocusAdapter() {
public void focusLost(FocusEvent fe) {
fieldsFocusLost();
}
};
stringTextField.addFocusListener(fl);
execTextField.addFocusListener(fl);
workTextField.addFocusListener(fl);
argTable.addFocusListener(fl);
stringRadioButton.addFocusListener(fl);
structuredRadioButton.addFocusListener(fl);
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton addButton;
private javax.swing.JTable argTable;
private javax.swing.JPanel buttonsPanel;
private javax.swing.JButton editButton;
private javax.swing.JButton execButton;
private javax.swing.ButtonGroup execButtonGroup;
private javax.swing.JLabel execLabel;
private javax.swing.JTextField execTextField;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton removeButton;
private javax.swing.JButton stringEditButton;
private javax.swing.JRadioButton stringRadioButton;
private javax.swing.JTextField stringTextField;
private javax.swing.JPanel structuredPanel;
private javax.swing.JRadioButton structuredRadioButton;
private javax.swing.JButton workButton;
private javax.swing.JLabel workLabel;
private javax.swing.JTextField workTextField;
// End of variables declaration//GEN-END:variables
protected javax.swing.JTable getArgTable() {
return argTable;
}
/** This method is called when some field loose focus */
protected void fieldsFocusLost() {
}
public String getExecString() {
execString = stringTextField.getText();
return execString;
}
public void setExecString(String execString) {
this.execString = execString;
if (execString != null) {
stringTextField.setText(execString);
stringRadioButton.setSelected(true);
enableString(true);
enableStructured(false);
}
}
public void setExecStructured(StructuredExec execStructured) {
this.execStructured = execStructured;
if (execStructured != null) {
setFromStructured();
structuredRadioButton.setSelected(true);
enableString(false);
enableStructured(true);
}
}
private void setFromStructured() {
java.io.File wf = execStructured.getWorking();
if (wf == null) {
workTextField.setText("");
} else {
workTextField.setText(wf.getPath());
}
execTextField.setText(execStructured.getExecutable());
Argument[] args = execStructured.getArguments();
for (int i = argTableModel.getRowCount() - 1; i >= 0; i--) {
argTableModel.removeRow(i);
}
for (int i = 0; i < args.length; i++) {
argTableModel.addRow(new Object[] { args[i].getArgument(),
args[i].isLine() ?
Boolean.TRUE :
Boolean.FALSE });
}
}
public StructuredExec getExecStructured() {
int n = argTableModel.getRowCount();
StructuredExec.Argument[] args = new StructuredExec.Argument[n];
for (int i = 0; i < n; i++) {
String arg = (String) argTableModel.getValueAt(i, 0);
boolean line = ((Boolean) argTableModel.getValueAt(i, 1)).booleanValue();
args[i] = new StructuredExec.Argument(arg, line);
}
return new StructuredExec(new java.io.File(workTextField.getText()), execTextField.getText(), args);
}
public boolean isStringExecSelected() {
return stringRadioButton.isSelected();
}
public Object getPropertyValue() throws IllegalStateException {
if (isStringExecSelected()) {
if (cmd != null) {
cmd.setProperty(VcsCommand.PROPERTY_EXEC, getExecString());
}
return null;
} else {
return getExecStructured();
}
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.