/* 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.qwin.dialog; import com.qumasoft.guitools.qwin.operation.OperationLockArchive; import com.qumasoft.qvcslib.commandargs.LockRevisionCommandArgs; import com.qumasoft.qvcslib.MergedInfoInterface; import java.util.List; /** * Dialog to allow the user to lock a specific file revision. * * @author Jim Voris */ public class LockRevisionDialog extends AbstractQWinCommandDialog { private static final long serialVersionUID = 342717507052765923L; private final List selectedFiles; private final OperationLockArchive operationLock; /** * Create a lock revision dialog. * @param parent the parent frame. * @param files the list of selected files. * @param operation the lock operation that will do the work. */ public LockRevisionDialog(java.awt.Frame parent, List files, OperationLockArchive operation) { super(parent, true); operationLock = operation; selectedFiles = files; initComponents(); populateComponents(); setFont(); 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() { revisionToLockLabel = new javax.swing.JLabel(); revisionToLockComboBox = new javax.swing.JComboBox(); byLabelCheckBox = new javax.swing.JCheckBox(); byLabelComboBox = new javax.swing.JComboBox(); okButton = new javax.swing.JButton(); cancelButton = new javax.swing.JButton(); commentLabel = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); commentTextPane = new javax.swing.JTextPane(); setTitle("Lock Revision"); setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N setResizable(false); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); revisionToLockLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N revisionToLockLabel.setText("Revision to lock:"); revisionToLockLabel.setToolTipText(""); revisionToLockComboBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N revisionToLockComboBox.setMaximumRowCount(10); revisionToLockComboBox.setToolTipText("Select the revision to get"); byLabelCheckBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N byLabelCheckBox.setMnemonic('l'); byLabelCheckBox.setText("Lock by label"); byLabelCheckBox.setToolTipText("Enable to retrieve by label instead of by revision"); byLabelCheckBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { byLabelCheckBoxActionPerformed(evt); } }); byLabelComboBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N byLabelComboBox.setMaximumRowCount(10); byLabelComboBox.setToolTipText(""); byLabelComboBox.setEnabled(false); okButton.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N okButton.setText(" OK "); okButton.setMaximumSize(new java.awt.Dimension(80, 25)); okButton.setMinimumSize(new java.awt.Dimension(80, 25)); okButton.setPreferredSize(new java.awt.Dimension(80, 25)); 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.setMaximumSize(new java.awt.Dimension(80, 25)); cancelButton.setMinimumSize(new java.awt.Dimension(80, 25)); cancelButton.setPreferredSize(new java.awt.Dimension(80, 25)); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); commentLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N commentLabel.setText("Comment:"); jScrollPane1.setAutoscrolls(true); jScrollPane1.setDoubleBuffered(true); commentTextPane.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N jScrollPane1.setViewportView(commentTextPane); 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(12, 12, 12) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(revisionToLockComboBox, 0, 350, Short.MAX_VALUE) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 350, Short.MAX_VALUE) .add(byLabelCheckBox, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 350, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(cancelButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(byLabelComboBox, 0, 350, Short.MAX_VALUE) .add(commentLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(revisionToLockLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(16, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(12, 12, 12) .add(revisionToLockLabel) .add(4, 4, 4) .add(revisionToLockComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(3, 3, 3) .add(commentLabel) .add(8, 8, 8) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 70, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(18, 18, 18) .add(byLabelCheckBox) .add(7, 7, 7) .add(byLabelComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(18, 18, 18) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(cancelButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addContainerGap(30, Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void byLabelCheckBoxActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_byLabelCheckBoxActionPerformed {//GEN-HEADEREND:event_byLabelCheckBoxActionPerformed Object byLabel = byLabelCheckBox.getSelectedObjects(); if (byLabel != null) { byLabelComboBox.setEnabled(true); revisionToLockComboBox.setEnabled(false); byLabelComboBox.requestFocusInWindow(); } else { byLabelComboBox.setEnabled(false); revisionToLockComboBox.setEnabled(true); } }//GEN-LAST:event_byLabelCheckBoxActionPerformed private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_cancelButtonActionPerformed {//GEN-HEADEREND:event_cancelButtonActionPerformed closeDialog(null); }//GEN-LAST:event_cancelButtonActionPerformed private void okButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_okButtonActionPerformed {//GEN-HEADEREND:event_okButtonActionPerformed // Add your handling code here: closeDialog(null); LockRevisionCommandArgs commandArgs = new LockRevisionCommandArgs(); commandArgs.setRevisionString(getRevisionString()); commandArgs.setLabel(getLabelString()); operationLock.setCheckOutComment(getCheckOutComment()); operationLock.completeOperation(selectedFiles, commandArgs); }//GEN-LAST:event_okButtonActionPerformed /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog setVisible(false); dispose(); }//GEN-LAST:event_closeDialog @Override public void dismissDialog() { cancelButtonActionPerformed(null); } private void populateComponents() { if (selectedFiles.size() == 1) { revisionToLockComboBox.setModel(new RevisionsComboModel((MergedInfoInterface) selectedFiles.get(0))); byLabelComboBox.setModel(new LabelsComboModel((MergedInfoInterface) selectedFiles.get(0))); } else if (selectedFiles.size() > 1) { revisionToLockComboBox.setModel(new RevisionsComboModel(null)); byLabelComboBox.setModel(new LabelsComboModel()); } commentTextPane.requestFocusInWindow(); } private String getRevisionString() { String revisionString = null; Object byLabel = byLabelCheckBox.getSelectedObjects(); if (byLabel == null) { revisionString = (String) revisionToLockComboBox.getModel().getSelectedItem(); } return revisionString; } private String getLabelString() { String labelString = null; Object byLabel = byLabelCheckBox.getSelectedObjects(); if (byLabel != null) { labelString = (String) byLabelComboBox.getModel().getSelectedItem(); } return labelString; } String getCheckOutComment() { return commentTextPane.getText(); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox byLabelCheckBox; private javax.swing.JComboBox byLabelComboBox; private javax.swing.JButton cancelButton; private javax.swing.JLabel commentLabel; private javax.swing.JTextPane commentTextPane; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JButton okButton; private javax.swing.JComboBox revisionToLockComboBox; private javax.swing.JLabel revisionToLockLabel; // End of variables declaration//GEN-END:variables }