package fr.opensagres.nosql.ide.mongodb.ui.internal.editors.collection; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.events.HyperlinkEvent; import org.eclipse.ui.forms.events.IHyperlinkListener; import org.eclipse.ui.forms.widgets.FormText; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Section; import org.eclipse.ui.forms.widgets.TableWrapData; import fr.opensagres.nosql.ide.core.model.IServer; import fr.opensagres.nosql.ide.mongodb.core.model.Collection; import fr.opensagres.nosql.ide.mongodb.core.model.Database; import fr.opensagres.nosql.ide.mongodb.ui.internal.ImageResources; import fr.opensagres.nosql.ide.mongodb.ui.internal.Messages; import fr.opensagres.nosql.ide.mongodb.ui.singlesourcing.SingleSourcingUtils; import fr.opensagres.nosql.ide.ui.FormLayoutFactory; import fr.opensagres.nosql.ide.ui.UIFieldsFactory; import fr.opensagres.nosql.ide.ui.editors.AbstractToolbarFormPage; public class OverviewPage extends AbstractToolbarFormPage implements IHyperlinkListener { public static final String ID = "overview"; private Label serverLabel; private Text nameText; private Label databaseLabel; public OverviewPage(CollectionEditor editor) { super(editor, ID, Messages.OverviewPage_title); } @Override protected Image getFormTitleImage() { return ImageResources.getImage(ImageResources.IMG_COLLECTION_16); } @Override protected void fillBody(IManagedForm managedForm, FormToolkit toolkit) { Composite body = managedForm.getForm().getBody(); body.setLayout(FormLayoutFactory.createFormTableWrapLayout(true, 2)); Composite left = toolkit.createComposite(body); left.setLayout(FormLayoutFactory .createFormPaneTableWrapLayout(false, 1)); left.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); // General info section createGeneralInfoSection(left, toolkit); // right column Composite right = toolkit.createComposite(body); right.setLayout(FormLayoutFactory.createFormPaneTableWrapLayout(false, 1)); right.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); // Content section createContentSection(toolkit, right); // createTimeoutSection(right, toolkit); // "org.eclipse.wst.server.editor.overview.right"); initialize(); } protected void createGeneralInfoSection(Composite left, FormToolkit toolkit) { Section section = toolkit.createSection(left, Section.DESCRIPTION | Section.TITLE_BAR); section.setDescription(Messages.CollectionEditor_OverviewPage_GeneralInfo_desc); section.setText(Messages.CollectionEditor_OverviewPage_GeneralInfo_title); TableWrapData data = new TableWrapData(TableWrapData.FILL_GRAB); section.setLayoutData(data); Composite sbody = toolkit.createComposite(section); section.setClient(sbody); GridLayout glayout = new GridLayout(); // glayout.horizontalSpacing = 10; glayout.numColumns = 2; sbody.setLayout(glayout); // Server name Collection collection = ((CollectionEditor) getEditor()) .getModelObject(); Database database = (Database)collection.getDatabase(); IServer server = database.getParent(); serverLabel = UIFieldsFactory.createServerField(sbody, toolkit, server); // Database name databaseLabel = UIFieldsFactory.createDatabaseField(sbody, toolkit, database); // Collection name toolkit.createLabel(sbody, Messages.collection_label); nameText = toolkit.createText(sbody, "", SWT.SINGLE); GridData gd_firstNameText = new GridData(GridData.FILL_HORIZONTAL); gd_firstNameText.widthHint = 150; nameText.setLayoutData(gd_firstNameText); SingleSourcingUtils.FormToolkit_paintBordersFor(toolkit, sbody); } private void createContentSection(FormToolkit toolkit, Composite parent) { Section section = toolkit.createSection(parent, Section.TITLE_BAR); section.setText(Messages.CollectionEditor_OverviewPage_CollectionContent_title); TableWrapData data = new TableWrapData(TableWrapData.FILL_GRAB); section.setLayoutData(data); Composite sbody = toolkit.createComposite(section); section.setClient(sbody); Composite container = createStaticSectionClient(toolkit, section); FormText text = createClient( container, Messages.CollectionEditor_OverviewPage_CollectionContent_content, toolkit, this); text.setImage("documents_page", ImageResources.getImage(ImageResources.IMG_DOCUMENT_16)); text.setImage("indexes_page", ImageResources.getImage(ImageResources.IMG_INDEX_16)); section.setClient(container); SingleSourcingUtils.FormToolkit_paintBordersFor(toolkit, sbody); } private void initialize() { Collection collection = ((CollectionEditor) getEditor()) .getModelObject(); Database database = (Database)collection.getDatabase(); IServer server = database.getParent(); serverLabel.setText(server.getName()); databaseLabel.setText(database.getName()); nameText.setText(collection.getName()); } public void linkActivated(HyperlinkEvent e) { String href = (String) e.getHref(); getEditor().setActivePage(href); } public void linkEntered(HyperlinkEvent e) { // Do nothing } public void linkExited(HyperlinkEvent e) { // Do nothing } }