summaryrefslogtreecommitdiff
path: root/src/plugins/remote.device/src/com/motorola/studio/android/remote/ui/RemoteDevicePropertiesPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/remote.device/src/com/motorola/studio/android/remote/ui/RemoteDevicePropertiesPage.java')
-rw-r--r--src/plugins/remote.device/src/com/motorola/studio/android/remote/ui/RemoteDevicePropertiesPage.java126
1 files changed, 126 insertions, 0 deletions
diff --git a/src/plugins/remote.device/src/com/motorola/studio/android/remote/ui/RemoteDevicePropertiesPage.java b/src/plugins/remote.device/src/com/motorola/studio/android/remote/ui/RemoteDevicePropertiesPage.java
new file mode 100644
index 0000000..eb60704
--- /dev/null
+++ b/src/plugins/remote.device/src/com/motorola/studio/android/remote/ui/RemoteDevicePropertiesPage.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.motorola.studio.android.remote.ui;
+
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.sequoyah.device.framework.model.IInstance;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IWorkbenchPropertyPage;
+import org.eclipse.ui.dialogs.PropertyPage;
+
+import com.motorola.studio.android.adt.ISerialNumbered;
+import com.motorola.studio.android.remote.instance.RemoteDeviceInstance;
+import com.motorola.studio.android.remote.ui.RemotePropertiesComposite.RemotePropertiesChangedListener;
+
+/**
+ * Property page for Android Remote Devices.
+ */
+public class RemoteDevicePropertiesPage extends PropertyPage implements
+ RemotePropertiesChangedListener, IWorkbenchPropertyPage
+{
+
+ private RemotePropertiesComposite composite;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected Control createContents(Composite parent)
+ {
+ String host = "";
+ String port = "";
+ String timeout = "";
+
+ IInstance instance = null;
+
+ IAdaptable adaptable = getElement();
+ if (adaptable instanceof IInstance)
+ {
+ instance = (IInstance) adaptable;
+ Properties prop = instance.getProperties();
+ String propHost = prop.getProperty(RemoteDeviceInstance.PROPERTY_HOST);
+ String propPort = prop.getProperty(RemoteDeviceInstance.PROPERTY_PORT);
+ String propTimeout = prop.getProperty(RemoteDeviceInstance.PROPERTY_TIMEOUT);
+ host = (propHost != null) ? propHost : "";
+ port = (propPort != null) ? propPort : "";
+ timeout = (propTimeout != null) ? propTimeout : "";
+ }
+
+ composite =
+ new RemotePropertiesComposite(parent, host, port, timeout,
+ (ISerialNumbered) instance);
+ composite.addPropertyChangeListener(this);
+ composite.addDisposeListener(new DisposeListener()
+ {
+ public void widgetDisposed(DisposeEvent e)
+ {
+ composite.removePropertyChangeListener(RemoteDevicePropertiesPage.this);
+ }
+ });
+
+ setErrorMessage(composite.getErrorMessage());
+ noDefaultAndApplyButton();
+
+ return composite;
+ }
+
+ /* (non-Javadoc)
+ * @see com.motorola.studio.android.remote.ui.RemotePropertiesComposite.RemotePropertiesChangedListener#propertiesChanged()
+ */
+ public void propertiesChanged()
+ {
+ setErrorMessage(composite.getErrorMessage());
+ setValid(isValid());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#performOk()
+ */
+ @Override
+ public boolean performOk()
+ {
+ String host = composite.getHost();
+ int port = composite.getPort();
+ int timeout = composite.getTimeout();
+
+ IAdaptable adaptable = getElement();
+ if (adaptable instanceof IInstance)
+ {
+ IInstance instance = (IInstance) adaptable;
+ Properties prop = instance.getProperties();
+ prop.setProperty(RemoteDeviceInstance.PROPERTY_HOST, host);
+ prop.setProperty(RemoteDeviceInstance.PROPERTY_PORT, Integer.toString(port));
+ prop.setProperty(RemoteDeviceInstance.PROPERTY_TIMEOUT, Integer.toString(timeout));
+ }
+
+ return super.performOk();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#isValid()
+ */
+ @Override
+ public boolean isValid()
+ {
+ return (composite.getErrorMessage() == null);
+ }
+
+}