/**
SpagoBI, the Open Source Business Intelligence suite
Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this file,
You can obtain one at http://mozilla.org/MPL/2.0/.
**/
package it.eng.spagobi.studio.geo.editors;
import it.eng.spagobi.studio.geo.Activator;
import it.eng.spagobi.studio.geo.editors.model.bo.DefaultsBO;
import it.eng.spagobi.studio.geo.editors.model.bo.GuiSettingsBO;
import it.eng.spagobi.studio.geo.editors.model.bo.WindowBO;
import it.eng.spagobi.studio.geo.editors.model.geo.Defaults;
import it.eng.spagobi.studio.geo.editors.model.geo.GEODocument;
import it.eng.spagobi.studio.geo.editors.model.geo.GuiParam;
import it.eng.spagobi.studio.geo.editors.model.geo.GuiSettings;
import it.eng.spagobi.studio.geo.editors.model.geo.Hierarchy;
import it.eng.spagobi.studio.geo.editors.model.geo.Param;
import it.eng.spagobi.studio.geo.editors.model.geo.Window;
import java.util.Vector;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.plugin.AbstractUIPlugin;
public class GuiSettingsDesigner {
private GEOEditor editor=null;
private Composite mainComposite;
private GEODocument geoDocument;
private GuiSettings guiSettings;
private final int TYPE_WINDOWS=1;
private final int TYPE_PARAMS=2;
public GuiSettings getGuiSettings() {
return guiSettings;
}
public void setGuiSettings(GuiSettings guiSettings) {
this.guiSettings = guiSettings;
}
final ImageDescriptor addIcon = AbstractUIPlugin
.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/add.gif");
final ImageDescriptor paramsIcon = AbstractUIPlugin
.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/linkParams.gif");
final ImageDescriptor eraseIcon = AbstractUIPlugin
.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/erase.gif");
final ImageDescriptor detailIcon = AbstractUIPlugin
.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/detail.gif");
public GuiSettingsDesigner(Composite _composite, GEOEditor _editor, GEODocument _geoDocument) {
super();
mainComposite= _composite;
editor = _editor;
geoDocument = _geoDocument;
}
public void createGuiSettingsWindows(final Composite sectionClient, FormToolkit toolkit){
RowLayout rl = new RowLayout();
rl.fill=true;
rl.wrap=true;
// look up for guisettings stored in geodocument
guiSettings = GuiSettingsBO.getGuiSettings(geoDocument);
//create defaults group
createDefaults(sectionClient, toolkit);
//windows section - navigation
createWindowGroup("Navigation", toolkit, rl);
createWindowGroup("Measures", toolkit, rl);
createWindowGroup("Layers", toolkit, rl);
//createWindowGroup("Detail", toolkit, rl);
createWindowGroup("Legend", toolkit, rl);
createWindowGroup("Colourpicker", toolkit, rl);
sectionClient.redraw();
}
private void createDefaults(final Composite sectionClient, FormToolkit toolkit){
Defaults defaults = DefaultsBO.setNewDefaults(geoDocument);
final Vector<GuiParam> params =defaults.getParams();
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = false;
gridData.widthHint=340;
final Group guiGroup = new Group(mainComposite, SWT.FILL);
guiGroup.setText("Defaults");
//guiGroup.setLayout(mainComposite.getLayout());
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 1;
guiGroup.setLayout(gridLayout);
FormLayout formLayout = new FormLayout ();
formLayout.marginWidth = 5;
formLayout.marginHeight = 5;
formLayout.spacing = 5;
Composite formComp = toolkit.createComposite(guiGroup, SWT.NONE);
formComp.setLayout (formLayout);
formComp.setLayoutData(gridData);
Label visLabel = new Label (formComp, SWT.RIGHT);
visLabel.setText ("Visible:");
FormData data = new FormData ();
data.width = 40;
visLabel.setLayoutData (data);
final Combo visible = new Combo(formComp, SWT.SIMPLE | SWT.DROP_DOWN | SWT.READ_ONLY);
visible.add("true");
visible.add("false");
final GuiParam[] paramVis = new GuiParam[1];
for(int i=0; i<params.size(); i++){
GuiParam param = params.elementAt(i);
if(param.getName().equalsIgnoreCase("visible")){
String val = param.getValue();
visible.getItems();
for(int j=0; j<visible.getItems().length; j++){
if(visible.getItems()[j].equalsIgnoreCase(val)){
visible.select(j);
paramVis[0]=param;
}
}
}
}
visible.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
if(paramVis[0] == null){
paramVis[0] = new GuiParam();
paramVis[0].setValue(visible.getText());
paramVis[0].setName("visible");
params.add(paramVis[0]);
}else
paramVis[0].setValue(visible.getText());
editor.setIsDirty(true);
}
});
data = new FormData ();
data.width = 120;
data.left = new FormAttachment (visLabel, 0, SWT.DEFAULT);
data.right = new FormAttachment (100, 0);
visible.setLayoutData (data);
Label yLabel = new Label (formComp, SWT.RIGHT);
yLabel.setText ("Y:");
data = new FormData ();
data.width = 40;
data.top = new FormAttachment(visible, 5);
yLabel.setLayoutData (data);
final Text y = toolkit.createText(formComp, "", SWT.BORDER);
data = new FormData ();
data.width = 120;
data.left = new FormAttachment (yLabel, 0, SWT.DEFAULT);
data.right = new FormAttachment (100, 0);
data.top = new FormAttachment (yLabel, 0, SWT.CENTER);
y.setLayoutData (data);
final GuiParam[] paramY = new GuiParam[1];
for(int i=0; i<params.size(); i++){
GuiParam param = params.elementAt(i);
if(param.getName().equalsIgnoreCase("y")){
String val = param.getValue();
y.setText(val);
paramY[0]= param;
}
}
y.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
if(paramY[0] == null){
paramY[0] = new GuiParam();
paramY[0].setValue(y.getText());
paramY[0].setName("y");
params.add(paramY[0]);
}else
paramY[0].setValue(y.getText());
editor.setIsDirty(true);
}
});
/*Modified 20/01/10 (IT WAS A BUG)*/
Label transformLabel = new Label (formComp, SWT.RIGHT);
transformLabel.setText ("Transform:");
data = new FormData ();
data.width = 60;
data.top = new FormAttachment(y, 5);
transformLabel.setLayoutData (data);
final Text transform = toolkit.createText(formComp, "scale(1.0)", SWT.BORDER);
data = new FormData ();
data.width = 100;
data.left = new FormAttachment (transformLabel, 0, SWT.DEFAULT);
data.right = new FormAttachment (100, 0);
data.top = new FormAttachment (transformLabel, 0, SWT.CENTER);
transform.setLayoutData (data);
final GuiParam[] paramTransform = new GuiParam[1];
for(int i=0; i<params.size(); i++){
GuiParam param = params.elementAt(i);
if(param.getName().equalsIgnoreCase("transform")){
String val = param.getValue();
transform.setText(val);
paramTransform[0]= param;
}
}
transform.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
if(paramTransform[0] == null){
paramTransform[0] = new GuiParam();
paramTransform[0].setValue(transform.getText());
paramTransform[0].setName("transform");
params.add(paramTransform[0]);
}else
paramTransform[0].setValue(transform.getText());
editor.setIsDirty(true);
}
});
/*end modified*/
Label styleLabel = new Label (formComp, SWT.RIGHT);
styleLabel.setText ("Styles:");
data = new FormData ();
data.width = 40;
data.top = new FormAttachment(transform, 5);
styleLabel.setLayoutData (data);
final Text style = toolkit.createText(formComp, "", SWT.BORDER | SWT.MULTI | SWT.WRAP );
data = new FormData ();
data.width = 120;
data.height=60;
data.left = new FormAttachment (styleLabel, 0, SWT.DEFAULT);
data.right = new FormAttachment (100, 0);
data.top = new FormAttachment (styleLabel, 0, SWT.TOP);
style.setLayoutData (data);
final GuiParam[] paramStyle = new GuiParam[1];
for(int i=0; i<params.size(); i++){
GuiParam param = params.elementAt(i);
if(param.getName().equalsIgnoreCase("styles")){
String val = param.getValue();
style.setText(val);
paramStyle[0]=param;
}
}
style.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
if(paramStyle[0] == null){
paramStyle[0] = new GuiParam();
paramStyle[0].setValue(style.getText());
paramStyle[0].setName("styles");
params.add(paramStyle[0]);
}else
paramStyle[0].setValue(style.getText());
editor.setIsDirty(true);
}
});
Label minLabel = new Label (formComp, SWT.RIGHT);
minLabel.setText ("Minimized:");
data = new FormData ();
data.width = 40;
data.top = new FormAttachment(style, 5);
minLabel.setLayoutData (data);
final Combo minim = new Combo(formComp, SWT.SIMPLE | SWT.DROP_DOWN | SWT.READ_ONLY);
minim.add("true");
minim.add("false");
final GuiParam[] paramMin = new GuiParam[1];
for(int i=0; i<params.size(); i++){
GuiParam param = params.elementAt(i);
if(param.getName().equalsIgnoreCase("minimized")){
String val = param.getValue();
minim.getItems();
for(int j=0; j<minim.getItems().length; j++){
if(minim.getItems()[j].equalsIgnoreCase(val)){
minim.select(j);
paramMin[0]=param;
}
}
}
}
minim.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
if(paramMin[0] == null){
paramMin[0] = new GuiParam();
paramMin[0].setValue(minim.getText());
paramMin[0].setName("minimized");
params.add(paramMin[0]);
}else
paramMin[0].setValue(minim.getText());
editor.setIsDirty(true);
}
});
data = new FormData ();
data.width = 120;
data.left = new FormAttachment (minLabel, 0, SWT.DEFAULT);
data.right = new FormAttachment (100, 0);
data.top = new FormAttachment (minLabel, 0, SWT.CENTER);
minim.setLayoutData (data);
}
public void createGuiSettingsParams(final Composite sectionClient, FormToolkit toolkit){
RowLayout rl = new RowLayout();
rl.fill=true;
rl.wrap=true;
// look up for guisettings stored in geodocument
guiSettings = GuiSettingsBO.getGuiSettings(geoDocument);
createParamsGroup(toolkit, rl);
sectionClient.redraw();
}
private void createParamsGroup(FormToolkit toolkit, RowLayout rl){
final Group guiGroup = new Group(mainComposite, SWT.FILL);
guiGroup.setLayout(rl);
guiGroup.setLayout(mainComposite.getLayout());
GridData gd = new GridData(GridData.FILL_BOTH);
gd.horizontalSpan =4;
gd.heightHint=75;
gd.minimumHeight=60;
gd.verticalAlignment=SWT.TOP;
final Table guiWindowsTable = toolkit.createTable(guiGroup, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
guiWindowsTable.setLayoutData(gd);
guiWindowsTable.setLinesVisible(true);
guiWindowsTable.setHeaderVisible(true);
String[] titles = { " Parameter Name ", " Value "};
for (int i = 0; i < titles.length; i++) {
TableColumn column = new TableColumn(guiWindowsTable, SWT.NONE);
column.setText(titles[i]);
}
if (guiSettings != null && guiSettings.getParams() != null ) {
Vector<GuiParam> params = guiSettings.getParams();
for(int j=0; j< params.size(); j++){
TableItem item = new TableItem(guiWindowsTable, SWT.TRANSPARENT);
createGUIRow(item, guiWindowsTable, params.elementAt(j));
}
}
for (int i = 0; i < titles.length; i++) {
guiWindowsTable.getColumn(i).pack();
}
//rightClick --> menu
guiWindowsTable.addListener(SWT.MouseDown, new Listener () {
public void handleEvent (Event event) {
if (event.button==3){
createMenu(guiWindowsTable, null);
}
}
});
guiWindowsTable.redraw();
//form to add parameters
createInsertParamForm(null, toolkit, guiGroup, guiWindowsTable);
}
private void createWindowGroup(final String forWindow, FormToolkit toolkit, RowLayout rl){
final Group guiGroup = new Group(mainComposite, SWT.FILL);
guiGroup.setText(forWindow);
guiGroup.setLayout(rl);
guiGroup.setLayout(mainComposite.getLayout());
GridData gd = new GridData(GridData.FILL_BOTH);
gd.horizontalSpan =1;
gd.heightHint=75;
gd.minimumHeight=60;
gd.verticalAlignment=SWT.TOP;
final Table guiWindowsTable = toolkit.createTable(guiGroup, SWT.MULTI | SWT.BORDER
| SWT.FULL_SELECTION);
guiWindowsTable.setLayoutData(gd);
guiWindowsTable.setLinesVisible(true);
guiWindowsTable.setHeaderVisible(true);
String[] titles = { "Parameter Name", "Value"};
for (int i = 0; i < titles.length; i++) {
TableColumn column = new TableColumn(guiWindowsTable, SWT.NONE);
column.setText(titles[i]);
}
if (guiSettings != null && guiSettings.getWindows() != null && guiSettings.getWindows().getWindow() != null) {
Window window = WindowBO.getWindowByName(geoDocument, forWindow);
if(window != null){
Vector<GuiParam> params = window.getParams();
for(int j=0; j< params.size(); j++){
TableItem item = new TableItem(guiWindowsTable, SWT.TRANSPARENT);
createGUIRow(item, guiWindowsTable, params.elementAt(j));
}
}
}
for (int i = 0; i < titles.length; i++) {
guiWindowsTable.getColumn(i).pack();
}
//rightClick --> menu
guiWindowsTable.addListener(SWT.MouseDown, new Listener () {
public void handleEvent (Event event) {
if (event.button==3){
Window window = WindowBO.getWindowByName(geoDocument, forWindow);
createMenu(guiWindowsTable, window);
}
}
});
guiWindowsTable.redraw();
//form to add parameters
createInsertParamForm(forWindow, toolkit, guiGroup, guiWindowsTable);
}
private void createMenu(final Table table, final Window window){
Menu menu = new Menu (mainComposite.getShell(), SWT.POP_UP);
MenuItem menuItem = new MenuItem (menu, SWT.PUSH);
menuItem.setText ("Delete");
menuItem.addListener(SWT.Selection, new Listener () {
public void handleEvent (Event event) {
TableItem[] sel = table.getSelection();
if(sel[0] != null){
if(window != null){
deleteItemWindow(table, sel[0], window);
}else{
deleteItemParams(table, sel[0]);
}
}else{
MessageDialog.openWarning(mainComposite.getShell(), "Warning", "Please select an item to delete");
}
}
});
table.setMenu(menu);
}
private void deleteItemWindow(Table table, TableItem item, Window window){
WindowBO.deleteParamByName(window, item.getText(0));
item.dispose();
//table.pack();
table.redraw();
editor.setIsDirty(true);
}
private void deleteItemParams(Table table, TableItem item){
GuiSettingsBO.deleteParamByName(geoDocument, item.getText(0));
item.dispose();
//table.pack();
table.redraw();
editor.setIsDirty(true);
}
private void createInsertParamForm(final String windowName, FormToolkit toolkit, Group group, final Table table){
FormLayout formLayout = new FormLayout ();
formLayout.marginWidth = 5;
formLayout.marginHeight = 5;
formLayout.spacing = 5;
final Composite formComp = toolkit.createComposite(group, SWT.NONE);
formComp.setLayout (formLayout);
Label label = new Label (formComp, SWT.RIGHT);
label.setText ("Name:");
FormData data = new FormData ();
data.width = 40;
label.setLayoutData (data);
int type =TYPE_WINDOWS;
if(windowName == null){
type =TYPE_PARAMS;
}
final Combo text = createParamCombo(formComp, type);
data = new FormData ();
data.width = 80;
data.left = new FormAttachment (label, 0, SWT.DEFAULT);
data.right = new FormAttachment (100, 0);
text.setLayoutData (data);
formComp.setData(text.getText());
Label labelVal = new Label (formComp, SWT.RIGHT);
labelVal.setText ("Value:");
data = new FormData ();
data.width = 40;
data.top = new FormAttachment(text, 5);
labelVal.setLayoutData (data);
final Text textVal = toolkit.createText(formComp, "", SWT.BORDER);
data = new FormData ();
data.width = 80;
data.left = new FormAttachment (labelVal, 0, SWT.DEFAULT);
data.right = new FormAttachment (100, 0);
data.top = new FormAttachment (labelVal, 0, SWT.CENTER);
textVal.setLayoutData (data);
formComp.setData(textVal.getText());
//listener on name
text.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event) {
if(windowName == null){
GuiParam param = GuiSettingsBO.getParamByName(geoDocument, text.getText());
if(param != null){
MessageDialog.openWarning(mainComposite.getShell(), "Warning", "Another parameter with the same name is already defined.");
text.deselectAll();
}
}else{
Window window = WindowBO.getWindowByName(geoDocument, windowName);
if(window != null){
GuiParam param = WindowBO.getParamByName(window, text.getText());
if(param != null){
MessageDialog.openWarning(mainComposite.getShell(), "Warning", "Another parameter with the same name is already defined.");
text.deselectAll();
}
}
//if styles selected--> textarea
if(text.getText().equals("styles")){
createInputStyleShell(window, table, windowName);
}
}
}
});
Button ok = new Button (formComp, SWT.PUSH);
ok.setText ("Add");
data = new FormData ();
data.width = 40;
data.top = new FormAttachment(textVal, 5);
data.right = new FormAttachment (100, 0);
ok.setLayoutData (data);
ok.addSelectionListener (new SelectionAdapter () {
public void widgetSelected (SelectionEvent e) {
GuiParam param = new GuiParam();
param.setName(text.getText());
param.setValue(textVal.getText());
//add parameter to windows bean
if(windowName != null){
Window window = WindowBO.getWindowByName(geoDocument, windowName);
//insert in geodocument
if(window != null){
Vector params = window.getParams();
if(params != null){
params.add(param);
}else{
params = new Vector<Param>();
window.setParams(params);
}
}else{
//crea window
Window newWindow = WindowBO.setNewWindow(geoDocument);
newWindow.setName(windowName.toLowerCase());
Vector params = newWindow.getParams();
if(params != null){
params.add(param);
}else{
params = new Vector<Param>();
params.add(param);
newWindow.setParams(params);
}
}
}else{
//add parameter to guisettings
Vector<GuiParam> params = guiSettings.getParams();
if(params == null){
params = new Vector<GuiParam>();
guiSettings.setParams(params);
}
params.add(param);
}
TableItem item = new TableItem(table, SWT.NONE);
createGUIRow(item, table, param);
//clean combo and text
text.deselectAll();
textVal.setText("");
text.redraw();
textVal.redraw();
editor.setIsDirty(true);
}
});
}
private void createInputStyleShell(final Window window, final Table table, final String windowName){
// System.out.println(window);
final Shell dialog = new Shell (mainComposite.getDisplay(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
dialog.setText("Insert Styles");
FormLayout formLayout = new FormLayout ();
formLayout.marginWidth = 10;
formLayout.marginHeight = 10;
formLayout.spacing = 10;
dialog.setLayout (formLayout);
Label label = new Label (dialog, SWT.RIGHT);
label.setText ("Styles:");
FormData data = new FormData ();
data.width = 40;
label.setLayoutData (data);
Button cancel = new Button (dialog, SWT.PUSH);
cancel.setText ("Cancel");
data = new FormData ();
data.width = 60;
data.right = new FormAttachment (100, 0);
data.bottom = new FormAttachment (100, 0);
cancel.setLayoutData (data);
cancel.addSelectionListener (new SelectionAdapter () {
public void widgetSelected (SelectionEvent e) {
// System.out.println("User cancelled dialog");
dialog.close ();
}
});
final GuiParam[] paramStyle = new GuiParam[1];
final Text text = new Text (dialog, SWT.BORDER | SWT.WRAP | SWT.MULTI);
if(window != null && window.getParams() != null){
for(int i=0; i<window.getParams().size(); i++){
GuiParam param = window.getParams().elementAt(i);
if(param.getName().equalsIgnoreCase("styles")){
String val = param.getValue();
text.setText(val);
paramStyle[0]=param;
}
}
}
data = new FormData ();
data.width = 180;
data.height=100;
data.left = new FormAttachment (label, 0, SWT.DEFAULT);
data.right = new FormAttachment (100, 0);
data.top = new FormAttachment (label, 0, SWT.TOP);
data.bottom = new FormAttachment (cancel, 0, SWT.DEFAULT);
text.setLayoutData (data);
final Button ok = new Button (dialog, SWT.PUSH);
ok.setText ("OK");
data = new FormData ();
data.width = 60;
data.right = new FormAttachment (cancel, 0, SWT.DEFAULT);
data.bottom = new FormAttachment (100, 0);
ok.setLayoutData (data);
ok.addSelectionListener (new SelectionAdapter () {
public void widgetSelected (SelectionEvent e) {
Window win = window;
if(window == null){
win = WindowBO.setNewWindow(geoDocument);
win.setName(windowName);
}
String style = text.getText();
if(paramStyle[0] == null){
paramStyle[0] = new GuiParam();
paramStyle[0].setValue(style);
paramStyle[0].setName("styles");
if(win.getParams() != null){
win.getParams().add(paramStyle[0]);
}else{
Vector<GuiParam> params = new Vector<GuiParam>();
params.add(paramStyle[0]);
win.setParams(params);
}
}else{
paramStyle[0].setValue(style);
}
TableItem item = new TableItem(table, SWT.NONE);
// System.out.println(item);
// System.out.println(table);
// System.out.println(paramStyle[0]);
createGUIRow(item, table, paramStyle[0]);
table.redraw();
editor.setIsDirty(true);
dialog.close ();
}
});
dialog.setDefaultButton (ok);
dialog.pack ();
dialog.open ();
}
private void createGUIRow(TableItem item, final Table guiTable, GuiParam param){
if(param.getName() != null){
item.setText(0, param.getName());
}
if(param.getValue() != null ){
if(param.getName().equalsIgnoreCase("styles")){
String shortVal = param.getValue();
if(shortVal.length()>10){
shortVal = shortVal.substring(0, 10);
}
item.setText(1, shortVal);
}else{
item.setText(1, param.getValue());
}
}
guiTable.redraw();
}
private Combo createParamCombo(Composite composite, int type){
Combo combo= new Combo(composite, SWT.SIMPLE | SWT.DROP_DOWN | SWT.READ_ONLY);
if(type == TYPE_PARAMS){
combo.add("defaultDrillNav");
combo.add("highlightOnMouseOver");
combo.add("normalizeChartValues");
combo.add("chartScale");
combo.add("chartWidth");
combo.add("chartHeight");
combo.add("valueFont");
combo.add("valueScale");
}else if(type == TYPE_WINDOWS){
combo.add("visible");
combo.add("width");
combo.add("height");
combo.add("x");
combo.add("y");
combo.add("moovable");
combo.add("xMin");
combo.add("yMin");
combo.add("xMax");
combo.add("yMax");
combo.add("showContent");
combo.add("margin");
combo.add("titleBarVisible");
combo.add("statusBarVisible");
combo.add("title");
combo.add("statusBarContent");
combo.add("closeButtonVisible");
combo.add("minimizeButtonVisible");
combo.add("maximizeButtonVisible");
combo.add("minimized");
combo.add("transform");
combo.add("styles");
}
return combo;
}
public GEOEditor getEditor() {
return editor;
}
public void setEditor(GEOEditor editor) {
this.editor = editor;
}
public Composite getMainComposite() {
return mainComposite;
}
public void setMainComposite(Composite mainComposite) {
this.mainComposite = mainComposite;
}
public GEODocument getGeoDocument() {
return geoDocument;
}
public void setGeoDocument(GEODocument geoDocument) {
this.geoDocument = geoDocument;
}
}