Author: sdeboy
Date: Mon Oct 25 05:00:03 2010
New Revision: 1026945
URL: http://svn.apache.org/viewvc?rev=1026945&view=rev
Log:
Replace 'search' in the UI with 'find'
Syncing addition & removal of entries in the refine focus & find combo boxes
Modified:
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html
logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/tutorial.html
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java?rev=1026945&r1=1026944&r2=1026945&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawStatusBar.java Mon Oct 25 05:00:03 2010
@@ -104,7 +104,7 @@ public class ChainsawStatusBar extends J
searchMatchLabel.setToolTipText("<# viewable events>:<# total events>");
searchMatchLabel.setMinimumSize(
new Dimension(
- searchMatchLabel.getFontMetrics(eventCountLabel.getFont()).stringWidth("Search matches: 999999999999") + 5,
+ searchMatchLabel.getFontMetrics(eventCountLabel.getFont()).stringWidth("Find matches: 999999999999") + 5,
(int) searchMatchLabel.getPreferredSize().getHeight()));
receivedConnectionlabel.setBorder(statusBarComponentBorder);
@@ -273,7 +273,7 @@ public class ChainsawStatusBar extends J
if (searchMatchCount == 0) {
searchMatchLabel.setText("");
} else {
- searchMatchLabel.setText("Search matches: " + searchMatchCount);
+ searchMatchLabel.setText("Find matches: " + searchMatchCount);
}
}
}
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java?rev=1026945&r1=1026944&r2=1026945&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java Mon Oct 25 05:00:03 2010
@@ -274,7 +274,7 @@ class ChainsawToolBarAndMenus implements
}
};
- action.putValue(Action.SHORT_DESCRIPTION, "Searches for the next marker from the current location");
+ action.putValue(Action.SHORT_DESCRIPTION, "Find the next marker from the current location");
action.putValue("enabled", Boolean.TRUE);
action.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_N));
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("F2"));
@@ -292,7 +292,7 @@ class ChainsawToolBarAndMenus implements
}
};
- action.putValue(Action.SHORT_DESCRIPTION, "Searches for the previous marker from the current location");
+ action.putValue(Action.SHORT_DESCRIPTION, "Find the previous marker from the current location");
action.putValue("enabled", Boolean.TRUE);
action.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_F2, InputEvent.SHIFT_MASK));
@@ -892,7 +892,7 @@ class ChainsawToolBarAndMenus implements
}
}
};
- action.putValue(Action.SHORT_DESCRIPTION, "Searches for the next colorized event from the current location");
+ action.putValue(Action.SHORT_DESCRIPTION, "Find the next colorized event from the current location");
action.putValue("enabled", Boolean.TRUE);
action.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_N));
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
@@ -911,7 +911,7 @@ class ChainsawToolBarAndMenus implements
}
}
};
- action.putValue(Action.SHORT_DESCRIPTION, "Searches for the next colorized event from the current location");
+ action.putValue(Action.SHORT_DESCRIPTION, "Find the next colorized event from the current location");
action.putValue("enabled", Boolean.TRUE);
action.putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_P));
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java?rev=1026945&r1=1026944&r2=1026945&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanel.java Mon Oct 25 05:00:03 2010
@@ -79,6 +79,7 @@ import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.ComboBoxEditor;
+import javax.swing.ComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
@@ -288,12 +289,13 @@ public class LogPanel extends DockablePa
String prototypeValue = "1231231231231231231231";
filterCombo = new AutoFilterComboBox();
+ findCombo = new AutoFilterComboBox();
+
filterCombo.setPrototypeDisplayValue(prototypeValue);
- buildCombo(filterCombo, true);
+ buildCombo(filterCombo, true, findCombo.model);
- findCombo = new AutoFilterComboBox();
findCombo.setPrototypeDisplayValue(prototypeValue);
- buildCombo(findCombo, false);
+ buildCombo(findCombo, false, filterCombo.model);
final Map columnNameKeywordMap = new HashMap();
columnNameKeywordMap.put(ChainsawConstants.CLASS_COL_NAME, LoggingEventFieldResolver.CLASS_FIELD);
@@ -1105,20 +1107,28 @@ public class LogPanel extends DockablePa
upperPanel.add(filterCombo);
upperPanel.add(Box.createHorizontalStrut(3));
+ final JTextField filterText =(JTextField) filterCombo.getEditor().getEditorComponent();
+ final JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
+
+
//Adding a button to clear filter expressions which are currently remembered by Chainsaw...
final JButton removeFilterButton = new JButton(" Remove ");
- final JTextField filterText =(JTextField) filterCombo.getEditor().getEditorComponent();
+
removeFilterButton.setToolTipText("Click here to remove the selected expression from the list");
removeFilterButton.addActionListener(
new AbstractAction() {
public void actionPerformed(ActionEvent e){
Object selectedItem = filterCombo.getSelectedItem();
if (e.getSource() == removeFilterButton && selectedItem != null && !selectedItem.toString().trim().equals("")){
- //don't just remove the entry from the store, clear the field
- int index = filterCombo.getSelectedIndex();
- filterText.setText(null);
- filterCombo.setSelectedIndex(-1);
- filterCombo.removeItemAt(index);
+ //don't just remove the entry from the store, clear the field
+ int index = filterCombo.getSelectedIndex();
+ filterText.setText(null);
+ filterCombo.setSelectedIndex(-1);
+ filterCombo.removeItemAt(index);
+ if (!(findCombo.getSelectedItem() != null && findCombo.getSelectedItem().equals(selectedItem))) {
+ //now remove the entry from the other model
+ ((AutoFilterComboBox.AutoFilterComboBoxModel)findCombo.getModel()).removeElement(selectedItem);
+ }
}
}
}
@@ -1162,18 +1172,21 @@ public class LogPanel extends DockablePa
//Adding a button to clear filter expressions which are currently remembered by Chainsaw...
final JButton removeFindButton = new JButton(" Remove ");
- final JTextField findText =(JTextField) findCombo.getEditor().getEditorComponent();
removeFindButton.setToolTipText("Click here to remove the selected expression from the list");
removeFindButton.addActionListener(
new AbstractAction() {
public void actionPerformed(ActionEvent e){
Object selectedItem = findCombo.getSelectedItem();
if (e.getSource() == removeFindButton && selectedItem != null && !selectedItem.toString().trim().equals("")){
- //don't just remove the entry from the store, clear the field
- int index = findCombo.getSelectedIndex();
- findText.setText(null);
- findCombo.setSelectedIndex(-1);
- findCombo.removeItemAt(index);
+ //don't just remove the entry from the store, clear the field
+ int index = findCombo.getSelectedIndex();
+ findText.setText(null);
+ findCombo.setSelectedIndex(-1);
+ findCombo.removeItemAt(index);
+ if (!(filterCombo.getSelectedItem() != null && filterCombo.getSelectedItem().equals(selectedItem))) {
+ //now remove the entry from the other model if it wasn't selected
+ ((AutoFilterComboBox.AutoFilterComboBoxModel)filterCombo.getModel()).removeElement(selectedItem);
+ }
}
}
}
@@ -1796,7 +1809,7 @@ public class LogPanel extends DockablePa
class ClearSearch extends AbstractAction {
public ClearSearch() {
- super("Clear search field");
+ super("Clear find field");
}
public void actionPerformed(ActionEvent e) {
findCombo.setSelectedItem(null);
@@ -1959,7 +1972,7 @@ public class LogPanel extends DockablePa
return action;
}
- private void buildCombo(final JComboBox combo, boolean isFiltering) {
+ private void buildCombo(final AutoFilterComboBox combo, boolean isFiltering, final AutoFilterComboBox.AutoFilterComboBoxModel otherModel) {
//add (hopefully useful) default filters
combo.addItem("LEVEL == TRACE");
combo.addItem("LEVEL >= DEBUG");
@@ -1987,6 +2000,7 @@ public class LogPanel extends DockablePa
ExpressionRule.getRule(item.toString());
//add entry as first row of the combo box
combo.insertItemAt(item, 0);
+ otherModel.insertElementAt(item, 0);
}
//valid expression, reset background color in case we were previously an invalid expression
filterText.setBackground(UIManager.getColor("TextField.background"));
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java?rev=1026945&r1=1026944&r2=1026945&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LogPanelPreferencePanel.java Mon Oct 25 05:00:03 2010
@@ -531,8 +531,8 @@ public class LogPanelPreferencePanel ext
private final JCheckBox loggerTreePanel =
new JCheckBox("Show Logger Tree");
private final JCheckBox wrapMessage = new JCheckBox("Wrap message field (display multi-line rows) ");
- private final JCheckBox searchResultsVisible = new JCheckBox("Display search results in details panel ");
- private final JCheckBox highlightSearchMatchText = new JCheckBox("Highlight search match text ");
+ private final JCheckBox searchResultsVisible = new JCheckBox("Display find results in details panel ");
+ private final JCheckBox highlightSearchMatchText = new JCheckBox("Highlight find match text ");
private final JCheckBox scrollToBottom =
new JCheckBox("Scroll to bottom (view tracks with new events)");
private final JCheckBox showMillisDeltaAsGap =
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java?rev=1026945&r1=1026944&r2=1026945&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/LoggerNameTreePanel.java Mon Oct 25 05:00:03 2010
@@ -829,7 +829,7 @@ final class LoggerNameTreePanel extends
action.putValue(Action.NAME, "Find next");
action.putValue(
Action.SHORT_DESCRIPTION,
- "Search using the selected node");
+ "Find using the selected node");
action.setEnabled(false);
return action;
@@ -941,10 +941,10 @@ final class LoggerNameTreePanel extends
}
};
- action.putValue(Action.NAME, "Clear search field");
+ action.putValue(Action.NAME, "Clear find field");
action.putValue(
Action.SHORT_DESCRIPTION,
- "Clear the search field");
+ "Clear the find field");
action.setEnabled(false);
return action;
@@ -1238,7 +1238,7 @@ final class LoggerNameTreePanel extends
{
focusOnAction.putValue(Action.NAME, "Focus On...");
hideAction.putValue(Action.NAME, "Ignore...");
- findNextAction.putValue(Action.NAME, "Search for...");
+ findNextAction.putValue(Action.NAME, "Find...");
setRefineFocusAction.putValue(Action.NAME, "Set refine focus field");
updateRefineFocusAction.putValue(Action.NAME, "Add to refine focus field");
defineColorRuleForLoggerAction.putValue(Action.NAME, "Define color rule");
@@ -1247,7 +1247,7 @@ final class LoggerNameTreePanel extends
{
focusOnAction.putValue(Action.NAME, "Focus On '" + logger + "'");
hideAction.putValue(Action.NAME, "Ignore '" + logger + "'");
- findNextAction.putValue(Action.NAME, "Search for '" + logger + "'");
+ findNextAction.putValue(Action.NAME, "Find '" + logger + "'");
setRefineFocusAction.putValue(Action.NAME, "Set refine focus field to '" + logger + "'");
updateRefineFocusAction.putValue(Action.NAME, "Add '" + logger + "' to 'refine focus' field");
defineColorRuleForLoggerAction.putValue(Action.NAME, "Define color rule for '" + logger + "'");
Modified: logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java?rev=1026945&r1=1026944&r2=1026945&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java (original)
+++ logging/chainsaw/trunk/src/main/java/org/apache/log4j/chainsaw/color/ColorPanel.java Mon Oct 25 05:00:03 2010
@@ -303,7 +303,7 @@ public class ColorPanel extends JPanel
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
- JLabel defineSearchColorsLabel = new JLabel("Search colors");
+ JLabel defineSearchColorsLabel = new JLabel("Find colors");
panel.add(defineSearchColorsLabel);
Modified: logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html?rev=1026945&r1=1026944&r2=1026945&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html (original)
+++ logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/release-notes.html Mon Oct 25 05:00:03 2010
@@ -17,7 +17,7 @@
</ul>
<h2>13 Oct 2010</h2>
<ul>
-<li>Added log panel preference to display search results in the detail panel. When the preference is enabled and a search is performed, the matching rows are displayed in a table in the details panel. Clicking on a row in that table selects the row in the main event table.</li>
+<li>Added log panel preference to display find results in the detail panel. When the preference is enabled and a search is performed, the matching rows are displayed in a table in the details panel. Clicking on a row in that table selects the row in the main event table.</li>
</ul>
<h2>22 Sep 2010</h2>
<ul>
@@ -25,9 +25,9 @@
</ul>
<h2>15 Sep 2010</h2>
<ul>
-<li>New feature: Clickable thumbnail bar on the left shows time delta to prior displayed event if the time delta is > 1 second (behaves similarly to the thumbnail bar on the right which shows colors and search matches, but represents the time delta between events). A bigger delta is represented as a wider line.</li>
+<li>New feature: Clickable thumbnail bar on the left shows time delta to prior displayed event if the time delta is > 1 second (behaves similarly to the thumbnail bar on the right which shows colors and find matches, but represents the time delta between events). A bigger delta is represented as a wider line.</li>
<li>Updated table rendering logic when in line-wrap mode</li>
-<li>Updated row selection logic (goto/search) to make sure event is on the screen</li>
+<li>Updated row selection logic (goto/find) to make sure event is on the screen</li>
<li>Capped the event time delta rendering in the table to a max of 50 pixels tall</li>
</ul>
<h2>13 Sep 2010</h2>
Modified: logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/tutorial.html
URL: http://svn.apache.org/viewvc/logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/tutorial.html?rev=1026945&r1=1026944&r2=1026945&view=diff
==============================================================================
--- logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/tutorial.html (original)
+++ logging/chainsaw/trunk/src/main/resources/org/apache/log4j/chainsaw/help/tutorial.html Mon Oct 25 05:00:03 2010
@@ -216,16 +216,16 @@ Example: to display only events which ar
<tr><td>To display events occurring at 23:55:12 on the 19th of June (all events generated during that second, regardless of millisecond value)</td><td><b>TIMESTAMP == '2004/06/19 23:55:12'</b></td></tr>
</table>
-<A NAME="search"><h3>Search</h3>
+<A NAME="search"><h3>Find</h3>
<p>
-<b>How to search:</b></p>
+<b>How to find:</b></p>
<ul>
-<li><b>Enter an expression</b> in the text field of the main Chainsaw toolbar (a log panel must be selected)</li>
-<li>Click the <b>down arrow icon</b> or press <b>F3</b> to search forward</li>
-<li>Click the <b>up arrow icon</b> or press <b>Shift+F3</b> to search backward</li>
+<li><b>Enter an expression</b> in the Find field</li>
+<li>Click the <b>down arrow icon</b> or press <b>F3</b> or <b>enter</b> to search forward from the currently selected row</li>
+<li>Click the <b>up arrow icon</b> or press <b>Shift+F3</b> to search backward from the currently selected row</li>
<li>The first matching row becomes selected, with matching rows displayed with white text on a black background</li>
<li>Subsequent forward or backward searches will navigate to the next match</li>
-<li>To <b>clear the search highlighting</b>, clear the text field and press <b>F3</b>)</li>
+<li>To <b>clear the find highlighting</b>, clear the text field and press <b>F3</b> or <b>enter</b></li>
</ul>
<p>
<A NAME="display_filter"><h3>Display filters (refine focus)</h3>
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.