|
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.log;
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.tree.DefaultMutableTreeNode;
import org.netbeans.lib.cvsclient.command.log.LogCommand;
import org.netbeans.lib.cvsclient.command.log.LogInformation;
import org.netbeans.modules.cvsclient.FsCommandFactory;
import org.openide.util.*;
import org.netbeans.modules.cvsclient.commands.*;
import org.netbeans.modules.javacvs.commands.FileSystemCommand;
import org.netbeans.modules.javacvs.commands.CvsLog;
import org.netbeans.lib.cvsclient.command.*;
/**
*
* @author mkleint
* @version
*/
public class LogTreeInfoPanel extends AbstractTreeInfoPanel
implements PersistentCommandDisplayer {
private LogInfoPanel logPanel;
private LogInformation clearLogInfo;
private CvsLog command;
private JTextField txFilter;
private JLabel lblFilter;
private JLabel lblTitle;
private String filterString = null;
private int totalCount = 0;
private int selectedCount = 0;
private javax.swing.JLabel lblCount;
/** Creates new form StatusTreeInfoPanel */
public LogTreeInfoPanel(File topDir, CvsLog comm) {
super(topDir);
command = comm;
initPanelComponents();
postInit();
// recreateModel();
}
private void initPanelComponents() {
JPanel panel = getButtonPanel();
lblTitle = new javax.swing.JLabel();
lblFilter = new javax.swing.JLabel();
txFilter = new javax.swing.JTextField();
lblCount = new javax.swing.JLabel();
panel.setLayout(new java.awt.GridBagLayout());
java.awt.GridBagConstraints gridBagConstraints1;
lblTitle.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/commands/log/Bundle").getString("LogTreeInfoPanel.lblTitle.text")); // NOI18N
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints1.weightx = 1.0;
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints1.insets = new java.awt.Insets (12, 12, 0, 11);
panel.add(lblTitle, gridBagConstraints1);
lblFilter.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/commands/log/Bundle").getString("LogTreeInfoPanel.filterLog")); // NOI18N
lblFilter.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/commands/log/Bundle").getString("LogTreeInfoPanel.filterLog.mnemonic").charAt(0)); // NOI18N
lblFilter.setLabelFor(txFilter);
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 1;
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints1.insets = new java.awt.Insets(5, 24, 11, 0);
panel.add(lblFilter, gridBagConstraints1);
//txFilter.setPreferredSize(new java.awt.Dimension(100, 20));
txFilter.setText(""); // NOI18N
txFilter.setMinimumSize(new java.awt.Dimension(100, 20));
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridx = 1;
gridBagConstraints1.gridy = 1;
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets(5, 12, 11, 11);
panel.add(txFilter, gridBagConstraints1);
lblCount.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/cvsclient/commands/log/Bundle").getString("LogTreeInfoPanel.lblCount")); // NOI18N
gridBagConstraints1 = new java.awt.GridBagConstraints();
gridBagConstraints1.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 2;
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints1.insets = new java.awt.Insets(5, 12, 2, 11);
panel.add(lblCount, gridBagConstraints1);
//---- ENDO OF COPIED STUFF --- ===================================================
// =========================================================================
txFilter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
filterLogMessages();
}
});
}
private void initClearInfo() {
clearLogInfo = new LogInformation();
clearLogInfo.setFile(new File("")); // NOI18N
clearLogInfo.setAccessList(""); // NOI18N
clearLogInfo.setBranch(""); // NOI18N
clearLogInfo.setDescription(""); // NOI18N
clearLogInfo.setHeadRevision(""); // NOI18N
clearLogInfo.setKeywordSubstitution(""); // NOI18N
clearLogInfo.setLocks(""); // NOI18N
clearLogInfo.setRepositoryFilename(""); // NOI18N
clearLogInfo.setSelectedRevisions(""); // NOI18N
clearLogInfo.setTotalRevisions(""); // NOI18N
}
protected void setPanel(Object infoData) {
LogInformation logData = (LogInformation)infoData;
logPanel.setData(logData);
}
protected JComponent initPanel() {
initClearInfo();
logPanel = new LogInfoPanel(command);
setClearPanel();
return logPanel;
}
protected void setClearPanel() {
logPanel.setData(clearLogInfo);
}
/** Does the actual display - docking into the javacvs Mode,
* displaying as single Dialog.. whatever.
*/
public void displayOutputData() {
String title = NbBundle.getMessage(LogTreeInfoPanel.class,
"CvsLog.dialogTitle", topDirectory.getName()); // NOI18N
FsCommandFactory.displayOutputPanel(title, this);
}
private void filterLogMessages() {
String filter = txFilter.getText();
if (filter.trim().equals("")) filterString = null; // NOI18N
else filterString = filter;
totalCount = 0;
selectedCount = 0;
recreateModel();
Integer selCount = new Integer(selectedCount);
Integer totCount = new Integer(totalCount);
String txt = NbBundle.getMessage(LogTreeInfoPanel.class, "LogTreeInfoPanel.lblCount", // NOI18N
selCount.toString(), totCount.toString());
lblCount.setText(txt);
}
/** defines which InfoContainer instances will be added to the tree
* By default adds all, can be overriden by subclasses to define filtering
*/
protected void addFileNode(FileInfoContainer info,DefaultMutableTreeNode parent) {
LogInformation logInfo = (LogInformation)info;
totalCount = totalCount + 1;
if (shouldAddLogInfo(logInfo)) {
DefaultMutableTreeNode child = new DefaultMutableTreeNode(info);
parent.add(child);
selectedCount = selectedCount + 1;
}
}
/** defines which InfoContainer instances will be added to the table
* By default adds all, can be overriden by subclasses to define filtering
*/
protected boolean addToList(FileInfoContainer info) {
LogInformation logInfo = (LogInformation)info;
return shouldAddLogInfo(logInfo);
}
private boolean shouldAddLogInfo(LogInformation info) {
if (filterString == null) return true;
List revList = info.getRevisionList();
Iterator it = revList.iterator();
while (it.hasNext()) {
LogInformation.Revision revis = (LogInformation.Revision)it.next();
if (revis.getMessage() != null && revis.getMessage().indexOf(filterString) >= 0) {
return true;
}
}
return false;
}
/** in this method the displayer should use the data returned by the command to
* produce it's own data structures/ fill in UI components
* @param resultList - the data from the command. It is assumed the Displayer
* knows what command the data comes from and most important in what format.
* (which FileInfoContainer class is used).
*/
public void setDataToDisplay(Collection resultList) {
totalCount = 0;
selectedCount = 0;
super.setDataToDisplay(resultList);
Integer selCount = new Integer(selectedCount);
Integer totCount = new Integer(totalCount);
String txt = NbBundle.getMessage(LogTreeInfoPanel.class, "LogTreeInfoPanel.lblCount", // NOI18N
selCount.toString(), totCount.toString());
lblCount.setText(txt);
}
public void setCommand(CvsLog comm) {
command = comm;
}
public JComponent getComponent() {
return this;
}
public Object getComparisonData() {
return topDirectory;
}
/**
* Persistent stuff...
*/
public boolean equalDisplayedData(File file, Class type, Object comparisonData) {
if (!getClass().equals(type)) return false;
if (topDirectory == null ||
!topDirectory.equals(file)) {
return false;
}
return true;
}
public File getFileDisplayed() {
return topDirectory;
}
public String getCommandSwitches() {
return command.getCVSArguments();
}
public FileSystemCommand getFileSystemCommand() {
return command;
}
}
|
| ... 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.