Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/controls/TCFPeerSelector.java')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/controls/TCFPeerSelector.java143
1 files changed, 143 insertions, 0 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/controls/TCFPeerSelector.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/controls/TCFPeerSelector.java
new file mode 100644
index 000000000..322f61139
--- /dev/null
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.cdt/src/org/eclipse/tcf/te/tcf/launch/cdt/controls/TCFPeerSelector.java
@@ -0,0 +1,143 @@
+/********************************************************************************
+ * Copyright (c) 2012 MontaVista Software, LLC.
+ * This program and the accompanying materials are made available under the terms
+ * of the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Anna Dushistova (MontaVista) - initial API and implementation
+ ********************************************************************************/
+package org.eclipse.tcf.te.tcf.launch.cdt.controls;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.tcf.te.tcf.launch.cdt.activator.Activator;
+import org.eclipse.tcf.te.tcf.launch.cdt.nls.Messages;
+import org.eclipse.tcf.te.tcf.launch.cdt.utils.TEHelper;
+import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
+import org.eclipse.tcf.te.tcf.locator.model.Model;
+
+public class TCFPeerSelector {
+
+ protected Combo combo;
+ protected Label label;
+ protected IPeerModel[] peers = null;
+
+ private Composite composite;
+
+ public TCFPeerSelector(Composite parent, int style, int numberOfColumns) {
+ composite = new Composite(parent, style);
+ GridLayout layout = new GridLayout(numberOfColumns, false);
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ composite.setLayout(layout);
+
+ label = new Label(composite, SWT.NONE);
+ label.setText(Messages.TCFPeerSelector_0);
+ label.setLayoutData(new GridData(SWT.BEGINNING));
+
+ combo = new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY);
+ combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ refreshCombo();
+
+ }
+
+ public void setEnabled(boolean enabled) {
+ composite.setEnabled(enabled);
+ label.setEnabled(enabled);
+ combo.setEnabled(enabled);
+ }
+
+ public boolean isDisposed() {
+ return composite == null || composite.isDisposed();
+ }
+
+ public void setLayoutData(Object layoutData) {
+ if (composite != null) {
+ composite.setLayoutData(layoutData);
+ }
+ }
+
+ public void addSelectionListener(SelectionListener listener) {
+ combo.addSelectionListener(listener);
+ }
+
+ public void removeSelectionListener(SelectionListener listener) {
+ combo.removeSelectionListener(listener);
+ }
+
+ public void addModifyListener(ModifyListener listener) {
+ combo.addModifyListener(listener);
+ }
+
+ public void removeModifyListener(ModifyListener listener) {
+ combo.removeModifyListener(listener);
+ }
+
+ /**
+ * Get the selected peer.
+ */
+ public IPeerModel getPeer() {
+ final String peerId = getPeerId();
+ return TEHelper.getPeer(peerId);
+ }
+
+ /**
+ * Get the selected peerId.
+ */
+ public String getPeerId() {
+ if (peers != null && !combo.isDisposed()) {
+ int selectionIndex = combo.getSelectionIndex();
+ if (selectionIndex >= 0 && selectionIndex < peers.length) {
+ return combo.getItem(selectionIndex);
+ }
+ }
+ return null;
+ }
+
+ public void updateSelectionFrom(IPeerModel peer) {
+ int newSelectedIndex = -1;
+ String[] peerIds = combo.getItems();
+ for (int i = 0; i < peerIds.length; i++) {
+ if (peerIds[i].equals(peer.getPeerId())) {
+ newSelectedIndex = i;
+ break;
+ }
+ }
+ if (newSelectedIndex >= 0) {
+ combo.select(newSelectedIndex);
+ }
+ }
+
+ public void updateSelectionFrom(String peerId) {
+ int newSelectedIndex = -1;
+ String[] peerIds = combo.getItems();
+ for (int i = 0; i < peerIds.length; i++) {
+ if (peerIds[i].equals(peerId)) {
+ newSelectedIndex = i;
+ break;
+ }
+ }
+ if (newSelectedIndex >= 0) {
+ combo.select(newSelectedIndex);
+ }
+ }
+
+ protected void refreshCombo() {
+ Activator.getDefault().initializeTE();
+ peers = Model.getModel().getPeers();
+ int newSelectedIndex = 0;
+ for (int i = 0; i < peers.length; i++) {
+ combo.add(peers[i].getPeerId());
+ }
+ combo.select(newSelectedIndex);
+ }
+
+}

Back to the top