/**
*
*/
package org.geotools.swt.control;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.geotools.referencing.crs.DefaultGeographicCRS;
import org.geotools.swt.utils.Messages;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
public class CRSChooserDialog extends Dialog {
private final CRSChooser chooser = new CRSChooser();
private final CoordinateReferenceSystem initialValue;
private CoordinateReferenceSystem result;
public CRSChooserDialog( Shell parentShell, CoordinateReferenceSystem initialValue ) {
super(parentShell);
this.initialValue = initialValue;
}
@Override
protected Control createDialogArea( Composite parent ) {
getShell().setText(Messages.getString("CRSChooserDialog_title"));
chooser.setController(new Controller(){
public void handleClose() {
close();
}
public void handleOk() {
result = chooser.getCRS();
}
});
Control control = chooser.createControl(parent, initialValue);
chooser.setFocus();
return control;
}
@Override
public boolean close() {
result = chooser.getCRS();
return super.close();
}
public CoordinateReferenceSystem getResult() {
return result;
}
public static void main( String[] args ) {
CRSChooserDialog dialog = new CRSChooserDialog(new Shell(Display.getDefault()), DefaultGeographicCRS.WGS84);
dialog.setBlockOnOpen(true);
dialog.open();
CoordinateReferenceSystem crs = dialog.getResult();
System.out.println(crs);
}
}