package gr.upatras.ece.nam.fstoolkit.views.FSDLView; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.jface.util.Assert; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CLabel; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; import brokermodel.NamedElement; import brokermodel.Broker; import brokermodel.experimentRuntime.RuntimeElement; import brokermodel.federationscenarios.RequestedFederationScenario; import brokermodel.federationscenarios.ResourceRequest; import brokermodel.provider.NamedElementItemProvider; import brokermodel.uiObjects.ui_TaxonomyTreeItem; /** * The Label section on the Button tab. * * @author Anthony Hunter */ @SuppressWarnings("deprecation") public class RunningScenariosTabbedElementSection extends AbstractPropertySection { private CLabel labelElementName; private CLabel lblStatus; private CLabel lblDescription; private CLabel lblResourceType; private CLabel lblProvider; private NamedElement namedElement; RunningScenariosTabbedPropertySheetPage myPropertySheetPage; public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) { super.createControls(parent, aTabbedPropertySheetPage); Composite composite = getWidgetFactory().createFlatFormComposite(parent); // FormData data; // // labelElementName = getWidgetFactory().createCLabel(composite, "-"); //$NON-NLS-1$ // data = new FormData(); // data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH+20); // data.right = new FormAttachment(100, 0); // data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE); // // FontData[] boldFontData = getModifiedFontData(aTabbedPropertySheetPage.getControl().getFont().getFontData(), SWT.BOLD); // Font boldFont = new Font(Display.getCurrent(), boldFontData); // labelElementName.setFont(boldFont); // labelElementName.setLayoutData(data); // // CLabel labelLabel = getWidgetFactory().createCLabel(composite, "Name:"); //$NON-NLS-1$ // data = new FormData(); // data.left = new FormAttachment(0, 0); // data.right = new FormAttachment(labelElementName,-ITabbedPropertyConstants.HSPACE); // data.top = new FormAttachment(labelElementName, 0, SWT.CENTER); // labelLabel.setLayoutData(data); labelElementName = AddLabel(composite, null, "Name:"); lblStatus = AddLabel(composite, labelElementName, "Status:"); lblDescription = AddLabel(composite, lblStatus, "Description:"); lblResourceType = AddLabel(composite, lblDescription, "Resource Type:"); lblProvider = AddLabel(composite, lblResourceType, "Provider:"); // labelStatus = getWidgetFactory().createCLabel(composite, "-"); //$NON-NLS-1$ // data = new FormData(); // data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH+2); // data.right = new FormAttachment(100, 0); // data.top = new FormAttachment ( labelElementName, 0 ); // // Color color = Display.getCurrent().getSystemColor( SWT.COLOR_DARK_BLUE ); // labelStatus.setForeground(color ); // labelStatus.setLayoutData(data); // // CLabel labelLabel2 = getWidgetFactory().createCLabel(composite, "Status:"); //$NON-NLS-1$ // data = new FormData(); // data.left = new FormAttachment(0, 0); // data.right = new FormAttachment(labelStatus, -ITabbedPropertyConstants.HSPACE); // data.top = new FormAttachment(labelStatus, 0, SWT.CENTER); // labelLabel2.setLayoutData(data); myPropertySheetPage = (RunningScenariosTabbedPropertySheetPage) aTabbedPropertySheetPage; } private CLabel AddLabel(Composite composite, CLabel parentLabel, String tagName){ CLabel lbl = getWidgetFactory().createCLabel(composite, "-"); //$NON-NLS-1$ FormData data = new FormData(); data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH+20); data.right = new FormAttachment(100, 0); if (parentLabel!=null) data.top = new FormAttachment ( parentLabel, 0 ); else data.top = new FormAttachment ( 0, 0);//ITabbedPropertyConstants.VSPACE ); Color color = Display.getCurrent().getSystemColor( SWT.COLOR_DARK_BLUE ); lbl.setForeground(color ); lbl.setLayoutData(data); CLabel labelLabel2 = getWidgetFactory().createCLabel(composite, tagName); //$NON-NLS-1$ data = new FormData(); data.left = new FormAttachment(0, 0); data.right = new FormAttachment(lbl, -ITabbedPropertyConstants.HSPACE); data.top = new FormAttachment(lbl, 0, SWT.CENTER); labelLabel2.setLayoutData(data); return lbl; } public void setInput(IWorkbenchPart part, ISelection selection) { super.setInput(part, selection); Assert.isTrue(selection instanceof IStructuredSelection); Object input = ((IStructuredSelection) selection).getFirstElement(); // System.out.println("============Label section setInput = " + input + " ================"); if (input instanceof NamedElement) this.namedElement = (NamedElement) input; if (input instanceof ui_TaxonomyTreeItem) this.namedElement = ((ui_TaxonomyTreeItem) input) .getBrokerElement(); } public void refresh() { // labelText.removeModifyListener(listener); listeners if we want to // enable some editing ComposedAdapterFactory adp = (ComposedAdapterFactory) myPropertySheetPage .getAdapterFactory(); if (this.namedElement != null) { NamedElementItemProvider nadp = (NamedElementItemProvider) adp .adapt(namedElement, IItemPropertySource.class); //this gives as the text from the ItemProvider adapter.. //(as it is from the .edit plugin) labelElementName.setText(nadp.getText(namedElement)); RuntimeElement rtInfo = null ; lblResourceType.setText(""); lblStatus.setText("-"); String description = namedElement.getDescription(); if (namedElement.getDescription() == null) description = ""; lblDescription.setText(description); if ( namedElement instanceof ResourceRequest){ ResourceRequest resReq = (ResourceRequest)namedElement; rtInfo = resReq.getRuntimeInfo(); String provider = ( (Broker)resReq.getRefOfferedResource().getBelongsToSite().getBelongsToProvider().eContainer()).getName() + "."+resReq.getRefOfferedResource().getBelongsToSite().getBelongsToProvider().getName()+ "."+resReq.getRefOfferedResource().getBelongsToSite().getName(); lblResourceType.setText( resReq.getRefOfferedResource().getName() ); lblProvider.setText(provider); lblStatus.setText( rtInfo.getStatus().getName() ); } if ( namedElement instanceof RequestedFederationScenario){ lblStatus.setText( ((RequestedFederationScenario)namedElement).getStatus().getName() ); rtInfo = ((RequestedFederationScenario)namedElement).getRuntimeInfo(); lblDescription.setText(description + "("+ rtInfo.getDescription() + ")"); } } else labelElementName.setText("--"); } // private static FontData[] getModifiedFontData(FontData[] originalData, // int additionalStyle) { // FontData[] styleData = new FontData[originalData.length]; // for (int i = 0; i < styleData.length; i++) { // FontData base = originalData[i]; // styleData[i] = new FontData(base.getName(), base.getHeight(), // base.getStyle() | additionalStyle); // // System.out.println("FONT = "+ base.getName()); // // System.out.println("FONT getHeight= "+ base.getHeight()); // } // return styleData; // } }