blob: 159666819f528aab36842614d3a6c85ad206b3ce [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 Soft-Maint.
* 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:
* Jonathan Pepin (Soft-Maint) - Bug 463907 - Command for load and save Facet serialization
*******************************************************************************/
package org.eclipse.modisco.facet.efacet.ui.internal.widget;
import org.eclipse.emf.common.util.URI;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.modisco.facet.efacet.ui.internal.Activator;
import org.eclipse.modisco.facet.efacet.ui.internal.Messages;
import org.eclipse.modisco.facet.efacet.ui.internal.exported.widget.IUriWidget;
import org.eclipse.modisco.facet.util.core.Logger;
import org.eclipse.modisco.facet.util.ui.internal.exported.dialog.IOkDialogFactory;
import org.eclipse.modisco.facet.util.ui.utils.UIUtils;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class UriWidget extends Composite implements IUriWidget {
private final Text textWidget;
public UriWidget(final Composite parent) {
super(parent, SWT.NONE);
final Label labelWidget = UIUtils.createLabel(parent,
Messages.UriWidget_EmfUri);
labelWidget.setLayoutData(GridDataFactory.swtDefaults()
.grab(true, false).create());
this.textWidget = UIUtils.createTextField(parent,
"", true, null); //$NON-NLS-1$
}
public URI getURI() {
URI result = null;
final String text = this.textWidget.getText();
try {
result = URI.createURI(text);
} catch (IllegalArgumentException e) {
final String message = NLS.bind("The URI '{0}' in malformed.", text); //$NON-NLS-1$
IOkDialogFactory.DEFAULT.openErrorDialog(new Shell(), e, message);
Logger.logError(e, Activator.getDefault());
}
return result;
}
public void setURI(final URI uri) {
String uriStr = "platform:/resource/<your_project>/<your_file>.xmi"; //$NON-NLS-1$
if (uri != null) {
uriStr = uri.toString();
}
this.textWidget.setText(uriStr);
}
}