/* * Copyright (c) 2002 No Magic, Inc. All Rights Reserved. */ package com.nomagic.magicdraw.examples.projectwindow; import com.nomagic.magicdraw.core.Project; import com.nomagic.magicdraw.plugins.Plugin; import com.nomagic.magicdraw.ui.*; import com.nomagic.magicdraw.ui.browser.WindowComponentContent; import com.nomagic.ui.ScalableImageIcon; import javax.swing.*; import java.awt.*; /** * Example-Plugin for showing how to add a custom project window. * * @author Mindaugas Ringys */ public class CustomProjectWindowPlugin extends Plugin { @Override public void init() { ProjectWindowsManager.ConfiguratorRegistry.addConfigurator(new CustomProjectWindowsConfigurator()); } @Override public boolean close() { return true; } @Override public boolean isSupported() { return true; } private static class CustomProjectWindowsConfigurator implements ProjectWindowsConfigurator { public static final String ID = "CUSTOM_PROJECT_WINDOW_PANEL_ID"; public static final Icon WINDOW_ICON = new ScalableImageIcon(CustomProjectWindowsConfigurator.class, "custom_window.png"); @Override public void configure(Project project, ProjectWindowsManager projectWindowsManager) { addProjectWindow(projectWindowsManager); } @SuppressWarnings("UnusedReturnValue") public static ProjectWindow addProjectWindow(ProjectWindowsManager projectWindowsManager) { ProjectWindow projectWindow = new ProjectWindow(createWindowComponentInfo(), new CustomProjectWindowComponentContent()); projectWindowsManager.addWindow(projectWindow); return projectWindow; } private static WindowComponentInfo createWindowComponentInfo() { return new WindowComponentInfo(ID, "Custom Window", WINDOW_ICON, WindowsManager.SIDE_EAST, WindowsManager.STATE_DOCKED, false); } } private static class CustomProjectWindowComponentContent implements WindowComponentContent { private JPanel mPanel; public CustomProjectWindowComponentContent() { mPanel = new JPanel(); mPanel.add(new JLabel("This is a custom window")); } @Override public Component getWindowComponent() { return mPanel; } @Override public Component getDefaultFocusComponent() { return null; } } }