use of eu.esdihumboldt.util.Pair in project hale by halestudio.
the class ActionUIWizardPage method createViewer.
/**
* @see ViewerWizardSelectionPage#createViewer(Composite)
*/
@Override
protected Pair<StructuredViewer, Control> createViewer(Composite parent) {
ListViewer viewer = new ListViewer(parent);
viewer.setLabelProvider(new LabelProvider() {
@Override
public Image getImage(Object element) {
if (element instanceof ActionUIWizardNode) {
return ((ActionUIWizardNode) element).getImage();
}
return super.getImage(element);
}
@Override
public String getText(Object element) {
if (element instanceof ActionUIWizardNode) {
return ((ActionUIWizardNode) element).getActionUI().getDisplayName();
}
return super.getText(element);
}
});
viewer.setContentProvider(ArrayContentProvider.getInstance());
List<ActionUI> list = ActionUIExtension.getInstance().getFactories(filter);
List<ActionUIWizardNode> nodes = new ArrayList<ActionUIWizardNode>();
for (ActionUI action : list) {
nodes.add(new ActionUIWizardNode(action, getContainer()));
}
viewer.setInput(nodes);
return new Pair<StructuredViewer, Control>(viewer, viewer.getControl());
}
use of eu.esdihumboldt.util.Pair in project hale by halestudio.
the class FileSourceFileFieldEditor method setContentTypes.
@Override
public void setContentTypes(Set<IContentType> types) {
super.setContentTypes(types);
RecentResources rr = PlatformUI.getWorkbench().getService(RecentResources.class);
if (rr != null) {
final List<Pair<URI, IContentType>> files = rr.getRecent(types, true);
if (!files.isEmpty()) {
historyButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
Menu filesMenu = new Menu(historyButton);
for (Pair<URI, IContentType> pair : files) {
final File file;
try {
file = new File(pair.getFirst());
if (file.exists()) {
// only offer existing files
MenuItem item = new MenuItem(filesMenu, SWT.PUSH);
item.setText(RecentProjectsMenu.shorten(file.toString(), 80, file.getName().length()));
item.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
String text = processFile(file);
if (text != null) {
getTextControl().setText(text);
getTextControl().setFocus();
valueChanged();
}
}
});
}
} catch (Exception e1) {
// ignore
}
}
Point histLoc = historyButton.getParent().toDisplay(historyButton.getLocation());
filesMenu.setLocation(histLoc.x, histLoc.y + historyButton.getSize().y);
filesMenu.setVisible(true);
}
});
historyButton.setEnabled(true);
}
}
}
use of eu.esdihumboldt.util.Pair in project hale by halestudio.
the class DataSetTypeSelectionDialog method setupViewer.
@Override
protected void setupViewer(TreeViewer viewer, Pair<TypeDefinition, DataSet> initialSelection) {
viewer.setLabelProvider(new DefinitionLabelProvider(viewer) {
@Override
public String getText(Object element) {
if (element instanceof DataSet) {
switch((DataSet) element) {
case TRANSFORMED:
return "Transformed";
case SOURCE:
default:
return "Source";
}
}
if (element instanceof Pair) {
element = ((Pair<?, ?>) element).getFirst();
}
return super.getText(element);
}
@Override
public Image getImage(Object element) {
if (element instanceof DataSet) {
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
}
if (element instanceof Pair) {
element = ((Pair<?, ?>) element).getFirst();
}
return super.getImage(element);
}
});
viewer.setContentProvider(new TypeIndexContentProvider(viewer) {
@Override
public Object[] getElements(Object inputElement) {
return types.keySet().toArray();
}
@Override
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof DataSet) {
DataSet dataSet = (DataSet) parentElement;
List<Pair<TypeDefinition, DataSet>> typeList = new ArrayList<Pair<TypeDefinition, DataSet>>();
for (TypeDefinition type : types.get(dataSet)) {
typeList.add(new Pair<TypeDefinition, DataSet>(type, dataSet));
}
return typeList.toArray();
}
return new Object[] {};
}
@Override
public boolean hasChildren(Object parentElement) {
return parentElement instanceof DataSet && !types.get((DataSet) parentElement).isEmpty();
}
});
viewer.setAutoExpandLevel(2);
viewer.setInput(types);
if (initialSelection != null) {
viewer.setSelection(new StructuredSelection(initialSelection));
}
}
use of eu.esdihumboldt.util.Pair in project hale by halestudio.
the class AbstractGeoInstanceWriter method convertGeometry.
/**
* Convert the given geometry to the target CRS, if possible (and a target
* CRS is set).
*
* @param geom the geometry to convert
* @param sourceCrs the source CRS
* @param report the reporter
* @return a pair of geometry and CRS definition, either the converted
* geometry and the target CRS or the given geometry and the source
* CRS
*/
protected Pair<Geometry, CRSDefinition> convertGeometry(Geometry geom, CRSDefinition sourceCrs, IOReporter report) {
if (getTargetCRS() != null && getTargetCRS().getCRS() != null) {
if (sourceCrs != null && sourceCrs.getCRS() != null) {
try {
// TODO cache mathtransforms?
MathTransform transform = CRS.findMathTransform(sourceCrs.getCRS(), getTargetCRS().getCRS());
Geometry targetGeometry = JTS.transform(geom, transform);
return new Pair<>(targetGeometry, getTargetCRS());
} catch (Exception e) {
if (report != null) {
report.error(new IOMessageImpl("Could not convert geometry to target CRS", e));
}
// return original geometry
return new Pair<>(geom, sourceCrs);
}
} else {
// valid source CRS was passed
if (report != null) {
report.error(new IOMessageImpl("Could not convert geometry to target CRS: No source CRS provided", null));
}
return new Pair<>(geom, sourceCrs);
}
} else {
// return original geometry
return new Pair<>(geom, sourceCrs);
}
}
use of eu.esdihumboldt.util.Pair in project hale by halestudio.
the class JDBCComponents method buildURI.
/**
* Build a JDBC URI from UI components
*
* @param page the dialog page
* @param driver the driver selector
* @param host the host field
* @param database the database field
* @return the JDBC URI or <code>null</code>
*/
@Nullable
public static URI buildURI(DialogPage page, ComboViewer driver, Text host, Text database) {
page.setErrorMessage(null);
if (driver != null) {
ISelection sel = driver.getSelection();
if (!sel.isEmpty() && sel instanceof IStructuredSelection) {
@SuppressWarnings({ "unchecked" }) Pair<DriverConfiguration, Driver> driverInfo = (Pair<DriverConfiguration, Driver>) ((IStructuredSelection) sel).getFirstElement();
try {
URI uri = driverInfo.getFirst().getURIBuilder().createJdbcUri(host.getText(), database.getText());
if (driverInfo.getSecond() == null || driverInfo.getSecond().acceptsURL(uri.toString())) {
return uri;
}
} catch (Exception e) {
page.setErrorMessage(e.getLocalizedMessage());
}
}
page.setMessage(null);
} else {
page.setMessage("Please select a JDBC database driver", DialogPage.INFORMATION);
}
return null;
}
Aggregations