Author: yradtsevich
Date: 2009-08-26 10:54:09 -0400 (Wed, 26 Aug 2009)
New Revision: 17276
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/selbar/SelectionBar.java
Log:
issue JBIDE-4430: location bar blinks on move even if it was not changed
https://jira.jboss.org/jira/browse/JBIDE-4430
- now, if nothing changed then nothing updated
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2009-08-26
14:49:35 UTC (rev 17275)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2009-08-26
14:54:09 UTC (rev 17276)
@@ -2503,7 +2503,7 @@
*/
public void selectionChanged(SelectionChangedEvent event) {
if (selectionBar != null)
- selectionBar.updateNodes();
+ selectionBar.updateNodes(false);
// FIX for JBIDE-2114
if (!isVisualEditorVisible()) {
// selection event doesn't changes a content
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/selbar/SelectionBar.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/selbar/SelectionBar.java 2009-08-26
14:49:35 UTC (rev 17275)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/selbar/SelectionBar.java 2009-08-26
14:54:09 UTC (rev 17276)
@@ -92,6 +92,7 @@
private boolean visible;
private ImageButton arrowButton;
+ private Node currentSelectedNode = null;
// private ToolItem arrowButton;
@@ -294,11 +295,7 @@
* Updates buttons in the selection bar and the drop-down menu
* according to the source selection.
*/
- public void updateNodes() {
- // bug was fixed when toolbar are not shown for resizeble components
- cmpToolBar.layout();
- splitter.getParent().layout(true, true);
-
+ public void updateNodes(boolean forceUpdate) {
VpeSourceSelectionBuilder sourceSelectionBuilder = new VpeSourceSelectionBuilder(
vpeController.getSourceEditor());
VpeSourceSelection selection = sourceSelectionBuilder.getSelection();
@@ -312,6 +309,16 @@
node = node.getParentNode();
}
+ if (currentSelectedNode == node && !forceUpdate) {
+ return;
+ } else {
+ currentSelectedNode = node;
+ }
+
+ // bug was fixed when toolbar are not shown for resizeble components
+ cmpToolBar.layout();
+ splitter.getParent().layout(true, true);
+
removeNodeListenerFromAllNodes();
cleanToolBar(selBar);
@@ -355,7 +362,7 @@
if (!resizeListenerAdded ) {
cmpToolBar.addListener(SWT.Resize, new Listener() {
public void handleEvent(Event event) {
- updateNodes();
+ updateNodes(true);
}
});
resizeListenerAdded = true;
@@ -633,6 +640,6 @@
* event' instance.
*/
public void notifyChanged(INodeNotifier notifier, int eventType, Object
changedFeature, Object oldValue, Object newValue, int pos) {
- selectionBar.updateNodes();
+ selectionBar.updateNodes(false);
}
}