|
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-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.cvsclient.commands.add; import javax.swing.JButton; import org.netbeans.modules.cvsclient.IndependantClient; import org.netbeans.modules.cvsclient.FsCommandFactory; import org.netbeans.lib.cvsclient.command.FileInfoContainer; import java.util.ArrayList; import java.util.LinkedList; import org.netbeans.lib.cvsclient.command.add.AddInformation; import org.netbeans.modules.cvsclient.commands.*; import org.openide.*; import java.lang.reflect.Method; import javax.accessibility.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.table.TableColumn; import javax.swing.table.JTableHeader; import org.openide.util.NbBundle; import org.netbeans.modules.javacvs.commands.CvsAdd; import org.netbeans.modules.javacvs.commands.CvsCommit; import java.awt.Dialog; import org.netbeans.modules.javacvs.commands.ClientProvider; import org.netbeans.modules.vcscore.util.table.*; import org.openide.DialogDisplayer; public class AddInfoPanel extends DefaultInfoPanel { ArrayList resultList; ArrayList listeners; CvsAdd command; TableInfoModel model; private boolean stopped; private ActionListener stopActionListener; /** Creates new form UpdateInfoPanel */ public AddInfoPanel(CvsAdd comm) { initComponents (); initAccessibility(); btnCommit.setMnemonic (NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.commitButton.mnemonic").charAt (0)); //NOI18N btnViewLog.setMnemonic (NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.logButton.mnemonic").charAt (0)); //NOI18N btnStop.setMnemonic (NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.stopButton.mnemonic").charAt (0)); //NOI18N command = comm; setPreferredSize(new java.awt.Dimension(450, 300)); setMinimumSize(new java.awt.Dimension(450, 200)); stopped = false; model = new GrowingTableInfoModel(); Class classa = AddInformation.class; String column1 = NbBundle.getBundle(AddInfoPanel.class).getString("AddTableInfoModel.type"); //NOI18N String column2 = NbBundle.getBundle(AddInfoPanel.class).getString("AddTableInfoModel.fileName"); //NOI18N String column3 = NbBundle.getBundle(AddInfoPanel.class).getString("AddTableInfoModel.path"); //NOI18N try { Method method1 = classa.getMethod("getType", null); //NOI18N Method method2 = classa.getMethod("getFile", null); //NOI18N model.setColumnDefinition(0, column1, method1, true, new AddTypeComparator()); ClientProvider prov = command.getClientProvider(); model.setColumnDefinition(1, column2, method2, true, new FileComparator()); model.setColumnDefinition(2, column3, method2, true, new PathComparator(prov.getLocalPath())); } catch (NoSuchMethodException exc) { Thread.dumpStack(); } catch (SecurityException exc2) { Thread.dumpStack(); } } /** 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 FormEditor. */ private void initComponents() {//GEN-BEGIN:initComponents java.awt.GridBagConstraints gridBagConstraints; pnlButtons = new javax.swing.JPanel(); btnViewLog = new javax.swing.JButton(); btnStop = new javax.swing.JButton(); btnCommit = new javax.swing.JButton(); spCentral = new javax.swing.JScrollPane(); tblAdded = new javax.swing.JTable(); setLayout(new java.awt.GridBagLayout()); pnlButtons.setLayout(new java.awt.GridBagLayout()); btnViewLog.setText(org.openide.util.NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.logButton")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(17, 5, 11, 0); pnlButtons.add(btnViewLog, gridBagConstraints); btnStop.setText(org.openide.util.NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.stopButton")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(17, 5, 11, 11); pnlButtons.add(btnStop, gridBagConstraints); btnCommit.setText(org.openide.util.NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.commitButton")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.weightx = 0.9; gridBagConstraints.insets = new java.awt.Insets(17, 12, 11, 0); pnlButtons.add(btnCommit, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; add(pnlButtons, gridBagConstraints); spCentral.setPreferredSize(new java.awt.Dimension(250, 60)); tblAdded.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } )); spCentral.setViewportView(tblAdded); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 11); add(spCentral, gridBagConstraints); }//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCommit; private javax.swing.JButton btnViewLog; private javax.swing.JScrollPane spCentral; private javax.swing.JButton btnStop; private javax.swing.JTable tblAdded; private javax.swing.JPanel pnlButtons; // End of variables declaration//GEN-END:variables private static final java.util.ResourceBundle bundle = NbBundle.getBundle(AddInfoPanel.class); // NOI18N private void initAccessibility() { AccessibleContext context = this.getAccessibleContext(); context.setAccessibleDescription(bundle.getString("ACSD_AddInfoPanel")); context = btnCommit.getAccessibleContext(); context.setAccessibleDescription(bundle.getString("ACSD_AddInfoPanel.btnCommit")); context = btnViewLog.getAccessibleContext(); context.setAccessibleDescription(bundle.getString("ACSD_AddInfoPanel.btnViewLog")); context = btnStop.getAccessibleContext(); context.setAccessibleDescription(bundle.getString("ACSD_AddInfoPanel.btnStop")); context = tblAdded.getAccessibleContext(); context.setAccessibleDescription(bundle.getString("ACSD_AddInfoPanel.tblAdded")); context.setAccessibleName(bundle.getString("ACSN_AddInfoPanel.tblAdded")); } /** this method should be used with Choosers to display the dialog.. * then later the displayOutputData will just present the datat gotten from server * Reason: to have something displayer right away.. * This method is to be called when creating the command and Chooser. */ public void displayFrameWork() { tblAdded.setModel(model); TableColumn col = tblAdded.getColumnModel().getColumn(0); col.setPreferredWidth(80); // HACK to set the width of column at desired size // String title = NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.dialogTitle") + " " + command.getName(); // setName(title); setName(command.getName()); stopActionListener = new StopActionListener(); btnStop.addActionListener(stopActionListener); btnViewLog.setEnabled(false); btnCommit.setEnabled(false); javax.swing.SwingUtilities.invokeLater(new Runnable () { public void run () { open(); } }); /* options[0] = NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.stopButton"); dd.setOptions(options); Object[] empty = new Object[1]; dd.setClosingOptions(empty); // none are closing dd.setButtonListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { shutDownCommand(); } }); javax.swing.SwingUtilities.invokeLater(new Runnable () { public void run () { Dialog dial = TopManager.getDefault().createDialog(dd); dial.setModal(false); dial.show(); } }); */ } protected void shutDownCommand() { // we can do that because it's running from other thread then command and won't kill itself if (btnStop != null) { btnStop.setText(NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.stopping")); //NOI18N btnStop.setEnabled(false); } command.hardCommandStop(); stopped = true; // displayOutputData(); } /** Does the actual display - docking into the javacvs Mode, * displaying as single Dialog.. whatever. */ public void displayOutputData() { /* if (!isOpened()) { return; } */ // int size; boolean anyScheduled = anyScheduledFiles(); // forces the NbPresenter to keep the user's resizing. if (stopped || !anyScheduled || isRunningFromRuntime()) { } else { btnCommit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { performCommit(); } }); btnCommit.setEnabled(true); } btnStop.setText(NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.closeButton")); //NOI18N btnStop.setMnemonic(NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.closeButton.mnemonic").charAt (0)); //NOI18N btnStop.setEnabled(true); btnStop.removeActionListener(stopActionListener); btnStop.addActionListener(new CloseActionListener()); btnViewLog.addActionListener(new ViewLogActionListener(btnViewLog)); btnViewLog.setEnabled(true); /* Object[] options = new Object[size]; final String log = NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.logButton"); JButton btnClose = new JButton(NbBundle.getBundle(AddInfoPanel.class) .getString("AddInfoPanel.closeButton")); btnClose.setDefaultCapable(true); final String commit = NbBundle.getBundle(AddInfoPanel.class).getString("AddInfoPanel.commitButton"); options[size - 1] = btnClose; options[size - 2] = log; Object[] closing = new Object[size - 1]; if (!stopped && anyScheduled && !isRunningFromRuntime()) { options[0] = commit; closing[0] = options[0]; } closing[size - 2] = options[size - 1]; dd.setValue(btnClose); // HACK dd.setOptions(options); dd.setClosingOptions(closing); // all are closing dd.setButtonListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { if (evt.getActionCommand().equals(commit)) { performCommit(); } if (evt.getActionCommand().equals(log)) { doShowCommandLog(); } } }); */ JTableHeader head = tblAdded.getTableHeader(); head.setUpdateTableInRealTime(true); ColumnSortListener listen = new ColumnSortListener(tblAdded); head.addMouseListener(listen); } private boolean anyScheduledFiles() { int rowCount = model.getRowCount(); for (int index = 0; index < rowCount; index++) { AddInformation addInfo = (AddInformation)model.getElementAt(index); if (!addInfo.isDirectory()) { return true; } } return false; } private void performCommit() { // if (!command.getClientProvider() instanceof IndependantClient) return; IndependantClient provider = (IndependantClient)command.getClientProvider(); if (provider.isOffLine()) return; int rowCount = model.getRowCount(); LinkedList fileList = new LinkedList(); for (int index = 0; index < rowCount; index++) { AddInformation addInfo = (AddInformation)model.getElementAt(index); if (!addInfo.isDirectory()) { fileList.add(addInfo.getFile()); } } if (fileList.size() > 0) { File[] fileArray = new File[fileList.size()]; fileArray = (File[])fileList.toArray(fileArray); FsCommandFactory fact = (FsCommandFactory)FsCommandFactory.getInstance(); CvsCommit myStat = (CvsCommit)fact.createCommand( CvsCommit.class, true, fileArray, provider); fact.addIndependantRuntime(myStat); fact.showCustomizerAndRun(myStat, false, false); } else { //TODO.. message?? String noScheduled = NbBundle.getBundle(AddInfoPanel.class) .getString("AddInfoPanel.noScheduledAvailable"); //NOI18N DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(noScheduled)); } } /** * this one is called when the command's execution fails for any reason. */ public void showExecutionFailed(Exception exception) { // if (isOpened()) { displayOutputData(); // } } /** * This is the last method to be called in the displayer. * Is called when the execution finishes. Any filan touchups can be made here. */ public void showFinishedCommand() { displayOutputData(); } /** * This method is the first one that is called during execution. * Here any initial setup of the displayer can be made. */ public void showStartCommand() { displayFrameWork(); } /** * When the library command's builder generates a FileInfoContainer object, the * Displayer is notified. * @param info - the generated information object */ public void showFileInfoGenerated(FileInfoContainer info) { if (info instanceof AddInformation) { model.addElement(info); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { tblAdded.changeSelection(model.getRowCount(), 0, false, false); } }); } } } |
... 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.