blob: d98841bf97833d4ab73e485f5b221d60e0066011 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
* 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:
* Pierre Allard,
* Regent L'Archeveque - initial API and implementation
*
* SPDX-License-Identifier: EPL-1.0
*******************************************************************************/
package org.eclipse.apogy.core.environment.earth.surface.ui.wizards;
import org.eclipse.apogy.core.environment.WorksitesList;
import org.eclipse.apogy.core.environment.earth.surface.EarthSurfaceWorksite;
import org.eclipse.apogy.core.environment.earth.surface.ui.composites.EarthSurfaceWorksiteDetailsComposite;
import org.eclipse.apogy.core.environment.earth.surface.ui.composites.EarthSurfaceWorksiteImportFromFileComposite;
import org.eclipse.apogy.core.environment.earth.surface.ui.composites.EarthSurfaceWorksiteOriginComposite;
import org.eclipse.apogy.core.environment.earth.surface.ui.composites.EarthSurfaceWorksitesRegistryComposite;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
public class ImportEarthSurfaceWorksiteWizardPage extends WizardPage {
private final static String WIZARD_PAGE_ID = "org.eclipse.apogy.core.environment.earth.surface.ui.wizards.ImportEarthSurfaceWorksiteWizardPage";
private TabFolder tabFolder;
private TabItem tabItemFromRegistry;
private TabItem tabItemFromFile;
private EarthSurfaceWorksite selectedEarthSurfaceWorksite;
private EarthSurfaceWorksitesRegistryComposite earthSurfaceWorksitesRegistryComposite;
private EarthSurfaceWorksiteImportFromFileComposite earthSurfaceWorksiteImportFromFileComposite;
private EarthSurfaceWorksiteDetailsComposite earthSurfaceWorksiteDetailsComposite;
private EarthSurfaceWorksiteOriginComposite earthSurfaceWorksiteOriginComposite;
public ImportEarthSurfaceWorksiteWizardPage(WorksitesList worksitesList) {
super(WIZARD_PAGE_ID);
setTitle("Import Earth Surface Worksite");
setDescription("Select the Earth Surface Worksite to import.");
}
private void setSelectedEarthSurfaceWorksite(EarthSurfaceWorksite selectedEarthSurfaceWorksite) {
this.selectedEarthSurfaceWorksite = selectedEarthSurfaceWorksite;
this.earthSurfaceWorksiteDetailsComposite.setEarthSurfaceWorksite(selectedEarthSurfaceWorksite);
this.earthSurfaceWorksiteOriginComposite.setEarthSurfaceWorksite(selectedEarthSurfaceWorksite);
newSelectedEarthSurfaceWorksite(selectedEarthSurfaceWorksite);
}
public EarthSurfaceWorksite getSelectedEarthSurfaceWorksite() {
return this.selectedEarthSurfaceWorksite;
}
protected void newSelectedEarthSurfaceWorksite(EarthSurfaceWorksite selectedEarthSurfaceWorksite) {
}
@Override
public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.None);
container.setLayout(new GridLayout(2, false));
// Tab on left end side
this.tabFolder = new TabFolder(container, SWT.BORDER);
this.tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
this.tabFolder.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(org.eclipse.swt.events.SelectionEvent event) {
TabItem tabItem = ImportEarthSurfaceWorksiteWizardPage.this.tabFolder.getSelection()[0];
if (tabItem == ImportEarthSurfaceWorksiteWizardPage.this.tabItemFromRegistry) {
setSelectedEarthSurfaceWorksite(
ImportEarthSurfaceWorksiteWizardPage.this.earthSurfaceWorksitesRegistryComposite
.getSelectedEarthSurfaceWorksite());
} else if (tabItem == ImportEarthSurfaceWorksiteWizardPage.this.tabItemFromFile) {
setSelectedEarthSurfaceWorksite(
ImportEarthSurfaceWorksiteWizardPage.this.earthSurfaceWorksiteImportFromFileComposite
.getSelectedEarthSurfaceWorksite());
}
}
});
this.tabFolder.pack();
this.tabItemFromRegistry = new TabItem(this.tabFolder, SWT.NONE);
populateTabItemFromRegistry(this.tabFolder, this.tabItemFromRegistry);
this.tabItemFromFile = new TabItem(this.tabFolder, SWT.NONE);
populateTabItemFromFile(this.tabFolder, this.tabItemFromFile);
// Selected Worksite Overview on the right.
Group overviewGroup = new Group(container, SWT.BORDER);
overviewGroup.setText("Selected Worksite");
overviewGroup.setLayout(new GridLayout(1, false));
GridData gd_overviewGroup = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
overviewGroup.setLayoutData(gd_overviewGroup);
Group worksiteOriginGroup = new Group(overviewGroup, SWT.BORDER);
worksiteOriginGroup.setText("Worksite Origin");
worksiteOriginGroup.setLayout(new GridLayout(1, false));
GridData gd_worksiteOriginGroup = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2);
worksiteOriginGroup.setLayoutData(gd_worksiteOriginGroup);
this.earthSurfaceWorksiteOriginComposite = new EarthSurfaceWorksiteOriginComposite(worksiteOriginGroup,
SWT.NONE);
GridData gd_earthSurfaceWorksiteOriginComposite = new GridData(SWT.FILL, SWT.FILL, true, true);
this.earthSurfaceWorksiteOriginComposite.setLayoutData(gd_earthSurfaceWorksiteOriginComposite);
Group worksiteDetailsGroup = new Group(overviewGroup, SWT.BORDER);
worksiteDetailsGroup.setText("Worksite Details");
worksiteDetailsGroup.setLayout(new GridLayout(1, false));
GridData gd_worksiteDetailsGroup = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2);
worksiteDetailsGroup.setLayoutData(gd_worksiteDetailsGroup);
this.earthSurfaceWorksiteDetailsComposite = new EarthSurfaceWorksiteDetailsComposite(worksiteDetailsGroup,
SWT.NONE);
GridData gd_earthSurfaceWorksiteDetailsComposite = new GridData(SWT.FILL, SWT.FILL, true, true);
this.earthSurfaceWorksiteDetailsComposite.setLayoutData(gd_earthSurfaceWorksiteDetailsComposite);
setControl(container);
setPageComplete(false);
}
private void populateTabItemFromRegistry(final TabFolder tabFolder, final TabItem tabItem) {
tabItem.setText("From Registry");
Composite top = new Composite(tabFolder, SWT.NONE);
top.setLayout(new GridLayout(1, false));
this.earthSurfaceWorksitesRegistryComposite = new EarthSurfaceWorksitesRegistryComposite(top, SWT.NONE) {
@Override
protected void newEarthSurfaceWorksiteSelected(EarthSurfaceWorksite earthSurfaceWorksite) {
ImportEarthSurfaceWorksiteWizardPage.this.selectedEarthSurfaceWorksite = earthSurfaceWorksite;
setPageComplete(ImportEarthSurfaceWorksiteWizardPage.this.selectedEarthSurfaceWorksite != null);
setSelectedEarthSurfaceWorksite(ImportEarthSurfaceWorksiteWizardPage.this.selectedEarthSurfaceWorksite);
}
};
GridData gd_earthSurfaceWorksitesRegistryComposite = new GridData(SWT.FILL, SWT.FILL, true, true);
this.earthSurfaceWorksitesRegistryComposite.setLayoutData(gd_earthSurfaceWorksitesRegistryComposite);
tabItem.setControl(top);
}
private void populateTabItemFromFile(final TabFolder tabFolder, final TabItem tabItem) {
tabItem.setText("From File");
Composite top = new Composite(tabFolder, SWT.NONE);
top.setLayout(new GridLayout(1, false));
this.earthSurfaceWorksiteImportFromFileComposite = new EarthSurfaceWorksiteImportFromFileComposite(top,
SWT.NONE) {
@Override
protected void newEarthSurfaceWorksiteSelected(EarthSurfaceWorksite earthSurfaceWorksite) {
ImportEarthSurfaceWorksiteWizardPage.this.selectedEarthSurfaceWorksite = earthSurfaceWorksite;
setPageComplete(ImportEarthSurfaceWorksiteWizardPage.this.selectedEarthSurfaceWorksite != null);
setSelectedEarthSurfaceWorksite(ImportEarthSurfaceWorksiteWizardPage.this.selectedEarthSurfaceWorksite);
}
};
GridData gd_earthSurfaceWorksiteImportFromFileComposite = new GridData(SWT.FILL, SWT.FILL, true, true);
this.earthSurfaceWorksiteImportFromFileComposite.setLayoutData(gd_earthSurfaceWorksiteImportFromFileComposite);
tabItem.setControl(top);
}
}