[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server ...

Robert Stryker rawblem at gmail.com
Thu Dec 14 14:34:44 EST 2006


  User: rawb    
  Date: 06/12/14 14:34:44

  Modified:    as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server   
                        ServerTableViewer.java JBossServerView.java
                        JBossServerTableViewer.java
  Log:
  flickering view caused by input being set all over the place. Had to be remedied. It's possible this change breaks something else which depended on that behavior, but if it does I'll find it ;) 
  
  Also, API change which allows removal and addition of items without doing a tree refresh  (more efficient)
  
  Revision  Changes    Path
  1.5       +2 -0      jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ServerTableViewer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- ServerTableViewer.java	6 Dec 2006 17:14:36 -0000	1.4
  +++ ServerTableViewer.java	14 Dec 2006 19:34:44 -0000	1.5
  @@ -262,6 +262,8 @@
   			public void run() {
   				try {
   					refresh(server);
  +					
  +					// This ensures the icons are updated in case of a publish or state change
   					ISelection sel = ServerTableViewer.this.getSelection();
   					ServerTableViewer.this.setSelection(sel);
   				} catch (Exception e) {
  
  
  
  1.5       +8 -41     jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JBossServerView.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- JBossServerView.java	28 Nov 2006 17:32:51 -0000	1.4
  +++ JBossServerView.java	14 Dec 2006 19:34:44 -0000	1.5
  @@ -3,6 +3,7 @@
   import java.util.ArrayList;
   import java.util.Arrays;
   
  +import org.eclipse.core.internal.refresh.RefreshJob;
   import org.eclipse.core.runtime.CoreException;
   import org.eclipse.debug.core.ILaunchConfiguration;
   import org.eclipse.debug.ui.DebugUITools;
  @@ -56,6 +57,8 @@
   	protected Action  refreshViewerAction, editLaunchConfigAction, twiddleAction, cloneServerAction;
   
   	
  +	private boolean suppressingRefresh = false;
  +	
   	
   	public static JBossServerView instance;
   	public static JBossServerView getDefault() {
  @@ -105,7 +108,7 @@
   			public void run() {
   				Display.getDefault().asyncExec(new Runnable() {
   					public void run() {
  -						refresh();
  +						getJBViewer().refresh(null);
   					} 
   				});
   			}
  @@ -209,9 +212,6 @@
   	}
   	
   	
  -	protected void refresh() {
  -		tableViewer.refresh(); // should auto-refresh the other
  -	}
   	// for superclass, for the top viewer
   	protected void fillContextMenu(Shell shell, IMenuManager menu) {
   		menu.add(newServerAction);
  @@ -246,28 +246,6 @@
   		return (IServer)jbViewer.getInput();
   	}
   	
  -	public void refreshJBTree(Object obj) {
  -		final Object obj2 = obj;
  -		Display.getDefault().asyncExec(new Runnable() {
  -			public void run() {
  -				try {
  -					// If it's null, refresh the whole thing
  -					if( obj2 == null ) { 
  -//						Object[] expanded = JBossServerView.this.jbViewer.getExpandedElements();
  -						JBossServerView.this.jbViewer.refresh();
  -//						JBossServerView.this.jbViewer.setExpandedElements(expanded);
  -					} else {
  -//						Object[] expanded = JBossServerView.this.jbViewer.getExpandedElements();
  -						JBossServerView.this.jbViewer.refresh(obj2);
  -//						JBossServerView.this.jbViewer.setExpandedElements(expanded);
  -					}
  -				} catch (Exception e) {
  -					// ignore
  -				}
  -			}
  -		});
  -	}
  -	
   	public void addListeners() {
   		
   		/*
  @@ -276,7 +254,6 @@
   		
   		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
   			public void selectionChanged(SelectionChangedEvent event) {
  -				Object current = jbViewer.getInput();
   				Object selection = ((TreeSelection)event.getSelection()).getFirstElement();
   				Object server = selection;
   				if( selection instanceof ModuleServer ) {
  @@ -284,22 +261,12 @@
   				}
   
   				if( selection == null ) return;
  -				
   				if( server != jbViewer.getInput()) {
   					jbViewer.setInput(server);
  -					jbViewer.expandToLevel(2);
   				} else {
  -					// This is entirely too cludgy but it works
  -					ISelection sel = jbViewer.getSelection();
  -					Object[] expanded = jbViewer.getExpandedElements();
  -					jbViewer.setInput(server);
  -//					jbViewer.expandToLevel(2);
  -					Object[] alsoExpanded = jbViewer.getExpandedElements();
  -					ArrayList tmp = new ArrayList();
  -					tmp.addAll(Arrays.asList(expanded));
  -					tmp.addAll(Arrays.asList(alsoExpanded));
  -					jbViewer.setExpandedElements(tmp.toArray());
  -					jbViewer.setSelection(sel);
  +//					Object[] expanded = jbViewer.getExpandedElements();
  +//					jbViewer.setInput(server);
  +//					jbViewer.setExpandedElements(expanded);
   				}
   			} 
   			
  
  
  
  1.4       +18 -3     jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerTableViewer.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JBossServerTableViewer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerTableViewer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- JBossServerTableViewer.java	13 Dec 2006 21:48:53 -0000	1.3
  +++ JBossServerTableViewer.java	14 Dec 2006 19:34:44 -0000	1.4
  @@ -45,8 +45,8 @@
   public class JBossServerTableViewer extends TreeViewer {
   
   	protected TableViewerPropertySheet propertySheet;
  -	
   	protected Action disableCategoryAction, refreshAction;
  +	protected boolean suppressingRefresh = false;
   	public JBossServerTableViewer(Tree tree) {
   		super(tree);
   		setContentProvider(new ContentProviderDelegator());
  @@ -94,9 +94,9 @@
   			public void run() {
   				Object el = getSelectedElement();
   				if( el instanceof ServerViewProvider ) 
  -					JBossServerView.getDefault().refreshJBTree(el);
  +					refresh(el);
   				else 
  -					JBossServerView.getDefault().refreshJBTree(((IStructuredSelection)getSelection()).getFirstElement());
  +					refresh(((IStructuredSelection)getSelection()).getFirstElement());
   			}
   		};
   		refreshAction.setText("Refresh Item");
  @@ -403,4 +403,19 @@
   		}
   	}
   	
  +	
  +	public void suppressingRefresh(Runnable runnable) {
  +		boolean currentVal = suppressingRefresh;
  +		suppressingRefresh = true;
  +		runnable.run();
  +		suppressingRefresh = currentVal;
  +	}
  +
  +	// for testing
  +	public void refresh(final Object element) {
  +		System.out.println("here: " + element);
  +		super.refresh(element);
  +	}
  +	
  +
   }
  
  
  



More information about the jboss-cvs-commits mailing list