blob: fa7db5ef7ccd249abbb647e1640db44d85bc2099 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.taeconfigurator;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.swt.SWT;
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.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.dialogs.PropertyPage;
public class CDEpropertyPage extends PropertyPage {
private static final String DATAPATH_LABEL = "&Data Path:";
private static final String DATAPATH_PROPERTY_KEY = "CDEdataPath";
private static final String DEFAULT_DATAPATH = "";
private static final String BY_DEFAULT_PROPERTY_KEY = "CDEByDefault";
private static final String ADD_TO_FLOW_PROPERTY_KEY = "CDEAddToFlow";
// private static final int TEXT_FIELD_WIDTH = 50;
private Text dataPathUI;
public CDEpropertyPage() {
super();
}
/**
* @see PreferencePage#createContents(Composite)
*/
protected Control createContents(Composite parent) {
Composite composite = create2ColComposite(parent);
Label instructions = new Label(composite, SWT.WRAP);
instructions
.setText("Enter the data path to use for finding resources by name;\n"
+ "This is a series of absolute paths, separated by\n"
+ "whatever character this platform uses for path separation (similar to class paths).\n\n");
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
gd.grabExcessHorizontalSpace = true;
instructions.setLayoutData(gd);
new Label(composite, SWT.NONE).setText(DATAPATH_LABEL);
dataPathUI = new Text(composite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
gd = new GridData(GridData.FILL_BOTH);
dataPathUI.setLayoutData(gd);
try {
String dataPath = ((IResource) getElement()).getPersistentProperty(new QualifiedName("",
DATAPATH_PROPERTY_KEY));
dataPathUI.setText((dataPath != null) ? dataPath : DEFAULT_DATAPATH);
} catch (CoreException e) {
dataPathUI.setText(DEFAULT_DATAPATH);
}
return composite;
}
private Composite create2ColComposite(Composite parent) {
Composite composite = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
composite.setLayout(layout);
GridData data = new GridData();
data.verticalAlignment = GridData.FILL;
data.horizontalAlignment = GridData.FILL;
composite.setLayoutData(data);
return composite;
}
protected void performDefaults() {
dataPathUI.setText(DEFAULT_DATAPATH);
}
public boolean performOk() {
// store the value in the owner text field
try {
((IResource) getElement()).setPersistentProperty(
new QualifiedName("", DATAPATH_PROPERTY_KEY), dataPathUI.getText());
} catch (CoreException e) {
return false;
}
return true;
}
public static String getDataPath(IProject project) {
String dataPath;
try {
dataPath = project.getPersistentProperty(new QualifiedName("", DATAPATH_PROPERTY_KEY));
} catch (CoreException e) {
dataPath = "";
}
if (null == dataPath)
dataPath = "";
return dataPath;
}
public static void setDataPath(IProject project, String dataPath) {
try {
project.setPersistentProperty(new QualifiedName("", DATAPATH_PROPERTY_KEY), dataPath);
} catch (CoreException e) {
throw new InternalErrorCDE("unhandled exception", e);
}
}
public static String getImportByDefault(IProject project) {
String byDefault;
try {
byDefault = project.getPersistentProperty(new QualifiedName("", BY_DEFAULT_PROPERTY_KEY));
} catch (CoreException e) {
byDefault = "";
}
if (null == byDefault)
byDefault = "";
return byDefault;
}
public static void setImportByDefault(IProject project, String byDefault) {
try {
project.setPersistentProperty(new QualifiedName("", BY_DEFAULT_PROPERTY_KEY), byDefault);
} catch (CoreException e) {
throw new InternalErrorCDE("unhandled exception", e);
}
}
public static String getAddToFlow(IProject project) {
String byDefault;
try {
byDefault = project.getPersistentProperty(new QualifiedName("", ADD_TO_FLOW_PROPERTY_KEY));
} catch (CoreException e) {
byDefault = "";
}
if (null == byDefault)
byDefault = "";
return byDefault;
}
public static void setAddToFlow(IProject project, String byDefault) {
try {
project.setPersistentProperty(new QualifiedName("", ADD_TO_FLOW_PROPERTY_KEY), byDefault);
} catch (CoreException e) {
throw new InternalErrorCDE("unhandled exception", e);
}
}
}