use of org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.DOMExtensionItemMenuListener in project webtools.sourceediting by eclipse.
the class AbstractExtensionsSection method createContents.
public void createContents(Composite parent) {
// TODO (cs) add assertion
if (extensionTreeContentProvider == null)
return;
IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
documentChangeNotifier = (IDocumentChangedNotifier) editor.getAdapter(IDocumentChangedNotifier.class);
if (documentChangeNotifier != null) {
documentChangeNotifier.addListener(internalNodeAdapter);
}
composite = getWidgetFactory().createFlatFormComposite(parent);
GridLayout gridLayout = new GridLayout();
gridLayout.marginTop = 0;
gridLayout.marginBottom = 0;
gridLayout.numColumns = 1;
composite.setLayout(gridLayout);
GridData gridData = new GridData();
page = getWidgetFactory().createComposite(composite);
gridLayout = new GridLayout();
gridLayout.marginTop = 0;
gridLayout.marginBottom = 0;
gridLayout.numColumns = 1;
page.setLayout(gridLayout);
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalAlignment = GridData.FILL;
page.setLayoutData(gridData);
SashForm sashForm = new SashForm(page, SWT.HORIZONTAL);
// Try to limit the initial width of the section
int w = SWT.DEFAULT;
try {
IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
// Find the width of the Tabbed Property Sheet's composite excluding the tab
if (part instanceof PropertySheet) {
PropertySheet sheet = (PropertySheet) part;
if (sheet.getCurrentPage() instanceof TabbedPropertySheetPage) {
TabbedPropertySheetPage tabbedPage = (TabbedPropertySheetPage) sheet.getCurrentPage();
Composite targetComposite = null;
if (tabbedPage.getControl() instanceof Composite) {
Composite c = (Composite) tabbedPage.getControl();
int length = c.getChildren().length;
for (int i = 0; i < length; i++) {
Control ctrl = c.getChildren()[i];
int length2 = (((Composite) ctrl).getChildren()).length;
for (int j = 0; j < length2; j++) {
if ((((Composite) ctrl).getChildren())[j] instanceof ScrolledComposite) {
targetComposite = (Composite) (((Composite) ctrl).getChildren())[j];
break;
}
}
}
}
if (targetComposite != null) {
// ensure scrollbars don't show
w = targetComposite.getSize().x - 20;
}
// The above can be accomplished by the following code
// but because TabbedPropertyComposite is in an internal package, I will get a discouraged
// access warning.
// w = ((TabbedPropertyComposite)(tabbedPage.getControl())).getTabComposite().getSize().x;
}
}
} catch (Exception e) {
w = SWT.DEFAULT;
}
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalAlignment = GridData.FILL;
// The initial size should be set, not the widthHint, which forces the width
// to remain constant.
sashForm.setSize(w, SWT.DEFAULT);
sashForm.setLayoutData(gridData);
sashForm.setForeground(ColorConstants.white);
sashForm.setBackground(ColorConstants.white);
Control[] children = sashForm.getChildren();
for (int i = 0; i < children.length; i++) {
children[i].setVisible(false);
}
Composite leftContent = getWidgetFactory().createComposite(sashForm, SWT.FLAT);
gridLayout = new GridLayout();
gridLayout.numColumns = 1;
leftContent.setLayout(gridLayout);
Section section = getWidgetFactory().createSection(leftContent, SWT.FLAT | ExpandableComposite.TITLE_BAR);
section.setText(Messages._UI_LABEL_EXTENSIONS);
section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Composite tableAndButtonComposite = getWidgetFactory().createComposite(leftContent, SWT.FLAT);
tableAndButtonComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
gridLayout = new GridLayout();
gridLayout.numColumns = 2;
tableAndButtonComposite.setLayout(gridLayout);
extensionTreeViewer = new TreeViewer(tableAndButtonComposite, SWT.FLAT | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.LINE_SOLID);
MenuManager menuManager = new MenuManager();
extensionTreeViewer.getTree().setMenu(menuManager.createContextMenu(extensionTreeViewer.getTree()));
menuManager.addMenuListener(new DOMExtensionItemMenuListener(extensionTreeViewer));
gridLayout = new GridLayout();
gridLayout.numColumns = 1;
extensionTreeViewer.getTree().setLayout(gridLayout);
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalAlignment = GridData.FILL;
extensionTreeViewer.getTree().setLayoutData(gridData);
extensionTreeViewer.setContentProvider(extensionTreeContentProvider);
extensionTreeViewer.setLabelProvider(extensionTreeLabelProvider);
elementSelectionChangedListener = new ElementSelectionChangedListener();
extensionTreeViewer.addSelectionChangedListener(elementSelectionChangedListener);
extensionTreeViewer.getTree().addMouseTrackListener(new MouseTrackAdapter() {
public void mouseHover(org.eclipse.swt.events.MouseEvent e) {
ISelection selection = extensionTreeViewer.getSelection();
if (selection instanceof StructuredSelection) {
Object obj = ((StructuredSelection) selection).getFirstElement();
if (obj instanceof Element) {
Element element = (Element) obj;
ExtensionsSchemasRegistry registry = getExtensionsSchemasRegistry();
// ApplicationSpecificSchemaProperties[] properties =
// registry.getAllApplicationSpecificSchemaProperties();
// ApplicationSpecificSchemaProperties[] properties =
// (ApplicationSpecificSchemaProperties[])
// registry.getAllApplicationSpecificSchemaProperties().toArray(new
// ApplicationSpecificSchemaProperties[0]);
List properties = registry.getAllExtensionsSchemasContribution();
int length = properties.size();
for (int i = 0; i < length; i++) {
SpecificationForExtensionsSchema current = (SpecificationForExtensionsSchema) properties.get(i);
if (current.getNamespaceURI().equals(element.getNamespaceURI())) {
extensionTreeViewer.getTree().setToolTipText(current.getDescription());
break;
}
}
}
}
}
});
PlatformUI.getWorkbench().getHelpSystem().setHelp(extensionTreeViewer.getControl(), XSDEditorCSHelpIds.EXTENSIONS_TAB__EXTENSIONS);
Composite buttonComposite = getWidgetFactory().createComposite(tableAndButtonComposite, SWT.FLAT);
// ColumnLayout columnLayout = new ColumnLayout();
// buttonComposite.setLayout(columnLayout);
buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
gridLayout = new GridLayout();
gridLayout.marginTop = 0;
gridLayout.marginBottom = 0;
gridLayout.numColumns = 1;
gridLayout.makeColumnsEqualWidth = true;
buttonComposite.setLayout(gridLayout);
addButton = getWidgetFactory().createButton(buttonComposite, Messages._UI_ACTION_ADD_WITH_DOTS, SWT.FLAT);
addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
addButton.addSelectionListener(this);
addButton.setToolTipText(Messages._UI_ACTION_ADD_EXTENSION_COMPONENT);
// addButton.setLayoutData(new ColumnLayoutData(ColumnLayoutData.FILL));
addButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
PlatformUI.getWorkbench().getHelpSystem().setHelp(addButton, XSDEditorCSHelpIds.EXTENSIONS_TAB__ADD);
removeButton = getWidgetFactory().createButton(buttonComposite, Messages._UI_DELETE_BUTTON, SWT.FLAT);
removeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
removeButton.addSelectionListener(this);
removeButton.setToolTipText(Messages._UI_ACTION_DELETE_EXTENSION_COMPONENT);
PlatformUI.getWorkbench().getHelpSystem().setHelp(removeButton, XSDEditorCSHelpIds.EXTENSIONS_TAB__DELETE);
// removeButton.setLayoutData(new ColumnLayoutData(ColumnLayoutData.FILL));
// TODO (cs) uncomment the up/down button when we have time to implement
//
// Button up = getWidgetFactory().createButton(buttonComposite, Messages._UI_LABEL_UP, SWT.FLAT);
// up.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
// Button down = getWidgetFactory().createButton(buttonComposite, Messages._UI_LABEL_DOWN, SWT.FLAT);
// down.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Composite rightContent = getWidgetFactory().createComposite(sashForm, SWT.FLAT);
Section section2 = getWidgetFactory().createSection(rightContent, SWT.FLAT | ExpandableComposite.TITLE_BAR);
section2.setText(Messages._UI_LABEL_EXTENSION_DETAILS);
section2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
// contentLabel = getWidgetFactory().createLabel(rightContent, "Content");
Composite testComp = getWidgetFactory().createComposite(rightContent, SWT.FLAT);
gridLayout = new GridLayout();
gridLayout.marginTop = 0;
gridLayout.marginBottom = 0;
gridLayout.marginLeft = 0;
gridLayout.marginRight = 0;
gridLayout.numColumns = 1;
gridLayout.marginHeight = 3;
gridLayout.marginWidth = 3;
rightContent.setLayout(gridLayout);
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalAlignment = GridData.FILL;
rightContent.setLayoutData(gridData);
gridLayout = new GridLayout();
gridLayout.marginTop = 0;
gridLayout.marginLeft = 0;
gridLayout.marginRight = 0;
gridLayout.marginBottom = 0;
gridLayout.marginHeight = 3;
gridLayout.marginWidth = 3;
gridLayout.numColumns = 2;
testComp.setLayout(gridLayout);
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalAlignment = GridData.FILL;
testComp.setLayoutData(gridData);
createElementContentWidget(testComp);
int[] weights = { 40, 60 };
sashForm.setWeights(weights);
}
Aggregations