Java tutorial
/******************************************************************************* * Copyright (c) 2004, 2007 Boeing. * 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: * Boeing - initial API and implementation *******************************************************************************/ package org.eclipse.osee.ote.ui.test.manager.preferences.environment; import java.util.ArrayList; import java.util.Iterator; import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.CheckboxTreeViewer; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.window.Window; import org.eclipse.osee.framework.jdk.core.type.TreeObject; import org.eclipse.osee.framework.jdk.core.type.TreeParent; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.osee.ote.ui.test.manager.util.EnvVariableDetailsDialogHelper; import org.eclipse.osee.ote.ui.test.manager.util.EnvVariableDialogHelper; import org.eclipse.swt.widgets.Composite; /** * @author Roberto E. Escobar */ public class EnvironmentPageEventHandler { private EnvironmentPreferenceNode currentSelection; private final EnvironmentPageDataViewer environmentPageDataViewer; private final ArrayList<EnvironmentPreferenceNode> treeInputList; private final CheckboxTreeViewer treeViewer; public EnvironmentPageEventHandler(Composite parent, CheckboxTreeViewer treeViewer, ArrayList<EnvironmentPreferenceNode> treeInputList) { this.treeViewer = treeViewer; this.treeInputList = treeInputList; this.environmentPageDataViewer = new EnvironmentPageDataViewer(parent); } public void editEnvVariable(EnvironmentPreferenceNode node) { EnvVariableDetailsDialogHelper selection = new EnvVariableDetailsDialogHelper(node.getEnvName(), node.getValue()); Displays.pendInDisplayThread(selection); if (selection.getResult() != Window.CANCEL) { node.setValue(selection.getSelection()); environmentPageDataViewer.update(); } } public void handleAddEnvironmentVariableEvent() { EnvVariableDialogHelper selection = new EnvVariableDialogHelper(); Displays.pendInDisplayThread(selection); if (selection.getResult() != Window.CANCEL) { this.addEnvironmentVariable(selection.getSelection()); treeViewer.refresh(); } } public void handleCheckStateChangeEvent(CheckStateChangedEvent event) { Object obj = event.getElement(); if (obj != null) { EnvironmentPreferenceNode tempSelection = null; if (obj instanceof EnvironmentPreferenceNode) { tempSelection = (EnvironmentPreferenceNode) obj; tempSelection.setChecked(event.getChecked()); currentSelection = tempSelection; environmentPageDataViewer.setNodeToDisplay(currentSelection); } } } public void handleEditVariableEvent() { ISelection sel = this.treeViewer.getSelection(); if (!sel.isEmpty()) { TreeObject selectedItem = (TreeObject) ((StructuredSelection) sel).getFirstElement(); if (selectedItem instanceof EnvironmentPreferenceNode) { editEnvVariable((EnvironmentPreferenceNode) selectedItem); } } } public void handleRemoveSelectedViewEvent() { StructuredSelection sel = (StructuredSelection) treeViewer.getSelection(); if (!sel.isEmpty()) { Iterator<?> it = sel.iterator(); while (it.hasNext()) { TreeObject leaf = (TreeObject) it.next(); if (leaf instanceof TreeParent) { treeInputList.remove(leaf); environmentPageDataViewer.setNodeToDisplay(null); } else { leaf.getParent().removeChild(leaf); environmentPageDataViewer.update(); } } treeViewer.refresh(); } } public void handleTreeSelectionEvent(SelectionChangedEvent event) { ISelection sel = event.getSelection(); if (!sel.isEmpty()) { TreeObject selectedItem = (TreeObject) ((StructuredSelection) sel).getFirstElement(); EnvironmentPreferenceNode tempSelection = null; if (selectedItem instanceof EnvironmentPreferenceNode) { tempSelection = (EnvironmentPreferenceNode) selectedItem; currentSelection = tempSelection; environmentPageDataViewer.setNodeToDisplay(currentSelection); } treeViewer.refresh(); } } private void addEnvironmentVariable(String name) { EnvironmentPreferenceNode node = new EnvironmentPreferenceNode(name); treeInputList.add(node); } }