/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.integration;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import de.rcenvironment.core.component.integration.ToolIntegrationConstants;
import de.rcenvironment.core.component.model.configuration.api.ReadOnlyConfiguration;
import de.rcenvironment.core.gui.workflow.editor.documentation.ToolIntegrationDocumentationGUIHelper;
import de.rcenvironment.core.gui.workflow.editor.properties.ValidatingWorkflowNodePropertySection;
/**
* GUI Section for information about the integrated tool and its creator.
*
* @author Sascha Zur
*/
public class ToolInformationSection extends ValidatingWorkflowNodePropertySection {
private Label toolNameLabel;
private Label integratorNameLabel;
private Label integratorEmailLabel;
private Label toolDescriptionLabel;
private Composite infoComposite;
@Override
protected void createCompositeContent(final Composite parent, final TabbedPropertySheetPage aTabbedPropertySheetPage) {
parent.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
parent.setLayout(new GridLayout(1, true));
final Composite composite = getWidgetFactory().createFlatFormComposite(parent);
composite.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
composite.setLayout(new GridLayout(1, true));
final Section infoSection = getWidgetFactory().createSection(composite, Section.TITLE_BAR);
infoSection.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
infoSection.setText(Messages.infoSection);
infoComposite = getWidgetFactory().createFlatFormComposite(infoSection);
infoComposite.setLayout(new GridLayout(2, false));
new Label(infoComposite, SWT.NONE).setText(Messages.toolNameLabel);
toolNameLabel = new Label(infoComposite, SWT.NONE);
new Label(infoComposite, SWT.NONE).setText(Messages.toolIntegratorNameLabel);
integratorNameLabel = new Label(infoComposite, SWT.NONE);
new Label(infoComposite, SWT.NONE).setText(Messages.toolIntegratorEmailLabel);
integratorEmailLabel = new Label(infoComposite, SWT.NONE);
Label descriptionLabel = new Label(infoComposite, SWT.BEGINNING);
descriptionLabel.setText(Messages.toolDescriptionLabel);
GridData labelGridData = new GridData();
labelGridData.verticalAlignment = GridData.BEGINNING;
descriptionLabel.setLayoutData(labelGridData);
toolDescriptionLabel = new Label(infoComposite, SWT.NONE);
Button toolDocumentationButton = new Button(infoComposite, SWT.PUSH);
GridData docuData = new GridData();
docuData.horizontalSpan = 2;
toolDocumentationButton.setLayoutData(docuData);
toolDocumentationButton.setText("Open Documentation");
toolDocumentationButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
String identifier = getConfiguration().getComponentIdentifierWithVersion();
ToolIntegrationDocumentationGUIHelper.getInstance().showComponentDocumentation(identifier);
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
widgetSelected(arg0);
}
});
infoSection.setClient(infoComposite);
}
@Override
public void aboutToBeShown() {
super.aboutToBeShown();
updateLabel();
infoComposite.layout();
}
@Override
public void refreshSection() {
super.refreshSection();
aboutToBeShown();
}
private void updateLabel() {
toolNameLabel.setText("");
integratorNameLabel.setText("");
integratorEmailLabel.setText("");
toolDescriptionLabel.setText("");
ReadOnlyConfiguration readOnlyconfig = getConfiguration().getConfigurationDescription()
.getComponentConfigurationDefinition().getReadOnlyConfiguration();
readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_NAME);
if (readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_NAME) != null) {
toolNameLabel.setText(readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_NAME));
}
if (readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_INTEGRATOR_NAME) != null) {
integratorNameLabel.setText(readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_INTEGRATOR_NAME));
}
if (readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_INTEGRATOR_EMAIL) != null) {
integratorEmailLabel.setText(readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_INTEGRATOR_EMAIL));
}
if (readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_DESCRIPTION) != null) {
toolDescriptionLabel.setText(readOnlyconfig.getValue(ToolIntegrationConstants.KEY_TOOL_DESCRIPTION));
}
}
}