Author: rob.stryker(a)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 @@
}
}
}
+
}