package org.archstudio.archipelago2.core.editors; import java.net.URL; import java.util.List; import org.archstudio.archipelago2.AbstractArchipelago2Editor; import org.archstudio.archipelago2.core.Activator; import org.archstudio.resources.IResources; import org.archstudio.swtutils.Banner; import org.archstudio.utils.resources.swt.ColorUtils; import org.archstudio.utils.resources.swt.ImageUtils; import org.eclipse.jface.resource.JFaceResources; 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.ui.IEditorPart; /** * An "editor" that simply displays the Archipelago banner. * * @author sahendrickson@gmail.com (Scott A. Hendrickson) */ public class Archipelago2DefaultEditor extends AbstractArchipelago2Editor { @Override public boolean canEdit(List<Object> elementPath) { return elementPath.size() == 0; } @Override public void createPartControl(IEditorPart editorPart, Composite parent, List<Object> elementPath) { GridLayout gridLayout = new GridLayout(1, true); gridLayout.marginTop = 5; gridLayout.marginBottom = 5; gridLayout.marginLeft = 5; gridLayout.marginRight = 5; gridLayout.verticalSpacing = 5; parent.setLayout(gridLayout); // Create the Archipelago banner. URL iconURL = Activator.getDefault().getBundle().getResource("/res/archipelago-icon-32.png"); Image icon = ImageUtils.getImage(parent.getDisplay(), iconURL); Composite banner = new Banner(parent, icon, "Archipelago v2.0", "Graphical Architecture Editor", ColorUtils.getColor(parent.getDisplay(), IResources.RGB_BANNER_BRIGHT), ColorUtils.getColor(parent.getDisplay(), IResources.RGB_BANNER_DARK)); GridData gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; banner.setLayoutData(gridData); // Include a label requesting the selection of an item in the outline view. Label instructions = new Label(parent, SWT.NONE); instructions.setText("Double-click a node in the outline view to begin."); instructions.setFont(JFaceResources.getFont(IResources.PLATFORM_DEFAULT_FONT_ID)); instructions.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.verticalAlignment = GridData.FILL; gridData.grabExcessVerticalSpace = true; instructions.setLayoutData(gridData); setFocusControl(banner); } @Override public void setFocus(List<Object> elementPath) {} }