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.graphics.Font; import org.eclipse.swt.graphics.FontData; 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.provider.NamedElementItemProvider; import brokermodel.uiObjects.ui_TaxonomyTreeItem; /** * The Label section on the Button tab. * * @author Anthony Hunter */ @SuppressWarnings("deprecation") public class OfferedResourcesTabbedElementSection extends AbstractPropertySection { private CLabel labelText; private org.eclipse.swt.widgets.Label labelText2; private NamedElement buttonElement; OfferedResourcesTabbedPropertySheetPage myPropertySheetPage; // private ModifyListener listener = new ModifyListener() { // // public void modifyText(ModifyEvent arg0) { // // ButtonElementProperties properties = (ButtonElementProperties) // // buttonElement // // .getAdapter(IPropertySource.class); // // properties.setPropertyValue(ButtonElementProperties.PROPERTY_TEXT, // // labelText.getText()); // } // }; public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) { super.createControls(parent, aTabbedPropertySheetPage); Composite composite = getWidgetFactory() .createFlatFormComposite(parent); FormData data; // labelText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ labelText = getWidgetFactory().createCLabel(composite, "-"); //$NON-NLS-1$ data = new FormData(); data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH); 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); labelText.setFont(boldFont); labelText.setLayoutData(data); // labelText.addModifyListener(listener); CLabel labelLabel = getWidgetFactory().createCLabel(composite, "Name:"); //$NON-NLS-1$ data = new FormData(); data.left = new FormAttachment(0, 0); data.right = new FormAttachment(labelText,-ITabbedPropertyConstants.HSPACE); data.top = new FormAttachment(labelText, 0, SWT.CENTER); labelLabel.setLayoutData(data); // labelText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ labelText2 = getWidgetFactory().createLabel(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 ( labelText, 0 ); //boldFontData = getModifiedFontData(aTabbedPropertySheetPage.getControl().getFont().getFontData(), SWT.ITALIC ); //boldFont = new Font(Display.getCurrent(), boldFontData); //labelText2.setFont(boldFont); Color color = Display.getCurrent().getSystemColor( SWT.COLOR_DARK_BLUE ); labelText2.setForeground(color ); labelText2.setLayoutData(data); // labelText.addModifyListener(listener); CLabel labelLabel2 = getWidgetFactory().createCLabel(composite, "Description:"); //$NON-NLS-1$ data = new FormData(); data.left = new FormAttachment(0, 0); data.right = new FormAttachment(labelText2, -ITabbedPropertyConstants.HSPACE); data.top = new FormAttachment(labelText2, 0, SWT.CENTER); labelLabel2.setLayoutData(data); myPropertySheetPage = (OfferedResourcesTabbedPropertySheetPage) aTabbedPropertySheetPage; } 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.buttonElement = (NamedElement) input; if (input instanceof ui_TaxonomyTreeItem) this.buttonElement = ((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.buttonElement != null) { // ui_TaxonomyTreeItemItemProvider nadp = // (ui_TaxonomyTreeItemItemProvider) adp.adapt(buttonElement, // IItemPropertySource.class); NamedElementItemProvider nadp = (NamedElementItemProvider) adp .adapt(buttonElement, IItemPropertySource.class); // labelText.setText(nadp.getText(buttonElement)); // this gives as the // text from the // ItemProvider // adapter..(as it // is from the .edit // plugin) String desc = "-"; if ( buttonElement.getDescription() !=null) desc = buttonElement.getDescription(); labelText2.setText( desc ); } else labelText.setText("--"); // labelText.addModifyListener(listener); } 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; } }