Search in sources :

Example 11 with Pair

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());
}
Also used : ListViewer(org.eclipse.jface.viewers.ListViewer) ArrayList(java.util.ArrayList) ActionUI(eu.esdihumboldt.hale.ui.io.action.ActionUI) Image(org.eclipse.swt.graphics.Image) LabelProvider(org.eclipse.jface.viewers.LabelProvider) Pair(eu.esdihumboldt.util.Pair)

Example 12 with Pair

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);
        }
    }
}
Also used : SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) SelectionEvent(org.eclipse.swt.events.SelectionEvent) MenuItem(org.eclipse.swt.widgets.MenuItem) RecentProjectsMenu(eu.esdihumboldt.hale.ui.service.project.RecentProjectsMenu) Menu(org.eclipse.swt.widgets.Menu) Point(org.eclipse.swt.graphics.Point) File(java.io.File) RecentResources(eu.esdihumboldt.hale.ui.service.project.RecentResources) Pair(eu.esdihumboldt.util.Pair)

Example 13 with Pair

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));
    }
}
Also used : DefinitionLabelProvider(eu.esdihumboldt.hale.ui.common.definition.viewer.DefinitionLabelProvider) DataSet(eu.esdihumboldt.hale.common.instance.model.DataSet) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) TypeIndexContentProvider(eu.esdihumboldt.hale.ui.common.definition.viewer.TypeIndexContentProvider) ArrayList(java.util.ArrayList) List(java.util.List) Image(org.eclipse.swt.graphics.Image) Pair(eu.esdihumboldt.util.Pair) TypeDefinition(eu.esdihumboldt.hale.common.schema.model.TypeDefinition)

Example 14 with Pair

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);
    }
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) MathTransform(org.opengis.referencing.operation.MathTransform) IOMessageImpl(eu.esdihumboldt.hale.common.core.io.report.impl.IOMessageImpl) Pair(eu.esdihumboldt.util.Pair)

Example 15 with Pair

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;
}
Also used : DriverConfiguration(eu.esdihumboldt.hale.io.jdbc.extension.DriverConfiguration) ISelection(org.eclipse.jface.viewers.ISelection) Driver(java.sql.Driver) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) URI(java.net.URI) Pair(eu.esdihumboldt.util.Pair) Nullable(javax.annotation.Nullable)

Aggregations

Pair (eu.esdihumboldt.util.Pair)33 ArrayList (java.util.ArrayList)11 TypeDefinition (eu.esdihumboldt.hale.common.schema.model.TypeDefinition)8 List (java.util.List)7 Instance (eu.esdihumboldt.hale.common.instance.model.Instance)6 Cell (eu.esdihumboldt.hale.common.align.model.Cell)4 Entity (eu.esdihumboldt.hale.common.align.model.Entity)4 EntityDefinition (eu.esdihumboldt.hale.common.align.model.EntityDefinition)4 Group (eu.esdihumboldt.hale.common.instance.model.Group)4 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)4 Point (org.eclipse.swt.graphics.Point)4 ParameterValue (eu.esdihumboldt.hale.common.align.model.ParameterValue)3 TypeEntityDefinition (eu.esdihumboldt.hale.common.align.model.impl.TypeEntityDefinition)3 IOMessageImpl (eu.esdihumboldt.hale.common.core.io.report.impl.IOMessageImpl)3 GroupPropertyDefinition (eu.esdihumboldt.hale.common.schema.model.GroupPropertyDefinition)3 IOException (java.io.IOException)3 URI (java.net.URI)3 Collection (java.util.Collection)3 QName (javax.xml.namespace.QName)3 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)3