/* * 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.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; 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.resources.api.FontManager; import de.rcenvironment.core.gui.resources.api.StandardFonts; import de.rcenvironment.core.gui.utils.common.widgets.LineNumberStyledText; import de.rcenvironment.core.gui.workflow.editor.properties.ValidatingWorkflowNodePropertySection; /** * Basic section for shown scripts in read only mode. * * @author Sascha Zur */ public class BaseScriptReadOnlySection extends ValidatingWorkflowNodePropertySection { private LineNumberStyledText scriptText; private final String scriptName; public BaseScriptReadOnlySection(String scriptName) { this.scriptName = scriptName; } @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 scriptSection = getWidgetFactory().createSection(composite, Section.TITLE_BAR); scriptSection.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); if (scriptName.equals(ToolIntegrationConstants.KEY_PRE_SCRIPT)) { scriptSection.setText(Messages.preScriptSection); } else { scriptSection.setText(Messages.postScriptSection); } Composite scriptComposite = getWidgetFactory().createFlatFormComposite(scriptSection); scriptComposite.setLayout(new GridLayout(1, false)); scriptComposite.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); scriptText = new LineNumberStyledText(scriptComposite, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.READ_ONLY); scriptText.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); scriptText.setFont(FontManager.getInstance().getFont(StandardFonts.CONSOLE_TEXT_FONT)); scriptSection.setClient(scriptComposite); scriptText.setEditable(false); } @Override public void aboutToBeShown() { super.aboutToBeShown(); scriptText.setText(""); ReadOnlyConfiguration readOnlyConfig = getConfiguration().getConfigurationDescription() .getComponentConfigurationDefinition().getReadOnlyConfiguration(); String script = readOnlyConfig.getValue(scriptName); if (script != null) { scriptText.setText(script); } scriptText.setBackgroundEnabled(false); } @Override public void refreshSection() { super.refreshSection(); aboutToBeShown(); } }