/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.components.cpacs.vampzeroinitializer.gui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import de.rcenvironment.components.cpacs.vampzeroinitializer.common.VampZeroInitializerComponentConstants;
import de.rcenvironment.core.gui.workflow.editor.properties.ValidatingWorkflowNodePropertySection;
/**
* GUI in property tab for some extra tool things.
*
* @author Arne Bachmann
* @author Markus Kunde
*/
public class VampZeroInitializerSection extends ValidatingWorkflowNodePropertySection {
/**
* Abstraction for swapping between eclipse and stand-alone widget creation.
*/
private FormToolkitSwtHelper factory;
/**
* Reference to the gui model stuff.
*/
private MainGuiController guiController;
@Override
protected void createCompositeContent(final Composite parent, final TabbedPropertySheetPage aTabbedPropertySheetPage) {
final TabbedPropertySheetWidgetFactory toolkit = aTabbedPropertySheetPage.getWidgetFactory();
final Composite content = new LayoutComposite(parent);
content.setLayout(new GridLayout(1, true));
content.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
final Composite fileChoosingSection = toolkit.createFlatFormComposite(content);
initVampZeroSection(toolkit, fileChoosingSection);
}
/**
* Initialize file choosing section.
*
* @param toolkit the toolkit to create section content
* @param container parent
*/
private void initVampZeroSection(final TabbedPropertySheetWidgetFactory toolkit, final Composite container) {
factory = new FormToolkitSwtHelper(container, "Configure parameter");
guiController = new MainGuiController(factory, new InputTransferable() {
@Override
public void transfer(final String text) {
setProperty(VampZeroInitializerComponentConstants.XMLCONTENT, text);
}
});
guiController.createControls();
}
@Override
protected void refreshBeforeValidation() {
if (guiController != null) {
final String config = getProperty(VampZeroInitializerComponentConstants.XMLCONTENT);
if (config != null) {
guiController.setSelectedParameters(config);
}
}
factory.refresh();
}
@Override
public void dispose() {
if (guiController != null) {
guiController.dispose();
}
if (factory != null) {
factory.dispose();
}
super.dispose();
}
}