/* 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.QWinFrame; import com.qumasoft.guitools.qwin.operation.OperationVisualCompare; import com.qumasoft.qvcslib.MergedInfoInterface; import java.io.File; /** * Overwrite workfile dialog. * @author Jim Voris */ public class OverwriteWorkfileDialog extends AbstractQWinCommandDialog { private static final long serialVersionUID = 6344928847017713627L; private boolean overwriteFlag = false; private boolean dontAskAgainFlag = false; private final QWinFrame parentFrame; private final MergedInfoInterface mergedInfo; private final Object synchronizationObject; /** * Creates new form OverwriteWorkfileDialog. * @param parent the parent frame. * @param info the file the we're working with. * @param syncObject a synchronization object. */ public OverwriteWorkfileDialog(java.awt.Frame parent, MergedInfoInterface info, final Object syncObject) { super(parent, false); parentFrame = (QWinFrame) parent; mergedInfo = info; synchronizationObject = syncObject; initComponents(); populateComponents(info); getRootPane().setDefaultButton(noButton); 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() { overwriteQuestionLabel = new javax.swing.JLabel(); workfileNameTextArea = new javax.swing.JTextArea(); dontAskAgainCheckBox = new javax.swing.JCheckBox(); okButton = new javax.swing.JButton(); noButton = new javax.swing.JButton(); compareButton = new javax.swing.JButton(); setTitle("Overwrite Workfile?"); setResizable(false); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); overwriteQuestionLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N overwriteQuestionLabel.setText("Overwrite and lose any changes to:"); workfileNameTextArea.setEditable(false); workfileNameTextArea.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N workfileNameTextArea.setText("test"); workfileNameTextArea.setBorder(javax.swing.BorderFactory.createEtchedBorder()); dontAskAgainCheckBox.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N dontAskAgainCheckBox.setMnemonic('D'); dontAskAgainCheckBox.setText("Don't ask again"); okButton.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N okButton.setMnemonic('O'); okButton.setText("Overwrite"); okButton.setActionCommand("Yes"); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { m_OverwriteButtonActionPerformed(evt); } }); noButton.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N noButton.setMnemonic('N'); noButton.setText("No Overwrite"); noButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { m_NoOverwriteButtonActionPerformed(evt); } }); compareButton.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N compareButton.setMnemonic('C'); compareButton.setText("Compare"); compareButton.setToolTipText("Compare the workfile to the tip revision."); compareButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { compareButtonActionPerformed(evt); } }); 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) .add(overwriteQuestionLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 230, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(dontAskAgainCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 440, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() .add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 120, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(noButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 138, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(compareButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 120, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(org.jdesktop.layout.GroupLayout.LEADING, workfileNameTextArea, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 590, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(16, 16, 16)) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(20, 20, 20) .add(overwriteQuestionLabel) .add(6, 6, 6) .add(workfileNameTextArea, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(3, 3, 3) .add(dontAskAgainCheckBox) .add(7, 7, 7) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(okButton) .add(compareButton) .add(noButton)) .add(13, 13, 13)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void compareButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_compareButtonActionPerformed {//GEN-HEADEREND:event_compareButtonActionPerformed OperationVisualCompare visualCompareOperation = new OperationVisualCompare(null, parentFrame.getServerName(), parentFrame.getProjectName(), parentFrame.getViewName(), parentFrame.getUserLocationProperties()); visualCompareOperation.compare(mergedInfo); }//GEN-LAST:event_compareButtonActionPerformed private void closeDialog(java.awt.event.WindowEvent evt)//GEN-FIRST:event_closeDialog {//GEN-HEADEREND:event_closeDialog setVisible(false); dispose(); synchronized (synchronizationObject) { synchronizationObject.notifyAll(); } }//GEN-LAST:event_closeDialog private void m_NoOverwriteButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_m_NoOverwriteButtonActionPerformed {//GEN-HEADEREND:event_m_NoOverwriteButtonActionPerformed dontAskAgainFlag = readDontAskAgain(); closeDialog(null); }//GEN-LAST:event_m_NoOverwriteButtonActionPerformed private void m_OverwriteButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_m_OverwriteButtonActionPerformed {//GEN-HEADEREND:event_m_OverwriteButtonActionPerformed overwriteFlag = true; dontAskAgainFlag = readDontAskAgain(); closeDialog(null); }//GEN-LAST:event_m_OverwriteButtonActionPerformed @Override public void dismissDialog() { overwriteFlag = false; dontAskAgainFlag = false; closeDialog(null); } private void populateComponents(MergedInfoInterface mergedInfo) { String text; String appendedPath = mergedInfo.getArchiveDirManager().getAppendedPath(); if (appendedPath.length() == 0) { text = mergedInfo.getShortWorkfileName(); } else { text = mergedInfo.getArchiveDirManager().getAppendedPath() + File.separator + mergedInfo.getShortWorkfileName(); } workfileNameTextArea.setText(text); } private boolean readDontAskAgain() { boolean retVal = false; Object dontAsk = dontAskAgainCheckBox.getSelectedObjects(); if (dontAsk != null) { retVal = true; } return retVal; } /** * Get the don't ask again flag. * @return the don't ask again flag. */ public boolean getDontAskAgainFlag() { return dontAskAgainFlag; } /** * Get the overwrite flag. * @return the overwrite flag. */ public boolean getOverWriteFlag() { return overwriteFlag; } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton compareButton; private javax.swing.JCheckBox dontAskAgainCheckBox; private javax.swing.JButton noButton; private javax.swing.JButton okButton; private javax.swing.JLabel overwriteQuestionLabel; private javax.swing.JTextArea workfileNameTextArea; // End of variables declaration//GEN-END:variables }