refactored some swing out of the core parts

This commit is contained in:
bancika
2011-01-23 22:57:52 +00:00
parent 726f17aa7f
commit 1de1b9d6ec
59 changed files with 306 additions and 338 deletions
@@ -8,8 +8,8 @@ import javax.swing.UIManager;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.PropertyConfigurator;
import org.diylc.gui.MainFrame;
import org.diylc.presenter.Presenter; import org.diylc.presenter.Presenter;
import org.diylc.swing.gui.MainFrame;
import com.diyfever.gui.miscutils.PropertyInjector; import com.diyfever.gui.miscutils.PropertyInjector;
@@ -8,12 +8,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.SwingConstants;
import javax.swing.JPopupMenu.Separator;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.Project; import org.diylc.core.Project;
@@ -132,49 +126,6 @@ public interface IPlugInPort {
*/ */
void draw(Graphics2D g2d, Set<DrawOption> drawOptions, IComponentFiler filter); void draw(Graphics2D g2d, Set<DrawOption> drawOptions, IComponentFiler filter);
/**
* Injects a custom GUI panels provided by the plug-in and desired position
* in the window. Application will layout plug-in panels accordingly. <br>
* Valid positions are:
* <ul>
* <li> {@link SwingConstants#TOP}</li>
* <li> {@link SwingConstants#BOTTOM}</li>
* <li> {@link SwingConstants#LEFT}</li>
* <li> {@link SwingConstants#RIGHT}</li>
* </ul>
*
* Center position is reserved for the main canvas panel and cannot be used.
*
* @param component
* @param position
* @throws BadPositionException
* in case invalid position is specified
*/
void injectGUIComponent(JComponent component, int position) throws BadPositionException;
/**
* Injects a custom menu action into application's main menu. If
* <code>action</code> is set to null {@link Separator} will be added. If
* the specified menu does not exist it will be automatically created.
*
* @param action
* {@link Action} to inser
* @param menuName
* name of the menu to insert into
*/
void injectMenuAction(Action action, String menuName);
/**
* Injects a custom submenu into application's main menu. If
* <code>action</code> is set to null {@link Separator} will be added. If
* the specified menu does not exist it will be automatically created.
*
* @param name
* @param icon
* @param parentMenuName
*/
void injectSubmenu(String name, Icon icon, String parentMenuName);
Double[] getAvailableZoomLevels(); Double[] getAvailableZoomLevels();
/** /**
@@ -1,11 +1,5 @@
package org.diylc.core; package org.diylc.core;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JComponent;
import org.diylc.common.BadPositionException;
import org.diylc.common.IPlugInPort;
/** /**
* Base interface for the main GUI component. * Base interface for the main GUI component.
@@ -28,40 +22,6 @@ public interface IView {
public static final int CANCEL_OPTION = 2; public static final int CANCEL_OPTION = 2;
public static final int OK_OPTION = 0; public static final int OK_OPTION = 0;
/**
* Adds a component to the view.
*
* @param component
* component to insert
* @param position
* target position
* @throws BadPositionException
*
* @see IPlugInPort#injectGUIComponent
*/
void addComponent(JComponent component, int position) throws BadPositionException;
/**
* Adds a menu action.
*
* @param action
* action to insert
* @param menuName
* target menu name
*
* @see IPlugInPort#injectMenuAction
*/
void addMenuAction(Action action, String menuName);
/**
* Adds a submenu to an existing menu.
*
* @param name
* @param icon
* @param parentMenuName
*/
void addSubmenu(String name, Icon icon, String parentMenuName);
void showMessage(String message, String title, int messageType); void showMessage(String message, String title, int messageType);
int showConfirmDialog(String message, String title, int optionType, int messageType); int showConfirmDialog(String message, String title, int optionType, int messageType);
@@ -19,12 +19,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JComponent;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.diylc.common.BadPositionException;
import org.diylc.common.ComponentSelection; import org.diylc.common.ComponentSelection;
import org.diylc.common.ComponentType; import org.diylc.common.ComponentType;
import org.diylc.common.DrawOption; import org.diylc.common.DrawOption;
@@ -309,26 +304,6 @@ public class Presenter implements IPlugInPort {
.getPotentialControlPoint()), componentSlotToDraw, dragInProgress); .getPotentialControlPoint()), componentSlotToDraw, dragInProgress);
} }
@Override
public void injectGUIComponent(JComponent component, int position) throws BadPositionException {
LOG.info(String.format("injectGUIComponent(%s, %s)", component.getClass().getName(),
position));
view.addComponent(component, position);
}
@Override
public void injectMenuAction(Action action, String menuName) {
LOG.info(String.format("injectMenuAction(%s, %s)", action == null ? "Separator" : action
.getValue(Action.NAME), menuName));
view.addMenuAction(action, menuName);
}
@Override
public void injectSubmenu(String name, Icon icon, String parentMenuName) {
LOG.info(String.format("injectSubmenu(%s, icon, %s)", name, parentMenuName));
view.addSubmenu(name, icon, parentMenuName);
}
/** /**
* Finds all components whose areas include the specified {@link Point}. * Finds all components whose areas include the specified {@link Point}.
* Point is <b>not</b> scaled by the zoom factor. Components that belong to * Point is <b>not</b> scaled by the zoom factor. Components that belong to
@@ -604,7 +579,8 @@ public class Presenter implements IPlugInPort {
for (IDIYComponent<?> component : currentProject.getComponents()) { for (IDIYComponent<?> component : currentProject.getComponents()) {
ComponentType componentType = componentTypeMap.get(component.getClass().getName()); ComponentType componentType = componentTypeMap.get(component.getClass().getName());
// Do not process a component if it's already in the map and if it's locked. // Do not process a component if it's already in the map and if it's
// locked.
if (!controlPointMap.containsKey(component) && !isComponentLocked(component)) { if (!controlPointMap.containsKey(component) && !isComponentLocked(component)) {
// Check if there's a control point in the current selection // Check if there's a control point in the current selection
// that matches with one of its control points. // that matches with one of its control points.
@@ -700,20 +676,24 @@ public class Presenter implements IPlugInPort {
} }
// Update all points. // Update all points.
boolean isFirst = true;
for (Map.Entry<IDIYComponent<?>, Set<Integer>> entry : controlPointMap.entrySet()) { for (Map.Entry<IDIYComponent<?>, Set<Integer>> entry : controlPointMap.entrySet()) {
IDIYComponent<?> c = entry.getKey(); IDIYComponent<?> c = entry.getKey();
// drawingManager.invalidateComponent(c); // drawingManager.invalidateComponent(c);
for (Integer index : entry.getValue()) { for (Integer index : entry.getValue()) {
Point p = new Point(c.getControlPoint(index)); Point p = new Point(c.getControlPoint(index));
// When the first point is moved, calculate how much it
// actually moved after snapping.
if (isFirst) {
isFirst = false;
p.translate(dx, dy); p.translate(dx, dy);
if (snapToGrid) { if (snapToGrid) {
CalcUtils.snapPointToGrid(p, currentProject.getGridSpacing()); CalcUtils.snapPointToGrid(p, currentProject.getGridSpacing());
} }
// When the first point is moved, calculate how much it
// actually moved after snapping.
if (actualDx == 0 && actualDy == 0) {
actualDx = p.x - c.getControlPoint(index).x; actualDx = p.x - c.getControlPoint(index).x;
actualDy = p.y - c.getControlPoint(index).y; actualDy = p.y - c.getControlPoint(index).y;
} else {
p.translate(actualDx, actualDy);
} }
c.setControlPoint(p, index); c.setControlPoint(p, index);
} }
@@ -0,0 +1,60 @@
package org.diylc.swing;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.SwingConstants;
import javax.swing.JPopupMenu.Separator;
import org.diylc.common.BadPositionException;
/**
* Interface for plugin access to the swing front end.
*
* @author Branislav Stojkovic
*/
public interface ISwingUI {
/**
* Injects a custom GUI panels provided by the plug-in and desired position
* in the window. Application will layout plug-in panels accordingly. <br>
* Valid positions are:
* <ul>
* <li> {@link SwingConstants#TOP}</li>
* <li> {@link SwingConstants#BOTTOM}</li>
* <li> {@link SwingConstants#LEFT}</li>
* <li> {@link SwingConstants#RIGHT}</li>
* </ul>
*
* Center position is reserved for the main canvas panel and cannot be used.
*
* @param component
* @param position
* @throws BadPositionException
* in case invalid position is specified
*/
void injectGUIComponent(JComponent component, int position) throws BadPositionException;
/**
* Injects a custom menu action into application's main menu. If
* <code>action</code> is set to null {@link Separator} will be added. If
* the specified menu does not exist it will be automatically created.
*
* @param action
* {@link Action} to inser
* @param menuName
* name of the menu to insert into
*/
void injectMenuAction(Action action, String menuName);
/**
* Injects a custom submenu into application's main menu. If
* <code>action</code> is set to null {@link Separator} will be added. If
* the specified menu does not exist it will be automatically created.
*
* @param name
* @param icon
* @param parentMenuName
*/
void injectSubmenu(String name, Icon icon, String parentMenuName);
}
@@ -1,4 +1,4 @@
package org.diylc.gui; package org.diylc.swing.gui;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
@@ -1,4 +1,4 @@
package org.diylc.gui; package org.diylc.swing.gui;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
@@ -9,13 +9,13 @@ import javax.swing.JFrame;
import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileFilter;
import org.diylc.common.PropertyWrapper; import org.diylc.common.PropertyWrapper;
import org.diylc.gui.components.OverwritePromptFileChooser; import org.diylc.swing.gui.components.OverwritePromptFileChooser;
import org.diylc.gui.editor.PropertyEditorDialog; import org.diylc.swing.gui.editor.PropertyEditorDialog;
import org.diylc.plugins.file.BomDialog; import org.diylc.swing.plugins.file.BomDialog;
import org.diylc.plugins.file.BomEntry; import org.diylc.swing.plugins.file.BomEntry;
import org.diylc.plugins.online.view.LoginDialog; import org.diylc.swing.plugins.online.view.LoginDialog;
import org.diylc.plugins.online.view.NewUserDialog; import org.diylc.swing.plugins.online.view.NewUserDialog;
import org.diylc.plugins.online.view.UploadDialog; import org.diylc.swing.plugins.online.view.UploadDialog;
import com.diyfever.gui.AboutDialog; import com.diyfever.gui.AboutDialog;
import com.diyfever.gui.IFileChooserAccessory; import com.diyfever.gui.IFileChooserAccessory;
@@ -1,4 +1,4 @@
package org.diylc.gui; package org.diylc.swing.gui;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Container; import java.awt.Container;
@@ -25,22 +25,26 @@ import javax.swing.JPanel;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import javax.swing.Timer; import javax.swing.Timer;
import org.apache.log4j.Logger;
import org.diylc.common.BadPositionException; import org.diylc.common.BadPositionException;
import org.diylc.common.EventType; import org.diylc.common.EventType;
import org.diylc.common.IPlugIn; import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.core.IView; import org.diylc.core.IView;
import org.diylc.images.IconLoader; import org.diylc.images.IconLoader;
import org.diylc.plugins.canvas.CanvasPlugin;
import org.diylc.plugins.clipboard.EditMenuPlugin;
import org.diylc.plugins.file.FileMenuPlugin;
import org.diylc.plugins.help.HelpMenuPlugin;
import org.diylc.plugins.layers.LayersMenuPlugin;
import org.diylc.plugins.statusbar.StatusBar;
import org.diylc.plugins.toolbox.ToolBox;
import org.diylc.presenter.Presenter; import org.diylc.presenter.Presenter;
import org.diylc.swing.ISwingUI;
import org.diylc.swing.plugins.canvas.CanvasPlugin;
import org.diylc.swing.plugins.clipboard.EditMenuPlugin;
import org.diylc.swing.plugins.file.FileMenuPlugin;
import org.diylc.swing.plugins.help.HelpMenuPlugin;
import org.diylc.swing.plugins.layers.LayersMenuPlugin;
import org.diylc.swing.plugins.statusbar.StatusBar;
import org.diylc.swing.plugins.toolbox.ToolBox;
public class MainFrame extends JFrame implements IView { public class MainFrame extends JFrame implements IView, ISwingUI {
private static final Logger LOG = Logger.getLogger(MainFrame.class);
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -69,15 +73,15 @@ public class MainFrame extends JFrame implements IView {
this.presenter = new Presenter(this); this.presenter = new Presenter(this);
presenter.installPlugin(new ToolBox()); presenter.installPlugin(new ToolBox(this));
presenter.installPlugin(new FileMenuPlugin()); presenter.installPlugin(new FileMenuPlugin(this));
presenter.installPlugin(new EditMenuPlugin()); presenter.installPlugin(new EditMenuPlugin(this));
presenter.installPlugin(new LayersMenuPlugin()); presenter.installPlugin(new LayersMenuPlugin(this));
// presenter.installPlugin(new OnlineManager()); // presenter.installPlugin(new OnlineManager());
presenter.installPlugin(new HelpMenuPlugin()); presenter.installPlugin(new HelpMenuPlugin(this));
presenter.installPlugin(new StatusBar()); presenter.installPlugin(new StatusBar(this));
canvasPlugin = new CanvasPlugin(); canvasPlugin = new CanvasPlugin(this);
presenter.installPlugin(canvasPlugin); presenter.installPlugin(canvasPlugin);
presenter.installPlugin(new FramePlugin()); presenter.installPlugin(new FramePlugin());
@@ -170,7 +174,31 @@ public class MainFrame extends JFrame implements IView {
// IView // IView
@Override @Override
public void addComponent(JComponent component, int position) throws BadPositionException { public void showMessage(String message, String title, int messageType) {
JOptionPane.showMessageDialog(this, message, title, messageType);
}
@Override
public int showConfirmDialog(String message, String title, int optionType, int messageType) {
return JOptionPane.showConfirmDialog(this, message, title, optionType, messageType);
}
private JMenu findOrCreateMenu(String menuName) {
JMenu menu;
if (menuMap.containsKey(menuName)) {
menu = menuMap.get(menuName);
} else {
menu = new JMenu(menuName);
menuMap.put(menuName, menu);
getMainMenuBar().add(menu);
}
return menu;
}
@Override
public void injectGUIComponent(JComponent component, int position) throws BadPositionException {
LOG.info(String.format("injectGUIComponent(%s, %s)", component.getClass().getName(),
position));
switch (position) { switch (position) {
case SwingConstants.TOP: case SwingConstants.TOP:
topPanel.add(component); topPanel.add(component);
@@ -194,7 +222,9 @@ public class MainFrame extends JFrame implements IView {
} }
@Override @Override
public void addMenuAction(Action action, String menuName) { public void injectMenuAction(Action action, String menuName) {
LOG.info(String.format("injectMenuAction(%s, %s)", action == null ? "Separator" : action
.getValue(Action.NAME), menuName));
JMenu menu = findOrCreateMenu(menuName); JMenu menu = findOrCreateMenu(menuName);
if (action == null) { if (action == null) {
menu.addSeparator(); menu.addSeparator();
@@ -209,7 +239,8 @@ public class MainFrame extends JFrame implements IView {
} }
@Override @Override
public void addSubmenu(String name, Icon icon, String parentMenuName) { public void injectSubmenu(String name, Icon icon, String parentMenuName) {
LOG.info(String.format("injectSubmenu(%s, icon, %s)", name, parentMenuName));
JMenu menu = findOrCreateMenu(parentMenuName); JMenu menu = findOrCreateMenu(parentMenuName);
JMenu submenu = new JMenu(name); JMenu submenu = new JMenu(name);
submenu.setIcon(icon); submenu.setIcon(icon);
@@ -217,28 +248,6 @@ public class MainFrame extends JFrame implements IView {
menuMap.put(name, submenu); menuMap.put(name, submenu);
} }
@Override
public void showMessage(String message, String title, int messageType) {
JOptionPane.showMessageDialog(this, message, title, messageType);
}
@Override
public int showConfirmDialog(String message, String title, int optionType, int messageType) {
return JOptionPane.showConfirmDialog(this, message, title, optionType, messageType);
}
private JMenu findOrCreateMenu(String menuName) {
JMenu menu;
if (menuMap.containsKey(menuName)) {
menu = menuMap.get(menuName);
} else {
menu = new JMenu(menuName);
menuMap.put(menuName, menu);
getMainMenuBar().add(menu);
}
return menu;
}
class FramePlugin implements IPlugIn { class FramePlugin implements IPlugIn {
private IPlugInPort plugInPort; private IPlugInPort plugInPort;
@@ -266,4 +275,5 @@ public class MainFrame extends JFrame implements IView {
} }
} }
} }
} }
@@ -1,4 +1,4 @@
package org.diylc.gui.components; package org.diylc.swing.gui.components;
import java.io.File; import java.io.File;
@@ -1,4 +1,4 @@
package org.diylc.gui.editor; package org.diylc.swing.gui.editor;
import javax.swing.JSlider; import javax.swing.JSlider;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
@@ -1,4 +1,4 @@
package org.diylc.gui.editor; package org.diylc.swing.gui.editor;
import java.awt.Color; import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
@@ -1,4 +1,4 @@
package org.diylc.gui.editor; package org.diylc.swing.gui.editor;
import java.awt.event.ItemEvent; import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
@@ -1,4 +1,4 @@
package org.diylc.gui.editor; package org.diylc.swing.gui.editor;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
@@ -1,4 +1,4 @@
package org.diylc.gui.editor; package org.diylc.swing.gui.editor;
import java.awt.Color; import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
@@ -1,4 +1,4 @@
package org.diylc.gui.editor; package org.diylc.swing.gui.editor;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Container; import java.awt.Container;
@@ -1,4 +1,4 @@
package org.diylc.gui.editor; package org.diylc.swing.gui.editor;
import java.awt.Component; import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;
@@ -1,4 +1,4 @@
package org.diylc.gui.editor; package org.diylc.swing.gui.editor;
import javax.swing.JTextField; import javax.swing.JTextField;
import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentEvent;
@@ -1,4 +1,4 @@
package org.diylc.plugins.canvas; package org.diylc.swing.plugins.canvas;
import java.awt.dnd.DragGestureEvent; import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragGestureListener; import java.awt.dnd.DragGestureListener;
@@ -1,4 +1,4 @@
package org.diylc.plugins.canvas; package org.diylc.swing.plugins.canvas;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
@@ -31,8 +31,8 @@ import javax.swing.KeyStroke;
import org.diylc.common.DrawOption; import org.diylc.common.DrawOption;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.common.PropertyWrapper; import org.diylc.common.PropertyWrapper;
import org.diylc.gui.DialogFactory; import org.diylc.swing.gui.DialogFactory;
import org.diylc.gui.editor.PropertyEditorDialog; import org.diylc.swing.gui.editor.PropertyEditorDialog;
import com.diyfever.gui.ButtonDialog; import com.diyfever.gui.ButtonDialog;
@@ -1,4 +1,4 @@
package org.diylc.plugins.canvas; package org.diylc.swing.plugins.canvas;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Rectangle; import java.awt.Rectangle;
@@ -16,8 +16,9 @@ import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.plugins.file.ProjectDrawingProvider;
import org.diylc.presenter.Presenter; import org.diylc.presenter.Presenter;
import org.diylc.swing.ISwingUI;
import org.diylc.swing.plugins.file.ProjectDrawingProvider;
import com.diyfever.gui.miscutils.ConfigurationManager; import com.diyfever.gui.miscutils.ConfigurationManager;
import com.diyfever.gui.ruler.IRulerListener; import com.diyfever.gui.ruler.IRulerListener;
@@ -31,14 +32,17 @@ public class CanvasPlugin implements IPlugIn {
private CanvasPanel canvasPanel; private CanvasPanel canvasPanel;
private IPlugInPort plugInPort; private IPlugInPort plugInPort;
public CanvasPlugin() { private ISwingUI swingUI;
public CanvasPlugin(ISwingUI swingUI) {
this.swingUI = swingUI;
} }
@Override @Override
public void connect(IPlugInPort plugInPort) { public void connect(IPlugInPort plugInPort) {
this.plugInPort = plugInPort; this.plugInPort = plugInPort;
try { try {
plugInPort.injectGUIComponent(getScrollPane(), SwingConstants.CENTER); swingUI.injectGUIComponent(getScrollPane(), SwingConstants.CENTER);
} catch (BadPositionException e) { } catch (BadPositionException e) {
LOG.error("Could not install canvas plugin", e); LOG.error("Could not install canvas plugin", e);
} }
@@ -1,4 +1,4 @@
package org.diylc.plugins.canvas; package org.diylc.swing.plugins.canvas;
import java.awt.Point; import java.awt.Point;
import java.awt.dnd.DragSourceDragEvent; import java.awt.dnd.DragSourceDragEvent;
@@ -1,4 +1,4 @@
package org.diylc.plugins.canvas; package org.diylc.swing.plugins.canvas;
import java.awt.Point; import java.awt.Point;
import java.awt.dnd.DnDConstants; import java.awt.dnd.DnDConstants;
@@ -1,4 +1,4 @@
package org.diylc.plugins.canvas; package org.diylc.swing.plugins.canvas;
import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable; import java.awt.datatransfer.Transferable;
@@ -1,4 +1,4 @@
package org.diylc.plugins.canvas; package org.diylc.swing.plugins.canvas;
import java.awt.Point; import java.awt.Point;
import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.DataFlavor;
@@ -1,4 +1,4 @@
package org.diylc.plugins.canvas; package org.diylc.swing.plugins.canvas;
import java.awt.Point; import java.awt.Point;
import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.DataFlavor;
@@ -1,4 +1,4 @@
package org.diylc.plugins.clipboard; package org.diylc.swing.plugins.clipboard;
import java.awt.Toolkit; import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.Clipboard;
@@ -22,9 +22,10 @@ import org.diylc.common.IPlugInPort;
import org.diylc.common.PropertyWrapper; import org.diylc.common.PropertyWrapper;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.Project; import org.diylc.core.Project;
import org.diylc.gui.DialogFactory;
import org.diylc.gui.editor.PropertyEditorDialog;
import org.diylc.images.IconLoader; import org.diylc.images.IconLoader;
import org.diylc.swing.ISwingUI;
import org.diylc.swing.gui.DialogFactory;
import org.diylc.swing.gui.editor.PropertyEditorDialog;
import com.diyfever.gui.ButtonDialog; import com.diyfever.gui.ButtonDialog;
import com.diyfever.gui.undo.IUndoListener; import com.diyfever.gui.undo.IUndoListener;
@@ -47,7 +48,7 @@ public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
private UndoHandler<Project> undoHandler; private UndoHandler<Project> undoHandler;
public EditMenuPlugin() { public EditMenuPlugin(ISwingUI swingUI) {
clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
cloner = new Cloner(); cloner = new Cloner();
undoHandler = new UndoHandler<Project>(new IUndoListener<Project>() { undoHandler = new UndoHandler<Project>(new IUndoListener<Project>() {
@@ -64,29 +65,29 @@ public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
refreshActions(); refreshActions();
} }
}); });
swingUI.injectMenuAction(undoHandler.getUndoAction(), EDIT_TITLE);
swingUI.injectMenuAction(undoHandler.getRedoAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
// cutAction = new CutAction();
// plugInPort.injectMenuAction(cutAction, EDIT_TITLE);
copyAction = new CopyAction();
swingUI.injectMenuAction(copyAction, EDIT_TITLE);
pasteAction = new PasteAction();
swingUI.injectMenuAction(pasteAction, EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(new SelectAllAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(new EditSelectionAction(), EDIT_TITLE);
swingUI.injectMenuAction(new EditProjectAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(new GroupAction(), EDIT_TITLE);
swingUI.injectMenuAction(new UngroupAction(), EDIT_TITLE);
} }
@Override @Override
public void connect(IPlugInPort plugInPort) { public void connect(IPlugInPort plugInPort) {
this.plugInPort = plugInPort; this.plugInPort = plugInPort;
plugInPort.injectMenuAction(undoHandler.getUndoAction(), EDIT_TITLE);
plugInPort.injectMenuAction(undoHandler.getRedoAction(), EDIT_TITLE);
plugInPort.injectMenuAction(null, EDIT_TITLE);
// cutAction = new CutAction();
// plugInPort.injectMenuAction(cutAction, EDIT_TITLE);
copyAction = new CopyAction();
plugInPort.injectMenuAction(copyAction, EDIT_TITLE);
pasteAction = new PasteAction();
plugInPort.injectMenuAction(pasteAction, EDIT_TITLE);
plugInPort.injectMenuAction(null, EDIT_TITLE);
plugInPort.injectMenuAction(new SelectAllAction(), EDIT_TITLE);
plugInPort.injectMenuAction(null, EDIT_TITLE);
plugInPort.injectMenuAction(new EditSelectionAction(), EDIT_TITLE);
plugInPort.injectMenuAction(new EditProjectAction(), EDIT_TITLE);
plugInPort.injectMenuAction(null, EDIT_TITLE);
plugInPort.injectMenuAction(new GroupAction(), EDIT_TITLE);
plugInPort.injectMenuAction(new UngroupAction(), EDIT_TITLE);
refreshActions(); refreshActions();
} }
@@ -1,4 +1,4 @@
package org.diylc.plugins.file; package org.diylc.swing.plugins.file;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@@ -15,8 +15,8 @@ import javax.swing.JFrame;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import org.diylc.gui.DialogFactory;
import org.diylc.images.IconLoader; import org.diylc.images.IconLoader;
import org.diylc.swing.gui.DialogFactory;
import com.diyfever.gui.export.TableExporter; import com.diyfever.gui.export.TableExporter;
import com.diyfever.gui.objecttable.ObjectListTable; import com.diyfever.gui.objecttable.ObjectListTable;
@@ -1,4 +1,4 @@
package org.diylc.plugins.file; package org.diylc.swing.plugins.file;
public class BomEntry { public class BomEntry {
@@ -1,4 +1,4 @@
package org.diylc.plugins.file; package org.diylc.swing.plugins.file;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@@ -1,4 +1,4 @@
package org.diylc.plugins.file; package org.diylc.swing.plugins.file;
import java.io.File; import java.io.File;
@@ -1,4 +1,4 @@
package org.diylc.plugins.file; package org.diylc.swing.plugins.file;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.print.PrinterException; import java.awt.print.PrinterException;
@@ -13,9 +13,10 @@ import org.diylc.common.EventType;
import org.diylc.common.IPlugIn; import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.common.PropertyWrapper; import org.diylc.common.PropertyWrapper;
import org.diylc.gui.DialogFactory;
import org.diylc.gui.editor.PropertyEditorDialog;
import org.diylc.images.IconLoader; import org.diylc.images.IconLoader;
import org.diylc.swing.ISwingUI;
import org.diylc.swing.gui.DialogFactory;
import org.diylc.swing.gui.editor.PropertyEditorDialog;
import com.diyfever.gui.ButtonDialog; import com.diyfever.gui.ButtonDialog;
import com.diyfever.gui.IDrawingProvider; import com.diyfever.gui.IDrawingProvider;
@@ -36,29 +37,29 @@ public class FileMenuPlugin implements IPlugIn {
private ProjectDrawingProvider drawingProvider; private ProjectDrawingProvider drawingProvider;
private TraceMaskDrawingProvider traceMaskDrawingProvider; private TraceMaskDrawingProvider traceMaskDrawingProvider;
public FileMenuPlugin(ISwingUI swingUI) {
swingUI.injectMenuAction(new NewAction(), FILE_TITLE);
swingUI.injectMenuAction(new OpenAction(), FILE_TITLE);
swingUI.injectMenuAction(new SaveAction(), FILE_TITLE);
swingUI.injectMenuAction(new SaveAsAction(), FILE_TITLE);
swingUI.injectMenuAction(null, FILE_TITLE);
swingUI.injectMenuAction(new ExportPDFAction(drawingProvider), FILE_TITLE);
swingUI.injectMenuAction(new ExportPNGAction(drawingProvider), FILE_TITLE);
swingUI.injectMenuAction(new PrintAction(drawingProvider), FILE_TITLE);
swingUI.injectSubmenu(TRACE_MASK_TITLE, IconLoader.TraceMask.getIcon(), FILE_TITLE);
swingUI.injectMenuAction(new ExportPDFAction(traceMaskDrawingProvider), TRACE_MASK_TITLE);
swingUI.injectMenuAction(new ExportPNGAction(traceMaskDrawingProvider), TRACE_MASK_TITLE);
swingUI.injectMenuAction(new PrintAction(traceMaskDrawingProvider), TRACE_MASK_TITLE);
swingUI.injectMenuAction(new CreateBomAction(), FILE_TITLE);
swingUI.injectMenuAction(null, FILE_TITLE);
swingUI.injectMenuAction(new ExitAction(), FILE_TITLE);
}
@Override @Override
public void connect(IPlugInPort plugInPort) { public void connect(IPlugInPort plugInPort) {
this.plugInPort = plugInPort; this.plugInPort = plugInPort;
this.drawingProvider = new ProjectDrawingProvider(plugInPort, false); this.drawingProvider = new ProjectDrawingProvider(plugInPort, false);
this.traceMaskDrawingProvider = new TraceMaskDrawingProvider(plugInPort); this.traceMaskDrawingProvider = new TraceMaskDrawingProvider(plugInPort);
plugInPort.injectMenuAction(new NewAction(), FILE_TITLE);
plugInPort.injectMenuAction(new OpenAction(), FILE_TITLE);
plugInPort.injectMenuAction(new SaveAction(), FILE_TITLE);
plugInPort.injectMenuAction(new SaveAsAction(), FILE_TITLE);
plugInPort.injectMenuAction(null, FILE_TITLE);
plugInPort.injectMenuAction(new ExportPDFAction(drawingProvider), FILE_TITLE);
plugInPort.injectMenuAction(new ExportPNGAction(drawingProvider), FILE_TITLE);
plugInPort.injectMenuAction(new PrintAction(drawingProvider), FILE_TITLE);
plugInPort.injectSubmenu(TRACE_MASK_TITLE, IconLoader.TraceMask.getIcon(), FILE_TITLE);
plugInPort
.injectMenuAction(new ExportPDFAction(traceMaskDrawingProvider), TRACE_MASK_TITLE);
plugInPort
.injectMenuAction(new ExportPNGAction(traceMaskDrawingProvider), TRACE_MASK_TITLE);
plugInPort.injectMenuAction(new PrintAction(traceMaskDrawingProvider), TRACE_MASK_TITLE);
plugInPort.injectMenuAction(new CreateBomAction(), FILE_TITLE);
plugInPort.injectMenuAction(null, FILE_TITLE);
plugInPort.injectMenuAction(new ExitAction(), FILE_TITLE);
} }
class NewAction extends AbstractAction { class NewAction extends AbstractAction {
@@ -87,7 +88,8 @@ public class FileMenuPlugin implements IPlugIn {
// Save default values. // Save default values.
for (PropertyWrapper property : editor.getDefaultedProperties()) { for (PropertyWrapper property : editor.getDefaultedProperties()) {
if (property.getValue() != null) { if (property.getValue() != null) {
plugInPort.setProjectDefaultPropertyValue(property.getName(), property.getValue()); plugInPort.setProjectDefaultPropertyValue(property.getName(), property
.getValue());
} }
} }
} }
@@ -1,4 +1,4 @@
package org.diylc.plugins.file; package org.diylc.swing.plugins.file;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics; import java.awt.Graphics;
@@ -1,4 +1,4 @@
package org.diylc.plugins.file; package org.diylc.swing.plugins.file;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
@@ -11,14 +11,11 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.util.EnumSet; import java.util.EnumSet;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.JPanel; import javax.swing.JPanel;
import org.diylc.common.BadPositionException;
import org.diylc.common.DrawOption; import org.diylc.common.DrawOption;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.core.IView; import org.diylc.core.IView;
@@ -52,19 +49,6 @@ public class ProjectPreview extends JPanel implements PropertyChangeListener, IF
setPreferredSize(new Dimension(140, 128)); setPreferredSize(new Dimension(140, 128));
presenter = new Presenter(new IView() { presenter = new Presenter(new IView() {
@Override
public void addComponent(JComponent component, int position)
throws BadPositionException {
}
@Override
public void addMenuAction(Action action, String menuName) {
}
@Override
public void addSubmenu(String name, Icon icon, String parentMenuName) {
}
@Override @Override
public int showConfirmDialog(String message, String title, int optionType, public int showConfirmDialog(String message, String title, int optionType,
int messageType) { int messageType) {
@@ -1,4 +1,4 @@
package org.diylc.plugins.file; package org.diylc.swing.plugins.file;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics; import java.awt.Graphics;
@@ -1,4 +1,4 @@
package org.diylc.plugins.help; package org.diylc.swing.plugins.help;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.util.EnumSet; import java.util.EnumSet;
@@ -9,8 +9,9 @@ import javax.swing.Icon;
import org.diylc.common.EventType; import org.diylc.common.EventType;
import org.diylc.common.IPlugIn; import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.gui.DialogFactory;
import org.diylc.images.IconLoader; import org.diylc.images.IconLoader;
import org.diylc.swing.ISwingUI;
import org.diylc.swing.gui.DialogFactory;
import com.diyfever.gui.AboutDialog; import com.diyfever.gui.AboutDialog;
import com.diyfever.gui.miscutils.Utils; import com.diyfever.gui.miscutils.Utils;
@@ -34,24 +35,26 @@ public class HelpMenuPlugin implements IPlugIn {
private IPlugInPort plugInPort; private IPlugInPort plugInPort;
private AboutDialog aboutDialog; private AboutDialog aboutDialog;
public HelpMenuPlugin(ISwingUI swingUI) {
swingUI.injectMenuAction(new NavigateURLAction("User Manual", IconLoader.Manual.getIcon(),
MANUAL_URL), HELP_TITLE);
swingUI.injectMenuAction(new NavigateURLAction("FAQ", IconLoader.Faq.getIcon(), FAQ_URL),
HELP_TITLE);
swingUI.injectMenuAction(new NavigateURLAction("Component API", IconLoader.Component
.getIcon(), COMPONENT_URL), HELP_TITLE);
swingUI.injectMenuAction(new NavigateURLAction("Plugin API", IconLoader.Plugin.getIcon(),
PLUGIN_URL), HELP_TITLE);
swingUI.injectMenuAction(new NavigateURLAction("Submit a Bug", IconLoader.Bug.getIcon(),
BUG_URL), HELP_TITLE);
swingUI.injectMenuAction(null, HELP_TITLE);
swingUI.injectMenuAction(new NavigateURLAction("Donate", IconLoader.Donate.getIcon(),
DONATE_URL), HELP_TITLE);
swingUI.injectMenuAction(new AboutAction(), HELP_TITLE);
}
@Override @Override
public void connect(IPlugInPort plugInPort) { public void connect(IPlugInPort plugInPort) {
this.plugInPort = plugInPort; this.plugInPort = plugInPort;
plugInPort.injectMenuAction(new NavigateURLAction("User Manual", IconLoader.Manual
.getIcon(), MANUAL_URL), HELP_TITLE);
plugInPort.injectMenuAction(
new NavigateURLAction("FAQ", IconLoader.Faq.getIcon(), FAQ_URL), HELP_TITLE);
plugInPort.injectMenuAction(new NavigateURLAction("Component API", IconLoader.Component
.getIcon(), COMPONENT_URL), HELP_TITLE);
plugInPort.injectMenuAction(new NavigateURLAction("Plugin API",
IconLoader.Plugin.getIcon(), PLUGIN_URL), HELP_TITLE);
plugInPort.injectMenuAction(new NavigateURLAction("Submit a Bug", IconLoader.Bug.getIcon(),
BUG_URL), HELP_TITLE);
plugInPort.injectMenuAction(null, HELP_TITLE);
plugInPort.injectMenuAction(new NavigateURLAction("Donate", IconLoader.Donate.getIcon(),
DONATE_URL), HELP_TITLE);
plugInPort.injectMenuAction(new AboutAction(), HELP_TITLE);
} }
@Override @Override
@@ -1,4 +1,4 @@
package org.diylc.plugins.layers; package org.diylc.swing.plugins.layers;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.util.EnumSet; import java.util.EnumSet;
@@ -13,6 +13,7 @@ import org.diylc.common.EventType;
import org.diylc.common.IPlugIn; import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.swing.ISwingUI;
public class LayersMenuPlugin implements IPlugIn { public class LayersMenuPlugin implements IPlugIn {
@@ -21,13 +22,7 @@ public class LayersMenuPlugin implements IPlugIn {
private IPlugInPort plugInPort; private IPlugInPort plugInPort;
private Map<Layer, Action> lockActionMap; private Map<Layer, Action> lockActionMap;
public LayersMenuPlugin() { public LayersMenuPlugin(ISwingUI swingUI) {
}
@Override
public void connect(IPlugInPort plugInPort) {
this.plugInPort = plugInPort;
lockActionMap = new HashMap<Layer, Action>(); lockActionMap = new HashMap<Layer, Action>();
for (Layer layer : Layer.values()) { for (Layer layer : Layer.values()) {
final int zOrder = layer.getZOrder(); final int zOrder = layer.getZOrder();
@@ -43,10 +38,15 @@ public class LayersMenuPlugin implements IPlugIn {
}; };
action.putValue(IPlugInPort.CHECK_BOX_MENU_ITEM, true); action.putValue(IPlugInPort.CHECK_BOX_MENU_ITEM, true);
lockActionMap.put(layer, action); lockActionMap.put(layer, action);
plugInPort.injectMenuAction(action, LOCK_LAYERS_TITLE); swingUI.injectMenuAction(action, LOCK_LAYERS_TITLE);
} }
} }
@Override
public void connect(IPlugInPort plugInPort) {
this.plugInPort = plugInPort;
}
@Override @Override
public EnumSet<EventType> getSubscribedEventTypes() { public EnumSet<EventType> getSubscribedEventTypes() {
return EnumSet.of(EventType.LAYER_STATE_CHANGED); return EnumSet.of(EventType.LAYER_STATE_CHANGED);
@@ -1,4 +1,4 @@
package org.diylc.plugins.online; package org.diylc.swing.plugins.online;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.util.EnumSet; import java.util.EnumSet;
@@ -9,12 +9,12 @@ import javax.swing.SwingWorker;
import org.diylc.common.EventType; import org.diylc.common.EventType;
import org.diylc.common.IPlugIn; import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.gui.DialogFactory;
import org.diylc.images.IconLoader; import org.diylc.images.IconLoader;
import org.diylc.plugins.online.presenter.LibraryPresenter; import org.diylc.swing.gui.DialogFactory;
import org.diylc.plugins.online.view.LoginDialog; import org.diylc.swing.plugins.online.presenter.LibraryPresenter;
import org.diylc.plugins.online.view.NewUserDialog; import org.diylc.swing.plugins.online.view.LoginDialog;
import org.diylc.plugins.online.view.UploadDialog; import org.diylc.swing.plugins.online.view.NewUserDialog;
import org.diylc.swing.plugins.online.view.UploadDialog;
import com.diyfever.gui.ProgressDialog; import com.diyfever.gui.ProgressDialog;
@@ -32,13 +32,13 @@ public class OnlineManager implements IPlugIn {
initialize(); initialize();
plugInPort.injectMenuAction(new LibraryAction(), ONLINE_TITLE); // plugInPort.injectMenuAction(new LibraryAction(), ONLINE_TITLE);
plugInPort.injectMenuAction(null, ONLINE_TITLE); // plugInPort.injectMenuAction(null, ONLINE_TITLE);
plugInPort.injectMenuAction(new LoginAction(), ONLINE_TITLE); // plugInPort.injectMenuAction(new LoginAction(), ONLINE_TITLE);
plugInPort.injectMenuAction(new CreateAccountAction(), ONLINE_TITLE); // plugInPort.injectMenuAction(new CreateAccountAction(), ONLINE_TITLE);
plugInPort.injectMenuAction(null, ONLINE_TITLE); // plugInPort.injectMenuAction(null, ONLINE_TITLE);
plugInPort.injectMenuAction(new UploadAction(), ONLINE_TITLE); // plugInPort.injectMenuAction(new UploadAction(), ONLINE_TITLE);
plugInPort.injectMenuAction(new ManageProjectsAction(), ONLINE_TITLE); // plugInPort.injectMenuAction(new ManageProjectsAction(), ONLINE_TITLE);
} }
private void initialize() { private void initialize() {
@@ -1,7 +1,7 @@
package org.diylc.plugins.online; package org.diylc.swing.plugins.online;
import org.apache.log4j.BasicConfigurator; import org.apache.log4j.BasicConfigurator;
import org.diylc.plugins.online.presenter.LibraryPresenter; import org.diylc.swing.plugins.online.presenter.LibraryPresenter;
public class Test { public class Test {
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.model; package org.diylc.swing.plugins.online.model;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.io.Serializable; import java.io.Serializable;
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.presenter; package org.diylc.swing.plugins.online.presenter;
public class AlreadyExistsException extends Exception { public class AlreadyExistsException extends Exception {
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.presenter; package org.diylc.swing.plugins.online.presenter;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
@@ -10,7 +10,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.diylc.plugins.online.model.ProjectEntity; import org.diylc.swing.plugins.online.model.ProjectEntity;
public class LibraryPresenter { public class LibraryPresenter {
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.presenter; package org.diylc.swing.plugins.online.presenter;
import java.sql.Connection; import java.sql.Connection;
import java.sql.Driver; import java.sql.Driver;
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.presenter; package org.diylc.swing.plugins.online.presenter;
public class NotConnectedException extends Exception { public class NotConnectedException extends Exception {
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.presenter; package org.diylc.swing.plugins.online.presenter;
public class NotExistsException extends Exception { public class NotExistsException extends Exception {
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.presenter; package org.diylc.swing.plugins.online.presenter;
public class NotLoggedInException extends Exception { public class NotLoggedInException extends Exception {
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.view; package org.diylc.swing.plugins.online.view;
import javax.swing.JFrame; import javax.swing.JFrame;
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.view; package org.diylc.swing.plugins.online.view;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.view; package org.diylc.swing.plugins.online.view;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
@@ -1,4 +1,4 @@
package org.diylc.plugins.online.view; package org.diylc.swing.plugins.online.view;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
import java.awt.GridBagLayout; import java.awt.GridBagLayout;
@@ -1,4 +1,4 @@
package org.diylc.plugins.statusbar; package org.diylc.swing.plugins.statusbar;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
@@ -24,6 +24,7 @@ import javax.swing.JPanel;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.UIManager; import javax.swing.UIManager;
import org.apache.log4j.Logger;
import org.diylc.common.BadPositionException; import org.diylc.common.BadPositionException;
import org.diylc.common.ComponentSelection; import org.diylc.common.ComponentSelection;
import org.diylc.common.ComponentType; import org.diylc.common.ComponentType;
@@ -32,6 +33,8 @@ import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.presenter.Presenter; import org.diylc.presenter.Presenter;
import org.diylc.swing.ISwingUI;
import org.diylc.swing.gui.MainFrame;
import com.diyfever.gui.MemoryBar; import com.diyfever.gui.MemoryBar;
import com.diyfever.gui.miscutils.ConfigurationManager; import com.diyfever.gui.miscutils.ConfigurationManager;
@@ -43,8 +46,10 @@ public class StatusBar extends JPanel implements IPlugIn {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static final Logger LOG = Logger.getLogger(StatusBar.class);
public static String UPDATE_URL = "http://www.diy-fever.com/update.xml"; public static String UPDATE_URL = "http://www.diy-fever.com/update.xml";
private static final Format sizeFormat = new DecimalFormat("0.00"); private static final Format sizeFormat = new DecimalFormat("0.##");
private JComboBox zoomBox; private JComboBox zoomBox;
private UpdateLabel updateLabel; private UpdateLabel updateLabel;
@@ -61,11 +66,16 @@ public class StatusBar extends JPanel implements IPlugIn {
private List<String> selectedComponentNames; private List<String> selectedComponentNames;
private List<String> stuckComponentNames; private List<String> stuckComponentNames;
public StatusBar() { public StatusBar(ISwingUI swingUI) {
super(); super();
// setLayout(new FlowLayout(FlowLayout.TRAILING));
setLayout(new GridBagLayout()); setLayout(new GridBagLayout());
try {
swingUI.injectGUIComponent(this, SwingUtilities.BOTTOM);
} catch (BadPositionException e) {
LOG.error("Could not install status bar", e);
}
} }
private JComboBox getZoomBox() { private JComboBox getZoomBox() {
@@ -164,13 +174,6 @@ public class StatusBar extends JPanel implements IPlugIn {
this.plugInPort = plugInPort; this.plugInPort = plugInPort;
layoutComponents(); layoutComponents();
try {
plugInPort.injectGUIComponent(this, SwingUtilities.BOTTOM);
} catch (BadPositionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
@Override @Override
@@ -1,4 +1,4 @@
package org.diylc.plugins.toolbox; package org.diylc.swing.plugins.toolbox;
import java.awt.Insets; import java.awt.Insets;
import java.awt.dnd.DnDConstants; import java.awt.dnd.DnDConstants;
@@ -1,4 +1,4 @@
package org.diylc.plugins.toolbox; package org.diylc.swing.plugins.toolbox;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
@@ -1,24 +1,34 @@
package org.diylc.plugins.toolbox; package org.diylc.swing.plugins.toolbox;
import java.util.EnumSet; import java.util.EnumSet;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import org.apache.log4j.Logger;
import org.diylc.common.BadPositionException; import org.diylc.common.BadPositionException;
import org.diylc.common.EventType; import org.diylc.common.EventType;
import org.diylc.common.IPlugIn; import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.swing.ISwingUI;
import org.diylc.swing.plugins.statusbar.StatusBar;
public class ToolBox implements IPlugIn { public class ToolBox implements IPlugIn {
private static final Logger LOG = Logger.getLogger(StatusBar.class);
private ISwingUI swingUI;
public ToolBox(ISwingUI swingUI) {
this.swingUI = swingUI;
}
@Override @Override
public void connect(IPlugInPort plugInPort) { public void connect(IPlugInPort plugInPort) {
try { try {
plugInPort.injectGUIComponent(new ComponentTabbedPane(plugInPort), SwingConstants.TOP); swingUI.injectGUIComponent(new ComponentTabbedPane(plugInPort), SwingConstants.TOP);
} catch (BadPositionException e) { } catch (BadPositionException e) {
// TODO Auto-generated catch block LOG.error("Could not install the toolbox", e);
e.printStackTrace();
} }
} }
@@ -1,4 +1,4 @@
package org.diylc.plugins.toolbox; package org.diylc.swing.plugins.toolbox;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.StringSelection;
@@ -1,4 +1,4 @@
package org.diylc.plugins.toolbox; package org.diylc.swing.plugins.toolbox;
import java.awt.dnd.DragSourceDragEvent; import java.awt.dnd.DragSourceDragEvent;
import java.awt.dnd.DragSourceDropEvent; import java.awt.dnd.DragSourceDropEvent;
@@ -2,7 +2,7 @@ package org.diylc;
import java.util.List; import java.util.List;
import org.diylc.plugins.online.model.ProjectEntity; import org.diylc.swing.plugins.online.model.ProjectEntity;
import com.diyfever.httpproxy.ParamName; import com.diyfever.httpproxy.ParamName;
@@ -9,7 +9,7 @@ import javax.swing.JFrame;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import org.apache.log4j.BasicConfigurator; import org.apache.log4j.BasicConfigurator;
import org.diylc.plugins.online.model.ProjectEntity; import org.diylc.swing.plugins.online.model.ProjectEntity;
import com.diyfever.gui.objecttable.IActionProcessor; import com.diyfever.gui.objecttable.IActionProcessor;
import com.diyfever.gui.objecttable.ObjectListTable; import com.diyfever.gui.objecttable.ObjectListTable;
@@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.apache.log4j.BasicConfigurator; import org.apache.log4j.BasicConfigurator;
import org.diylc.plugins.online.model.ProjectEntity; import org.diylc.swing.plugins.online.model.ProjectEntity;
import com.diyfever.httpproxy.ParamName; import com.diyfever.httpproxy.ParamName;
import com.diyfever.httpproxy.PhpFlatProxy; import com.diyfever.httpproxy.PhpFlatProxy;
@@ -9,8 +9,8 @@ import org.diylc.components.MockDIYComponent;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.measures.Capacitance; import org.diylc.core.measures.Capacitance;
import org.diylc.core.measures.CapacitanceUnit; import org.diylc.core.measures.CapacitanceUnit;
import org.diylc.plugins.file.BomEntry; import org.diylc.swing.plugins.file.BomEntry;
import org.diylc.plugins.file.BomMaker; import org.diylc.swing.plugins.file.BomMaker;
import org.junit.Test; import org.junit.Test;
public class BomMakerTest { public class BomMakerTest {