199bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev/* 299bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * Copyright (C) 2010 The Android Open Source Project 399bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * 499bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * Licensed under the Apache License, Version 2.0 (the "License"); 599bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * you may not use this file except in compliance with the License. 699bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * You may obtain a copy of the License at 799bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * 899bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * http://www.apache.org/licenses/LICENSE-2.0 999bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * 1099bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * Unless required by applicable law or agreed to in writing, software 1199bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * distributed under the License is distributed on an "AS IS" BASIS, 1299bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1399bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * See the License for the specific language governing permissions and 1499bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev * limitations under the License. 1599bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev */ 1699bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev 1799bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrevpackage com.android.hierarchyviewerlib.actions; 1899bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev 1999bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrevimport com.android.hierarchyviewerlib.models.TreeViewModel; 20901803a3b2aaeafb4074974ec5bf9b08cc39d1c8Konstantin Lopyrevimport com.android.hierarchyviewerlib.models.TreeViewModel.ITreeChangeListener; 2199bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev 2299bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrevimport org.eclipse.jface.action.Action; 2399bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrevimport org.eclipse.swt.widgets.Display; 2499bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev 25901803a3b2aaeafb4074974ec5bf9b08cc39d1c8Konstantin Lopyrevpublic class SelectedNodeEnabledAction extends Action implements ITreeChangeListener { 2699bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev public SelectedNodeEnabledAction(String name) { 2799bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev super(name); 2899bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev setEnabled(TreeViewModel.getModel().getTree() != null 2999bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev && TreeViewModel.getModel().getSelection() != null); 3099bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev TreeViewModel.getModel().addTreeChangeListener(this); 3199bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev } 3299bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev 33f526dc3bb658b07c5a96d0372b17ffa2fbbe6079Xavier Ducrohet @Override 3499bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev public void selectionChanged() { 3599bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev Display.getDefault().syncExec(new Runnable() { 36f526dc3bb658b07c5a96d0372b17ffa2fbbe6079Xavier Ducrohet @Override 3799bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev public void run() { 3899bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev setEnabled(TreeViewModel.getModel().getTree() != null 3999bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev && TreeViewModel.getModel().getSelection() != null); 4099bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev } 4199bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev }); 4299bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev } 4399bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev 44f526dc3bb658b07c5a96d0372b17ffa2fbbe6079Xavier Ducrohet @Override 4599bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev public void treeChanged() { 4699bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev Display.getDefault().syncExec(new Runnable() { 47f526dc3bb658b07c5a96d0372b17ffa2fbbe6079Xavier Ducrohet @Override 4899bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev public void run() { 4999bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev setEnabled(TreeViewModel.getModel().getTree() != null 5099bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev && TreeViewModel.getModel().getSelection() != null); 5199bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev } 5299bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev }); 5399bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev } 5499bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev 55f526dc3bb658b07c5a96d0372b17ffa2fbbe6079Xavier Ducrohet @Override 5699bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev public void viewportChanged() { 5799bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev } 5899bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev 59f526dc3bb658b07c5a96d0372b17ffa2fbbe6079Xavier Ducrohet @Override 6099bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev public void zoomChanged() { 6199bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev } 6299bd6912e7b5b97fc6d4bb787e76b2d9dfffd7aeKonstantin Lopyrev} 63