blob: eeebfb51056cc5573cf18c4b98b3d94a6c814a1e [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 org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
/**
* @author Roberto E. Escobar
*/
public class EnvironmentPageDataViewer {
private Group environmentVariable;
private EnvironmentPreferenceNode nodeToDisplay;
private final ArrayList<StyleRange> styleArray;
private StyledText textArea;
public EnvironmentPageDataViewer(Composite parent) {
createArea(parent);
styleArray = new ArrayList<>();
}
public void clearTextArea() {
textArea.setText("");
styleArray.clear();
textArea.redraw();
}
public void setNodeToDisplay(EnvironmentPreferenceNode nodeToDisplay) {
this.nodeToDisplay = nodeToDisplay;
update();
}
public void setTitleName(String name) {
environmentVariable.setText("Preview Environment Variable: " + name);
environmentVariable.redraw();
}
public void update() {
clearTextArea();
if (nodeToDisplay != null) {
setTitleName(nodeToDisplay.getEnvName());
addEntry(nodeToDisplay.getEnvName(), nodeToDisplay.getValue());
} else {
setTitleName("NONE SELECTED");
}
}
private void addEntry(String name, String value) {
addEntryName(name);
addEntryValue(value);
}
private void addEntryName(String name) {
if (name != null) {
String temp = textArea.getText();
temp += "\n\t";
int startIndex = temp.length();
temp += name;
textArea.setText(temp);
StyleRange tempStyle = new StyleRange();
styleArray.add(tempStyle);
tempStyle.fontStyle = SWT.BOLD;
tempStyle.start = startIndex;
tempStyle.length = name.length();
tempStyle.underline = true;
tempStyle.foreground = Displays.getSystemColor(SWT.COLOR_DARK_BLUE);
textArea.setStyleRanges(styleArray.toArray(new StyleRange[styleArray.size()]));
textArea.redraw();
}
}
private void addEntryValue(String value) {
if (value != null) {
String temp = textArea.getText();
temp += " = ";
int startIndex = temp.length();
String toAdd = value.replaceAll(":", ":\n\t\t");
temp += toAdd;
textArea.setText(temp + "\n");
StyleRange tempStyle = new StyleRange();
styleArray.add(tempStyle);
tempStyle.fontStyle = SWT.ITALIC;
tempStyle.start = startIndex;
tempStyle.length = toAdd.length();
tempStyle.foreground = Displays.getSystemColor(SWT.COLOR_BLACK);
textArea.setStyleRanges(styleArray.toArray(new StyleRange[styleArray.size()]));
textArea.redraw();
}
}
private Control createArea(Composite parent) {
GridData d = new GridData(GridData.FILL_BOTH);
environmentVariable = new Group(parent, SWT.NONE);
environmentVariable.setText("Preview Environment Variable:");
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 1;
environmentVariable.setLayout(gridLayout);
environmentVariable.setLayoutData(d);
Composite topLevelComposite = new Composite(environmentVariable, SWT.NONE);
gridLayout = new GridLayout();
gridLayout.numColumns = 1;
topLevelComposite.setLayout(gridLayout);
topLevelComposite.setLayoutData(d);
topLevelComposite.setToolTipText("Select a Value From the Tree to Display");
textArea = new StyledText(topLevelComposite, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
textArea.setEditable(false);
GridLayout gL = new GridLayout();
gL.numColumns = 1;
textArea.setLayout(gL);
textArea.setLayoutData(d);
textArea.setBackground(Displays.getSystemColor(SWT.COLOR_WHITE));
textArea.setToolTipText("Select a Value From the Tree to Display");
return parent;
}
}