blob: 8544f9eafd847a4bd4bb022c94cb8b83005e7ef9 [file] [log] [blame]
/*******************************************************************************
* 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);
}
}