// Copyright 2004-2014 Jim Voris
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package com.qumasoft.guitools.admin;
import com.qumasoft.guitools.AbstractQVCSCommandDialog;
import com.qumasoft.qvcslib.AbstractProjectProperties;
/**
* Maintain project properties dialog.
*
* @author Jim Voris
*/
public class MaintainProjectPropertiesDialog extends AbstractQVCSCommandDialog {
private static final long serialVersionUID = -1121182472592102734L;
private boolean isOKFlag = false;
private boolean createReferenceCopyOnServerFlag = false;
private boolean createOrDeleteCurrentReferenceFilesFlag = false;
private boolean ignoreCaseFlag = false;
private boolean defineAlternateReferenceLocationFlag = false;
private String alternateReferenceLocation = null;
private String projectName = null;
private AbstractProjectProperties projectProperties = null;
/**
* Creates new form MaintainProjectPropertiesDialog.
* @param parent the parent frame.
* @param modal should this be modal.
* @param argProjectProperties the project properties.
* @param argProjectName the project name.
*/
public MaintainProjectPropertiesDialog(java.awt.Frame parent, boolean modal, String argProjectName, AbstractProjectProperties argProjectProperties) {
super(parent, modal);
this.projectName = argProjectName;
this.projectProperties = argProjectProperties;
initComponents();
populateComponents();
center();
}
/**
* 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">//GEN-BEGIN:initComponents
private void initComponents() {
createReferenceCopiesCheckBox = new javax.swing.JCheckBox();
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
projectNameLabel = new javax.swing.JLabel();
projectNameTextField = new javax.swing.JTextField();
createReferenceFilesCheckBox = new javax.swing.JCheckBox();
deleteReferenceCopiesCheckBox = new javax.swing.JCheckBox();
ignoreCaseCheckBox = new javax.swing.JCheckBox();
defineAlternateReferenceLocationCheckBox = new javax.swing.JCheckBox();
alternateReferenceLocationTextField = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Maintain Project Properties");
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
createReferenceCopiesCheckBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
createReferenceCopiesCheckBox.setText("Create reference copies on server");
createReferenceCopiesCheckBox.setToolTipText("Enable this check box if you want reference copies of the project workfiles to be created on the server.");
createReferenceCopiesCheckBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
createReferenceCopiesCheckBoxActionPerformed(evt);
}
});
okButton.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
okButton.setText(" OK ");
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
cancelButton.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
cancelButton.setText("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
projectNameLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
projectNameLabel.setText("Project Name:");
projectNameTextField.setEditable(false);
projectNameTextField.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
projectNameTextField.setToolTipText("This is the project's name");
createReferenceFilesCheckBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
createReferenceFilesCheckBox.setText("Create reference files on server now.");
createReferenceFilesCheckBox.setToolTipText("Enable this check box if you want to create reference copies of the project workfiles on the server right now.");
deleteReferenceCopiesCheckBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
deleteReferenceCopiesCheckBox.setText("Delete existing reference files on server now.");
deleteReferenceCopiesCheckBox.setToolTipText("Enable this check box if you want to delete any existing reference copies of the project workfiles located on the server right now.");
ignoreCaseCheckBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
ignoreCaseCheckBox.setText("Ignore case in filenames");
defineAlternateReferenceLocationCheckBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
defineAlternateReferenceLocationCheckBox.setText("Define alternate reference file location");
defineAlternateReferenceLocationCheckBox.setToolTipText("Enable this checkbox if you want to define an alternate (non-default) location for this project's reference files.");
defineAlternateReferenceLocationCheckBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
defineAlternateReferenceLocationCheckBoxActionPerformed(evt);
}
});
alternateReferenceLocationTextField.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
alternateReferenceLocationTextField.setToolTipText("Enter the full path of the root directory (on the server) to be used for this project's reference files.");
alternateReferenceLocationTextField.setEnabled(false);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(12, 12, 12)
.add(projectNameLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 150, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(layout.createSequentialGroup()
.add(10, 10, 10)
.add(projectNameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 310, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(layout.createSequentialGroup()
.add(20, 20, 20)
.add(createReferenceCopiesCheckBox))
.add(layout.createSequentialGroup()
.add(20, 20, 20)
.add(createReferenceFilesCheckBox))
.add(layout.createSequentialGroup()
.add(20, 20, 20)
.add(deleteReferenceCopiesCheckBox))
.add(layout.createSequentialGroup()
.add(20, 20, 20)
.add(defineAlternateReferenceLocationCheckBox))
.add(layout.createSequentialGroup()
.add(20, 20, 20)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(110, 110, 110)
.add(cancelButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(ignoreCaseCheckBox)
.add(alternateReferenceLocationTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 300, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
.add(28, 28, 28))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(12, 12, 12)
.add(projectNameLabel)
.add(4, 4, 4)
.add(projectNameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(4, 4, 4)
.add(createReferenceCopiesCheckBox)
.add(7, 7, 7)
.add(createReferenceFilesCheckBox)
.add(7, 7, 7)
.add(deleteReferenceCopiesCheckBox)
.add(7, 7, 7)
.add(defineAlternateReferenceLocationCheckBox)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(alternateReferenceLocationTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(5, 5, 5)
.add(ignoreCaseCheckBox)
.add(7, 7, 7)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(okButton)
.add(cancelButton))
.addContainerGap(24, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void defineAlternateReferenceLocationCheckBoxActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_defineAlternateReferenceLocationCheckBoxActionPerformed
{//GEN-HEADEREND:event_defineAlternateReferenceLocationCheckBoxActionPerformed
if (defineAlternateReferenceLocationCheckBox.isSelected()) {
alternateReferenceLocationTextField.setEnabled(true);
} else {
alternateReferenceLocationTextField.setEnabled(false);
}
}//GEN-LAST:event_defineAlternateReferenceLocationCheckBoxActionPerformed
private void createReferenceCopiesCheckBoxActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_createReferenceCopiesCheckBoxActionPerformed
{//GEN-HEADEREND:event_createReferenceCopiesCheckBoxActionPerformed
// Figure out if they enabled the create reference copy flag.
Object createReferenceCopyFlag = createReferenceCopiesCheckBox.getSelectedObjects();
if (createReferenceCopyFlag != null) {
createReferenceFilesCheckBox.setEnabled(true);
deleteReferenceCopiesCheckBox.setEnabled(false);
deleteReferenceCopiesCheckBox.setSelected(false);
defineAlternateReferenceLocationCheckBox.setEnabled(true);
alternateReferenceLocationTextField.setEnabled(true);
} else {
createReferenceFilesCheckBox.setEnabled(false);
createReferenceFilesCheckBox.setSelected(false);
deleteReferenceCopiesCheckBox.setEnabled(true);
defineAlternateReferenceLocationCheckBox.setEnabled(false);
alternateReferenceLocationTextField.setEnabled(false);
}
}//GEN-LAST:event_createReferenceCopiesCheckBoxActionPerformed
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_cancelButtonActionPerformed
{//GEN-HEADEREND:event_cancelButtonActionPerformed
isOKFlag = false;
closeDialog(null);
}//GEN-LAST:event_cancelButtonActionPerformed
private void okButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_okButtonActionPerformed
{//GEN-HEADEREND:event_okButtonActionPerformed
isOKFlag = true;
// Figure out if they enabled the create reference copy flag.
Object createReferenceCopyFlag = createReferenceCopiesCheckBox.getSelectedObjects();
if (createReferenceCopyFlag != null) {
createReferenceCopyOnServerFlag = true;
}
Object createReferenceFilesFlag = createReferenceFilesCheckBox.getSelectedObjects();
Object deleteReferenceFilesFlag = deleteReferenceCopiesCheckBox.getSelectedObjects();
if ((createReferenceFilesFlag != null) || (deleteReferenceFilesFlag != null)) {
createOrDeleteCurrentReferenceFilesFlag = true;
}
Object ignoreCaseFlagFromDialog = ignoreCaseCheckBox.getSelectedObjects();
if (ignoreCaseFlagFromDialog != null) {
this.ignoreCaseFlag = true;
}
defineAlternateReferenceLocationFlag = defineAlternateReferenceLocationCheckBox.isSelected();
if (defineAlternateReferenceLocationFlag) {
alternateReferenceLocation = alternateReferenceLocationTextField.getText();
} else {
alternateReferenceLocation = null;
}
closeDialog(null);
}//GEN-LAST:event_okButtonActionPerformed
private void closeDialog(java.awt.event.WindowEvent evt)//GEN-FIRST:event_closeDialog
{//GEN-HEADEREND:event_closeDialog
setVisible(false);
dispose();
}//GEN-LAST:event_closeDialog
@Override
public void dismissDialog() {
cancelButtonActionPerformed(null);
}
private void populateComponents() {
projectNameTextField.setText(projectName);
// Figure out whether to enable the reference copy check box...
createReferenceCopiesCheckBox.setSelected(projectProperties.getCreateReferenceCopyFlag());
if (projectProperties.getCreateReferenceCopyFlag()) {
createReferenceFilesCheckBox.setEnabled(true);
defineAlternateReferenceLocationCheckBox.setEnabled(true);
deleteReferenceCopiesCheckBox.setEnabled(false);
} else {
createReferenceFilesCheckBox.setEnabled(false);
defineAlternateReferenceLocationCheckBox.setEnabled(false);
deleteReferenceCopiesCheckBox.setEnabled(true);
}
ignoreCaseCheckBox.setSelected(projectProperties.getIgnoreCaseFlag());
defineAlternateReferenceLocationCheckBox.setSelected(projectProperties.getDefineAlternateReferenceLocationFlag());
if (projectProperties.getDefineAlternateReferenceLocationFlag()) {
alternateReferenceLocationTextField.setText(projectProperties.getReferenceLocation());
if (projectProperties.getCreateReferenceCopyFlag()) {
alternateReferenceLocationTextField.setEnabled(true);
}
} else {
alternateReferenceLocationTextField.setEnabled(false);
}
}
boolean getIsOK() {
return isOKFlag;
}
boolean getCreateReferenceCopiesFlag() {
return createReferenceCopyOnServerFlag;
}
boolean getCreateOrDeleteCurrentReferenceFilesFlag() {
return createOrDeleteCurrentReferenceFilesFlag;
}
boolean getIgnoreCaseFlag() {
return ignoreCaseFlag;
}
boolean getDefineAlternateReferenceLocationFlag() {
return defineAlternateReferenceLocationFlag;
}
String getAlternateReferenceLocation() {
return alternateReferenceLocation;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTextField alternateReferenceLocationTextField;
private javax.swing.JButton cancelButton;
private javax.swing.JCheckBox createReferenceCopiesCheckBox;
private javax.swing.JCheckBox createReferenceFilesCheckBox;
private javax.swing.JCheckBox defineAlternateReferenceLocationCheckBox;
private javax.swing.JCheckBox deleteReferenceCopiesCheckBox;
private javax.swing.JCheckBox ignoreCaseCheckBox;
private javax.swing.JButton okButton;
private javax.swing.JLabel projectNameLabel;
private javax.swing.JTextField projectNameTextField;
// End of variables declaration//GEN-END:variables
}