From 4c241386867caaa80b65abfb5c4a64cf87b74dfd Mon Sep 17 00:00:00 2001 From: William Chen Date: Thu, 23 Feb 2012 15:26:31 +0800 Subject: Target Explorer: Merge two process property testers. --- .../org.eclipse.tcf.te.tcf.processes.ui/plugin.xml | 27 +++++-------- .../ui/internal/testers/ProcessPropertyTester.java | 20 ++++++++- .../te/tcf/processes/ui/model/PropertyTester.java | 47 ---------------------- 3 files changed, 28 insertions(+), 66 deletions(-) delete mode 100644 target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/model/PropertyTester.java diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/plugin.xml index d5f3fbe7a..ac8974184 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/plugin.xml @@ -240,7 +240,7 @@ + property="org.eclipse.tcf.te.tcf.processes.ui.model.isSystemRoot"> @@ -270,7 +270,7 @@ + property="org.eclipse.tcf.te.tcf.processes.ui.model.isSystemRoot"> @@ -349,7 +349,7 @@ - + @@ -379,7 +379,7 @@ - + @@ -450,15 +450,6 @@ - - - - + property="org.eclipse.tcf.te.tcf.processes.ui.model.isSystemRoot"> @@ -701,7 +692,7 @@ + property="org.eclipse.tcf.te.tcf.processes.ui.model.isSystemRoot"> @@ -718,7 +709,7 @@ + property="org.eclipse.tcf.te.tcf.processes.ui.model.isSystemRoot"> @@ -730,8 +721,8 @@ diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/testers/ProcessPropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/testers/ProcessPropertyTester.java index 8d954fccd..8ddb69258 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/testers/ProcessPropertyTester.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/testers/ProcessPropertyTester.java @@ -9,7 +9,10 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.processes.ui.internal.testers; +import java.util.concurrent.atomic.AtomicBoolean; + import org.eclipse.core.expressions.PropertyTester; +import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.processes.ui.model.ProcessTreeNode; /** @@ -24,10 +27,25 @@ public class ProcessPropertyTester extends PropertyTester { @Override public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { if(receiver instanceof ProcessTreeNode) { - ProcessTreeNode node = (ProcessTreeNode) receiver; + final ProcessTreeNode node = (ProcessTreeNode) receiver; if(property.equals("isSystemRoot")) { //$NON-NLS-1$ return "ProcRootNode".equals(node.type); //$NON-NLS-1$ } + else if ("isAttached".equals(property) && expectedValue instanceof Boolean) { //$NON-NLS-1$ + final AtomicBoolean isAttached = new AtomicBoolean(); + Runnable runnable = new Runnable() { + @Override + public void run() { + if (node.pContext != null) { + isAttached.set(node.pContext.isAttached()); + } + } + }; + if (Protocol.isDispatchThread()) runnable.run(); + else Protocol.invokeAndWait(runnable); + + return ((Boolean)expectedValue).booleanValue() == isAttached.get(); + } } return false; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/model/PropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/model/PropertyTester.java deleted file mode 100644 index 5071f410f..000000000 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/model/PropertyTester.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved. - * 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: - * Wind River Systems - initial API and implementation - *******************************************************************************/ -package org.eclipse.tcf.te.tcf.processes.ui.model; - -import java.util.concurrent.atomic.AtomicBoolean; - -import org.eclipse.tcf.protocol.Protocol; - -/** - * Processes service model property tester. - */ -public class PropertyTester extends org.eclipse.core.expressions.PropertyTester { - - /* (non-Javadoc) - * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) - */ - @Override - public boolean test(final Object receiver, String property, Object[] args, Object expectedValue) { - - if (receiver instanceof ProcessTreeNode) { - if ("isAttached".equals(property) && expectedValue instanceof Boolean) { //$NON-NLS-1$ - final AtomicBoolean isAttached = new AtomicBoolean(); - Runnable runnable = new Runnable() { - @Override - public void run() { - final ProcessTreeNode node = (ProcessTreeNode)receiver; - if (node.pContext != null) { - isAttached.set(node.pContext.isAttached()); - } - } - }; - if (Protocol.isDispatchThread()) runnable.run(); - else Protocol.invokeAndWait(runnable); - - return ((Boolean)expectedValue).booleanValue() == isAttached.get(); - } - } - return false; - } -} -- cgit v1.2.3