[jbosstools-commits] JBoss Tools SVN: r23958 - workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/rse/ui.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Aug 5 22:52:49 EDT 2010


Author: rob.stryker at jboss.com
Date: 2010-08-05 22:52:49 -0400 (Thu, 05 Aug 2010)
New Revision: 23958

Modified:
   workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/rse/ui/RSEDeploymentPreferenceUI.java
Log:
JBIDE-6792 - undo to reset combo

Modified: workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/rse/ui/RSEDeploymentPreferenceUI.java
===================================================================
--- workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/rse/ui/RSEDeploymentPreferenceUI.java	2010-08-06 02:26:56 UTC (rev 23957)
+++ workspace/rstryker/rse/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/rse/ui/RSEDeploymentPreferenceUI.java	2010-08-06 02:52:49 UTC (rev 23958)
@@ -10,6 +10,9 @@
  ******************************************************************************/ 
 package org.jboss.tools.as.rse.ui;
 
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.rse.core.RSECorePlugin;
 import org.eclipse.rse.core.events.ISystemModelChangeEvent;
@@ -46,13 +49,12 @@
 	}
 
 	@Override
-	public void fillComposite(Composite parent,
-			ServerModeSection modeSection) {
+	public void fillComposite(Composite parent, ServerModeSection modeSection) {
 		parent.setLayout(new FillLayout());
 		new RSEDeploymentPreferenceComposite(parent, SWT.NONE, modeSection);
 	}
 
-	public static class RSEDeploymentPreferenceComposite extends Composite {
+	public static class RSEDeploymentPreferenceComposite extends Composite implements PropertyChangeListener {
 		private ServerModeSection modeSection;
 		private CustomSystemHostCombo combo;
 		private Text rseServerHome,rseServerConfig;
@@ -109,9 +111,28 @@
 				public void modifyText(ModifyEvent e) {
 					serverConfigChanged();
 				}});
+			modeSection.getServer().addPropertyChangeListener(this);
 		}
 		
+		@Override
+		public void dispose () {
+			super.dispose();
+			modeSection.getServer().removePropertyChangeListener(this);
+		}
 
+		private boolean updatingFromModelChange = false;
+		public void propertyChange(PropertyChangeEvent evt) {
+			updatingFromModelChange = true;
+			if( evt.getPropertyName().equals(RSEUtils.RSE_SERVER_HOME_DIR)) {
+				rseServerHome.setText(evt.getNewValue().toString());
+			} else if( evt.getPropertyName().equals(RSEUtils.RSE_SERVER_CONFIG)) {
+				rseServerConfig.setText(evt.getNewValue().toString());
+			} else if( evt.getPropertyName().equals(RSEUtils.RSE_SERVER_HOST)) {
+				combo.setHostName(evt.getNewValue().toString());
+			}
+			updatingFromModelChange = false;
+		}
+
 		protected void browseClicked() {
 			SystemRemoteFileDialog d = new SystemRemoteFileDialog(
 					rseBrowse.getShell(), "Browse remote system", combo.getHost());
@@ -130,28 +151,34 @@
 		}
 		
 		protected void rseHostChanged() {
-			String hostName = combo.getHost() == null ? null : combo.getHost().getAliasName();
-			String oldVal = modeSection.getServer().getAttribute(RSEUtils.RSE_SERVER_HOST, (String)null);
-			if( !hostName.equals(oldVal)) {
-				modeSection.getCommandManager().execute(new ChangeServerPropertyCommand(
-						modeSection.getServer(), RSEUtils.RSE_SERVER_HOST, hostName, 
-						"Change RSE Host"));
-				modeSection.getCommandManager().execute(new ChangeServerPropertyCommand(
-						modeSection.getServer(), "hostname", combo.getHost().getHostName(), 
-						"Change Hostname"));
+			if( !updatingFromModelChange ) {
+				String hostName = combo.getHost() == null ? null : combo.getHost().getAliasName();
+				String oldVal = modeSection.getServer().getAttribute(RSEUtils.RSE_SERVER_HOST, (String)null);
+				if( !hostName.equals(oldVal) && !updatingFromModelChange) {
+					modeSection.getCommandManager().execute(new ChangeServerPropertyCommand(
+							modeSection.getServer(), RSEUtils.RSE_SERVER_HOST, hostName, 
+							"Change RSE Host"));
+					modeSection.getCommandManager().execute(new ChangeServerPropertyCommand(
+							modeSection.getServer(), "hostname", combo.getHost().getHostName(), 
+							"Change Hostname"));
+				}
 			}
 		}
 		
 		protected void serverHomeChanged() {
-			modeSection.getCommandManager().execute(new ChangeServerPropertyCommand(
-					modeSection.getServer(), RSEUtils.RSE_SERVER_HOME_DIR, rseServerHome.getText(), 
-					"Change RSE Server's Home Directory"));
+			if( !updatingFromModelChange) {
+				modeSection.getCommandManager().execute(new ChangeServerPropertyCommand(
+						modeSection.getServer(), RSEUtils.RSE_SERVER_HOME_DIR, rseServerHome.getText(), 
+						"Change RSE Server's Home Directory"));
+			}
 		}
 
 		protected void serverConfigChanged() {
-			modeSection.getCommandManager().execute(new ChangeServerPropertyCommand(
-					modeSection.getServer(), RSEUtils.RSE_SERVER_CONFIG, rseServerConfig.getText(), 
-					"Change RSE Server's Configuration"));
+			if( !updatingFromModelChange ) {
+				modeSection.getCommandManager().execute(new ChangeServerPropertyCommand(
+						modeSection.getServer(), RSEUtils.RSE_SERVER_CONFIG, rseServerConfig.getText(), 
+						"Change RSE Server's Configuration"));
+			}
 		}
 
 		public class CustomSystemHostCombo extends Composite implements ModifyListener, ISystemModelChangeListener {
@@ -211,6 +238,22 @@
 				return currentHostName;
 			}
 			
+			public void setHostName(String name) {
+				this.currentHostName = name;
+				this.currentHost = findHost(currentHostName);
+				if( currentHost == null )
+					combo.clearSelection();
+				else {
+					String[] items = combo.getItems();
+					for( int i = 0; i < items.length; i++ ) {
+						if( items[i].equals(currentHost.getAliasName())) {
+							combo.select(i);
+							return;
+						}
+					}
+				}
+			}
+			
 			public void refreshConnections() {
 				hosts = RSECorePlugin.getTheSystemRegistry().getHostsBySubSystemConfigurationCategory(fileSubSystem);
 				hostsAsStrings = new String[hosts.length];
@@ -263,4 +306,5 @@
 			}
 		}
 	}
+
 }



More information about the jbosstools-commits mailing list