diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/.classpath b/ diy-layout-creator --username bancika@gmail.com/DIYLC/.classpath deleted file mode 100644 index aedd5a59..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/.classpath +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/.project b/ diy-layout-creator --username bancika@gmail.com/DIYLC/.project deleted file mode 100644 index 02c8729f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - DIYLC - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/DIYLCStarter.launch b/ diy-layout-creator --username bancika@gmail.com/DIYLC/DIYLCStarter.launch deleted file mode 100644 index e6e7b0f9..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/DIYLCStarter.launch +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/build.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/build.xml deleted file mode 100644 index ae556a0f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/build.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - Compile with JDK ${java.runtime.version} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml deleted file mode 100644 index 47113384..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - default.org.diylc.components.passive.TrimmerPotentiometer:Type - FLAT_LARGE - - - lastPath - C:\Documents and Settings\Branislav Stojkovic\My Documents\Downloads - - - abnormalExit - false - - - stickyPoints - true - - - theme - - Light - - 255 - 255 - 255 - 255 - - - 240 - 240 - 240 - 240 - - - 0 - 0 - 0 - 255 - - - - - antiAliasing - true - - - snapToGrid - true - - - hiQualityRender - false - - - outline - true - - - exportGrid - true - - - autoEdit - false - - - wheelZoom - false - - - default.org.diylc.components.misc.Label:Font Bold - false - - - autoCreatePads - true - - - continuousCreation - true - - - showTemplatesAtStartup - false - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/bancika-gui-framework.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/bancika-gui-framework.jar deleted file mode 100644 index 439eb6b9..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/bancika-gui-framework.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/cloning-1.5.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/cloning-1.5.jar deleted file mode 100644 index 781fe27d..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/cloning-1.5.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/iText-2.1.7.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/iText-2.1.7.jar deleted file mode 100644 index 3f2c1882..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/iText-2.1.7.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/objenesis-1.1.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/objenesis-1.1.jar deleted file mode 100644 index f178db33..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/objenesis-1.1.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/poi-3.5-FINAL-20090928.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/poi-3.5-FINAL-20090928.jar deleted file mode 100644 index 9ff92b02..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/poi-3.5-FINAL-20090928.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar deleted file mode 100644 index 6686875d..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/DIYLCStarter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/DIYLCStarter.java deleted file mode 100644 index 850c355f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/DIYLCStarter.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.diylc; - -import java.io.FileInputStream; -import java.net.URL; -import java.util.Properties; - -import javax.swing.UIManager; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; -import org.diylc.presenter.Presenter; -import org.diylc.swing.gui.MainFrame; -import org.diylc.swing.gui.TemplateDialog; - -import com.diyfever.gui.miscutils.ConfigurationManager; -import com.diyfever.gui.miscutils.PropertyInjector; - -/** - * Main class that runs DIYLC. - * - * @author Branislav Stojkovic - * - * @see Presenter - * @see MainFrame - */ -public class DIYLCStarter { - - private static final Logger LOG = Logger.getLogger(Presenter.class); - - /** - * @param args - */ - public static void main(String[] args) { - URL url = DIYLCStarter.class.getResource("log4j.properties"); - Properties properties = new Properties(); - try { - properties.load(url.openStream()); - PropertyConfigurator.configure(properties); - } catch (Exception e) { - LOG.error("Could not initialize log4j configuration", e); - } - - LOG.debug("Java version: " + System.getProperty("java.runtime.version") + " by " + System.getProperty("java.vm.vendor")); - - LOG.info("Starting DIYLC with working directory " + System.getProperty("user.dir")); - - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } catch (Exception e) { - LOG.error("Could not set Look&Feel", e); - } - - MainFrame mainFrame = new MainFrame(); - mainFrame.setLocationRelativeTo(null); - mainFrame.setVisible(true); - - boolean showTemplates = ConfigurationManager.getInstance().readBoolean( - TemplateDialog.SHOW_TEMPLATES_KEY, true); - if (showTemplates) { - TemplateDialog templateDialog = new TemplateDialog(mainFrame, mainFrame.getPresenter()); - if (!templateDialog.getFiles().isEmpty()) { - templateDialog.setVisible(true); - } - } - - url = DIYLCStarter.class.getResource("/config.properties"); - properties = new Properties(); - try { - LOG.info("Injecting default properties."); - properties.load(new FileInputStream("config.properties")); - PropertyInjector.injectProperties(properties); - } catch (Exception e) { - LOG.error("Could not read config.properties file", e); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ComponentType.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ComponentType.java deleted file mode 100644 index f10717cb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ComponentType.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.diylc.common; - -import javax.swing.Icon; - -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; - -/** - * Entity class used to describe a component type. - * - * @author Branislav Stojkovic - * - * @see IDIYComponent - */ -public class ComponentType { - - private String name; - private String description; - private CreationMethod creationMethod; - private String category; - private String namePrefix; - private String author; - private Icon icon; - private Class> instanceClass; - private double zOrder; - private boolean stretchable; - - public ComponentType(String name, String description, CreationMethod creationMethod, - String category, String namePrefix, String author, Icon icon, - Class> instanceClass, double zOrder, boolean stretchable) { - super(); - this.name = name; - this.description = description; - this.creationMethod = creationMethod; - this.category = category; - this.namePrefix = namePrefix; - this.author = author; - this.icon = icon; - this.instanceClass = instanceClass; - this.zOrder = zOrder; - this.stretchable = stretchable; - } - - public String getName() { - return name; - } - - public String getDescription() { - return description; - } - - public CreationMethod getCreationMethod() { - return creationMethod; - } - - public String getCategory() { - return category; - } - - public String getNamePrefix() { - return namePrefix; - } - - public String getAuthor() { - return author; - } - - public Icon getIcon() { - return icon; - } - - public Class> getInstanceClass() { - return instanceClass; - } - - public double getZOrder() { - return zOrder; - } - - public boolean isStretchable() { - return stretchable; - } - - @Override - public String toString() { - return name; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugIn.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugIn.java deleted file mode 100644 index 3764fc44..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugIn.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.diylc.common; - -import com.diyfever.gui.simplemq.IMessageListener; - -/** - * Interface for plug-ins. - * - * @author Branislav Stojkovic - */ -public interface IPlugIn extends IMessageListener { - - /** - * Method that connects the plug-in with {@link IPlugInPort}. Called by the - * application when plug-in is installed. - * - * @param plugInPort - */ - void connect(IPlugInPort plugInPort); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java deleted file mode 100644 index a87d9d74..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java +++ /dev/null @@ -1,375 +0,0 @@ -package org.diylc.common; - -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.geom.Point2D; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.diylc.core.IDIYComponent; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.swing.plugins.edit.ComponentTransferable; - -import com.diyfever.gui.simplemq.IMessageListener; -import com.diyfever.gui.simplemq.MessageDispatcher; -import com.diyfever.gui.update.VersionNumber; - -/** - * Interface for communication between plug-ins and the application. Plug-ins - * may acquire information or make changes through this interface. Application - * events are dispatched to plug-ins through {@link MessageDispatcher} - * - * @author Branislav Stojkovic - * - * @see IPlugIn - * @see MessageDispatcher - * @see IMessageListener - * @see EventType - */ -public interface IPlugInPort { - - public static final String ANTI_ALIASING_KEY = "antiAliasing"; - public static final String HI_QUALITY_RENDER_KEY = "hiQualityRender"; - public static final String EXPORT_GRID_KEY = "exportGrid"; - public static final String STICKY_POINTS_KEY = "stickyPoints"; - public static final String METRIC_KEY = "metric"; - public static final String SNAP_TO_GRID_KEY = "snapToGrid"; - public static final String AUTO_PADS_KEY = "autoCreatePads"; - public static final String CONTINUOUS_CREATION_KEY = "continuousCreation"; - public static final String AUTO_EDIT_KEY = "autoEdit"; - public static final String ABNORMAL_EXIT_KEY = "abnormalExit"; - public static final String WHEEL_ZOOM_KEY = "wheelZoom"; - public static final String OUTLINE_KEY = "outline"; - public static final String THEME_KEY = "theme"; - public static final String RECENT_COMPONENTS_KEY = "recentComponents"; - - /** - * Returns size of the canvas that takes project dimensions into account as - * well as zoom level. Each dimension is calculated as the product of the - * actual size and the number of pixels per unit. If useZoom is - * set to true, the result is scaled by zoom factor. - * - * @param useZoom - * - * @return canvas dimensions - */ - Dimension getCanvasDimensions(boolean useZoom); - - /** - * Returns an instance of {@link Cursor} that should be used at the - * specified location. - * - * Note: point coordinates are scaled for zoom factor. - * - * @param point - * @return cursor - */ - Cursor getCursorAt(Point point); - - /** - * Returns an instance of currently loaded project. - * - * @return - */ - Project getCurrentProject(); - - /** - * Loads specified {@link Project}. - * - * @param project - * @param freshStart - */ - void loadProject(Project project, boolean freshStart); - - /** - * Creates a new project. - */ - void createNewProject(); - - /** - * Loads a project from the specified file. - * - * @param fileName - */ - void loadProjectFromFile(String fileName); - - /** - * Saves the current project into the specified file. - * - * @param fileName - * @param isBackup - */ - void saveProjectToFile(String fileName, boolean isBackup); - - /** - * @return the current file name. - */ - String getCurrentFileName(); - - /** - * @return true if the current project is modified. - */ - boolean isProjectModified(); - - /** - * Shows a user dialog if there are changes to confirm that it's safe to - * proceed. - * - * @return true, if file actions (new, open, close) can be taken - */ - boolean allowFileAction(); - - /** - * Returns all available {@link ComponentType}s classified by category. - * Result is a {@link Map} between category name to a {@link List} of all - * {@link ComponentType}s that share that category name. - * - * @return - */ - Map> getComponentTypes(); - - /** - * Draws project on the provided {@link Graphics2D}. If the provided filter - * is not null, it will be used to filter the components that are shown. - * - * @param g2d - * @param drawOptions - * specific drawing options - * @param filter - */ - void draw(Graphics2D g2d, Set drawOptions, IComponentFiler filter); - - Double[] getAvailableZoomLevels(); - - /** - * Returns current zoom level where zoomLevel = 1.0d means - * 100%. - * - * @return current zoom level - */ - double getZoomLevel(); - - /** - * Changes current zoom level where zoomLevel = 1.0d means 100% - * - * @param zoomLevel - * new zoom leve - */ - void setZoomLevel(double zoomLevel); - - /** - * Notifies the presenter that mouse is clicked. - * - * Note: point coordinates are display based, i.e. scaled for zoom factor. - * - * @param point - * @param ctrlDown - * @param shiftDown - * @param altDown - * @param clickCount - */ - void mouseClicked(Point point, boolean ctrlDown, boolean shiftDown, boolean altDown, - int clickCount); - - /** - * Notifies the presenter that mouse is moved. - * - * Note: point coordinates are display based, i.e. scaled for zoom factor. - * - * @param point - * @param ctrlDown - * @param shiftDown - * @param altDown - */ - void mouseMoved(Point point, boolean ctrlDown, boolean shiftDown, boolean altDown); - - /** - * Returns the current {@link ComponentTransferable}. - * - * @return - */ - List> getSelectedComponents(); - - /** - * Updates the selection with the specified list of component. Also, updates - * control point map with all components that are stuck to the newly - * selected components. - * - * @param newSelection - */ - void updateSelection(List> newSelection); - - /** - * Selects all components in the project. - */ - void selectAll(); - - /** - * Notification that drag has been started from the specified point. - * - * Note: point coordinates are scaled for zoom factor. - * - * @param point - * @param ctrlDown - * @param shiftDown - * @param altDown - */ - void dragStarted(Point point, boolean ctrlDown, boolean shiftDown, boolean altDown); - - /** - * Checks if it's possible to drop over the specified point. - * - * Note: point coordinates are scaled for zoom factor. - * - * @param point - * @return - */ - boolean dragOver(Point point); - - /** - * Notification that drag has been ended in the specified point. - * - * Note: point coordinates are scaled for zoom factor. - * - * @param point - */ - void dragEnded(Point point); - - /** - * Returns current version number. - * - * @return - */ - VersionNumber getCurrentVersionNumber(); - - /** - * Adds a list of components to the project. - * - * @param components - */ - void pasteComponents(List> components); - - /** - * Deletes all the selected components from the project. - */ - void deleteSelectedComponents(); - - /** - * Sets default value for the specified property name for currently selected - * component types. - * - * @param propertyName - * display name for property - * @param value - * new default value, must not be null - */ - void setSelectionDefaultPropertyValue(String propertyName, Object value); - - /** - * Sets default value for the specified property name for projects. - * - * @param propertyName - * display name for property - * @param value - * new default value, must not be null - */ - void setProjectDefaultPropertyValue(String propertyName, Object value); - - /** - * @return a list of properties that are mutual for all the selected - * components. Resulting list may be empty if selected components do - * not have mutual properties or can be null if the selection is - * empty. - */ - List getMutualSelectionProperties(); - - void editSelection(); - - /** - * @return a list of editable properties of the current project. - */ - List getProjectProperties(); - - /** - * Applies specified properties to the current project. - * - * @param properties - */ - void applyPropertiesToProject(List properties); - - /** - * Sets the new component slot. Specified component type will be used to - * instantiate new component. - */ - void setNewComponentTypeSlot(ComponentType componentType); - - /** - * Changes default size notation, true for metric, false for imperial. - * - * @param isMetric - */ - void setMetric(boolean isMetric); - - /** - * Groups all selected components. - */ - void groupSelectedComponents(); - - /** - * Ungroups all selected components. - */ - void ungroupSelectedComponents(); - - /** - * Locks or unlocks the specified layer. All components within +- 0.5 range - * will be affected by the change as well. - * - * @param layerZOrder - * @param locked - */ - void setLayerLocked(int layerZOrder, boolean locked); - - /** - * @return selection size expressed in either inches or centimeters, based - * on the user preference. - */ - Point2D calculateSelectionDimension(); - - /** - * Sends each of the selected components one step back. - */ - void sendSelectionToBack(); - - /** - * Brings each of the selected components one step to front. - */ - void bringSelectionToFront(); - - /** - * Causes the display to refresh. - */ - void refresh(); - - /** - * @return currently selected theme. - */ - Theme getSelectedTheme(); - - /** - * Changes the current theme. - * - * @param theme - */ - void setSelectedTheme(Theme theme); - - /** - * Renumbers all the selected components. - * - * @param xAxisFirst - */ - void renumberSelectedComponents(boolean xAxisFirst); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/PropertyWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/PropertyWrapper.java deleted file mode 100644 index d07af5f4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/PropertyWrapper.java +++ /dev/null @@ -1,156 +0,0 @@ -package org.diylc.common; - -import java.lang.reflect.InvocationTargetException; - -import org.diylc.core.IPropertyValidator; - -/** - * Entity class for editable properties extracted from component objects. - * Represents a single editable property together with it's current value. - * - * @author Branislav Stojkovic - */ -public class PropertyWrapper implements Cloneable { - - private String name; - private Class type; - private Object value; - private String setter; - private String getter; - private boolean defaultable; - private IPropertyValidator validator; - private boolean unique = true; - private boolean changed = false; - - public PropertyWrapper(String name, Class type, String getter, String setter, - boolean defaultable, IPropertyValidator validator) { - super(); - this.name = name; - this.type = type; - this.getter = getter; - this.setter = setter; - this.defaultable = defaultable; - this.validator = validator; - } - - public void readFrom(Object object) throws IllegalArgumentException, IllegalAccessException, - InvocationTargetException, SecurityException, NoSuchMethodException { - this.value = object.getClass().getMethod(getter).invoke(object); - } - - // public void readUniqueFrom(IDIYComponent component) - // throws IllegalArgumentException, IllegalAccessException, - // InvocationTargetException { - // Object newValue = getter.invoke(component); - // if (!newValue.equals(value)) { - // this.value = null; - // } - // } - - public void writeTo(Object object) throws IllegalArgumentException, IllegalAccessException, - InvocationTargetException, SecurityException, NoSuchMethodException { - object.getClass().getMethod(setter, type).invoke(object, this.value); - } - - public String getName() { - return name; - } - - public Class getType() { - return type; - } - - public Object getValue() { - return value; - } - - public void setValue(Object value) { - this.value = value; - } - - public boolean isDefaultable() { - return defaultable; - } - - public IPropertyValidator getValidator() { - return validator; - } - - public boolean isUnique() { - return unique; - } - - public void setUnique(boolean unique) { - this.unique = unique; - } - - public boolean isChanged() { - return changed; - } - - public void setChanged(boolean changed) { - this.changed = changed; - } - - // @Override - // public Object clone() throws CloneNotSupportedException { - // // Try to invoke clone method on value if possible. - // try { - // Method cloneMethod = value.getClass().getMethod("clone"); - // return new Property(name, type, cloneMethod.invoke(value)); - // } catch (Exception e) { - // } - // return new Property(name, type, value); - // } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (defaultable ? 1231 : 1237); - result = prime * result + ((getter == null) ? 0 : getter.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((setter == null) ? 0 : setter.hashCode()); - result = prime * result + ((type == null) ? 0 : type.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - PropertyWrapper other = (PropertyWrapper) obj; - if (defaultable != other.defaultable) - return false; - if (getter == null) { - if (other.getter != null) - return false; - } else if (!getter.equals(other.getter)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (setter == null) { - if (other.setter != null) - return false; - } else if (!setter.equals(other.setter)) - return false; - if (type == null) { - if (other.type != null) - return false; - } else if (!type.equals(other.type)) - return false; - return true; - } - - @Override - public String toString() { - return name + " = " + value; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractComponent.java deleted file mode 100644 index 251dd1cd..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractComponent.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.diylc.components; - -import java.awt.Color; -import java.awt.Font; -import java.awt.Shape; - -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.EditableProperty; - -/** - * Abstract implementation of {@link IDIYComponent} that contains component name - * and toString. - * - * @author Branislav Stojkovic - * - * @param - */ -public abstract class AbstractComponent implements IDIYComponent { - - private static final long serialVersionUID = 1L; - - protected String name = ""; - - public static Color SELECTION_COLOR = Color.red; - public static Color LABEL_COLOR = Color.black; - public static Color LABEL_COLOR_SELECTED = Color.red; - public static Font LABEL_FONT = new Font("Tahoma", Font.PLAIN, 14); - - @EditableProperty(defaultable = false) - @Override - public String getName() { - return name; - } - - @Override - public void setName(String name) { - this.name = name; - } - - @Override - public boolean canControlPointOverlap(int index) { - return false; - } - - @Override - public String toString() { - return name; - } - - /** - * Returns the closest odd number, i.e. x when x is odd, or x + 1 when x is - * even. - * - * @param x - * @return - */ - protected int getClosestOdd(double x) { - return ((int) x / 2) * 2 + 1; - } - - /** - * @param clip - * @return true if none of the control points lie in the clip rectangle. - */ - protected boolean checkPointsClipped(Shape clip) { - for (int i = 0; i < getControlPointCount(); i++) { - if (clip.contains(getControlPoint(i))) { - return false; - } - } - return true; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java deleted file mode 100644 index c58a5cfc..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java +++ /dev/null @@ -1,336 +0,0 @@ -package org.diylc.components; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.Display; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.core.ComponentState; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -/** - * Base class for all leaded components such as resistors or capacitors. Has two - * control points and draws leads between them. Also, it positions and draws the - * shape of the component as specified by a child class. - * - * @author Branislav Stojkovic - */ -public abstract class AbstractLeadedComponent extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color LEAD_COLOR = Color.decode("#236B8E"); - public static Size LEAD_THICKNESS = new Size(0.6d, SizeUnit.mm); - public static Size DEFAULT_SIZE = new Size(1d, SizeUnit.in); - - protected Size length; - protected Size width; - protected Point[] points = new Point[] { - new Point((int) (-DEFAULT_SIZE.convertToPixels() / 2), 0), - new Point((int) (DEFAULT_SIZE.convertToPixels() / 2), 0) }; - protected Color bodyColor = Color.white; - protected Color borderColor = Color.black; - protected Color labelColor = LABEL_COLOR; - protected Display display = Display.VALUE; - - protected AbstractLeadedComponent() { - super(); - try { - this.length = getDefaultLength().clone(); - this.width = getDefaultWidth().clone(); - } catch (CloneNotSupportedException e) { - // This should never happen because Size supports cloning. - } catch (NullPointerException e) { - // This will happen if components do not have any shape. - } - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - double distance = points[0].distance(points[1]); - Shape shape = getBodyShape(); - // If there's no body, just draw the line connecting the ending points. - if (shape == null) { - drawLead(g2d, componentState); - } else if (supportsStandingMode() - && length.convertToPixels() > points[0].distance(points[1])) { - // When ending points are too close draw the component in standing - // mode. - int width = getClosestOdd(this.width.convertToPixels()); - Shape body = new Ellipse2D.Double(points[0].x - width / 2, points[0].y - width / 2, - width, width); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor); - g2d.fill(body); - g2d.setComposite(oldComposite); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : borderColor; - } - - g2d.setColor(finalBorderColor); - g2d.draw(body); - if (!outlineMode) { - drawLead(g2d, componentState); - } - } else { - // Normal mode with component body in the center and two lead parts. - Rectangle shapeRect = shape.getBounds(); - Double theta = Math.atan2(points[1].y - points[0].y, points[1].x - points[0].x); - // Transform graphics to draw the body in the right place and at the - // right angle. - AffineTransform oldTransform = g2d.getTransform(); - g2d.translate((points[0].x + points[1].x - shapeRect.width) / 2, (points[0].y - + points[1].y - shapeRect.height) / 2); - g2d.rotate(theta, shapeRect.width / 2, shapeRect.height / 2); - // Draw body. - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - if (bodyColor != null) { - if (bodyColor != null) { - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor); - g2d.fill(shape); - } - } - decorateComponentBody(g2d, outlineMode); - g2d.setComposite(oldComposite); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : borderColor; - } - g2d.setColor(finalBorderColor); - g2d.draw(shape); - // Draw label. - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : labelColor; - } - g2d.setColor(finalLabelColor); - FontMetrics fontMetrics = g2d.getFontMetrics(); - String label = display == Display.NAME ? getName() : getValue().toString(); - // Adjust label angle if needed to make sure that it's readable. - if ((theta >= Math.PI / 2 && theta <= Math.PI) - || (theta < -Math.PI / 2 && theta > -Math.PI)) { - g2d.rotate(Math.PI, shapeRect.width / 2, shapeRect.height / 2); - } - Rectangle2D textRect = fontMetrics.getStringBounds(label, g2d); - g2d.drawString(label, (int) (shapeRect.width - textRect.getWidth()) / 2, - calculateLabelYCoordinate(shapeRect, textRect, fontMetrics)); - - // Go back to the original transformation to draw leads. - if (!outlineMode) { - g2d.setTransform(oldTransform); - int leadThickness = getClosestOdd(getLeadThickness()); - double leadLength = (distance - shapeRect.width) / 2 - leadThickness / 2; - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness)); - Color leadColor = shouldShadeLeads() ? getLeadColor(componentState).darker() - : getLeadColor(componentState); - g2d.setColor(leadColor); - int endX = (int) (points[0].x + Math.cos(theta) * leadLength); - int endY = (int) Math.round(points[0].y + Math.sin(theta) * leadLength); - g2d.drawLine(points[0].x, points[0].y, endX, endY); - endX = (int) (points[1].x + Math.cos(theta - Math.PI) * leadLength); - endY = (int) Math.round(points[1].y + Math.sin(theta - Math.PI) * leadLength); - g2d.drawLine(points[1].x, points[1].y, endX, endY); - if (shouldShadeLeads()) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2)); - leadColor = getLeadColor(componentState); - g2d.setColor(leadColor); - g2d.drawLine(points[0].x, points[0].y, (int) (points[0].x + Math.cos(theta) - * leadLength), (int) (points[0].y + Math.sin(theta) * leadLength)); - g2d.drawLine(points[1].x, points[1].y, (int) (points[1].x + Math.cos(theta - - Math.PI) - * leadLength), (int) (points[1].y + Math.sin(theta - Math.PI) - * leadLength)); - } - } - } - } - - private void drawLead(Graphics2D g2d, ComponentState componentState) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(getLeadThickness())); - Color leadColor = shouldShadeLeads() ? getLeadColor(componentState).darker() - : getLeadColor(componentState); - g2d.setColor(leadColor); - g2d.drawLine(points[0].x, points[0].y, points[1].x, points[1].y); - if (shouldShadeLeads()) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(getLeadThickness() - 2)); - leadColor = getLeadColor(componentState); - g2d.setColor(leadColor); - g2d.drawLine(points[0].x, points[0].y, points[1].x, points[1].y); - } - } - - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - // Do nothing. - } - - protected int calculateLabelYCoordinate(Rectangle2D shapeRect, Rectangle2D textRect, - FontMetrics fontMetrics) { - return (int) (shapeRect.getHeight() - textRect.getHeight()) / 2 + fontMetrics.getAscent(); - } - - protected boolean shouldShadeLeads() { - return true; - } - - protected boolean supportsStandingMode() { - return false; - } - - /** - * @return default component length. - */ - protected abstract Size getDefaultLength(); - - /** - * Returns default component width. - * - * @return - */ - protected abstract Size getDefaultWidth(); - - /** - * @return shape that represents component body. Shape should not be - * transformed and should be referenced to (0, 0). - */ - protected abstract Shape getBodyShape(); - - /** - * @return default lead thickness. Override this method to change it. - */ - protected int getLeadThickness() { - return (int) LEAD_THICKNESS.convertToPixels(); - } - - /** - * @return default lead color. Override this method to change it. - */ - protected Color getLeadColor(ComponentState componentState) { - return componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : LEAD_COLOR; - } - - @Override - public int getControlPointCount() { - return points.length; - } - - @Override - public Point getControlPoint(int index) { - return (Point) points[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.ALWAYS; - } - - @Override - public void setControlPoint(Point point, int index) { - points[index].setLocation(point); - } - - @EditableProperty(name = "Color") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @EditableProperty(name = "Length", defaultable = true) - public Size getLength() { - return length; - } - - public void setLength(Size length) { - this.length = length; - } - - @EditableProperty(name = "Width", defaultable = true) - public Size getWidth() { - return width; - } - - public void setWidth(Size width) { - this.width = width; - } - - @EditableProperty - public Display getDisplay() { - return display; - } - - public void setDisplay(Display display) { - this.display = display; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java deleted file mode 100644 index ecf23912..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDIYComponent.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.diylc.core; - -import java.awt.Graphics2D; -import java.awt.Point; -import java.io.Serializable; - -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -/** - * Interface for component instance. Implementation classes of this interface - * will be instantiated by the application when component is added to the - * canvas.
- *
- * Implementing classes should meet the following: - *
    - *
  • Must have an empty constructor.
  • - *
  • Class should be annotated with {@link ComponentDescriptor}.
  • - *
  • Getters for properties editable by users should be annotated with - * {@link EditableProperty}.
  • - *
  • Component configuration should be stored int public static - * fields so they can be set through config file.
  • - *
- * - * @author Branislav Stojkovic - * - * @param - * type of component values, e.g. Resistance for resistors or String - * for transistors. - */ -public interface IDIYComponent extends Serializable { - - public static final int CHASSIS = 1; - public static final int BOARD = 2; - public static final int TRACE = 3; - public static final int COMPONENT = 4; - public static final int TEXT = 5; - - /** - * @return component instance name. - */ - String getName(); - - /** - * Updates component instance name. - * - * @param name - */ - void setName(String name); - - /** - * @return component value. - */ - T getValue(); - - /** - * Updates component value. - * - * @param value - */ - void setValue(T value); - - /** - * @return number of control points for this component instance. May vary - * between two instances of the same type, e.g. DIL IC with 8 and 16 - * pins will have 8 or 16 pins although they are of the same type. - */ - int getControlPointCount(); - - /** - * @param index - * @return control point at the specified index. - */ - Point getControlPoint(int index); - - /** - * Updates the control point at the specified index. - * - * @param point - * @param index - */ - void setControlPoint(Point point, int index); - - /** - * @param index - * @return true, if the specified control point may stick to control points - * of other components. - */ - boolean isControlPointSticky(int index); - - /** - * @param index - * @return true, if the specified control point may overlap with other - * control points of the same component. The other control - * point must be able to overlap too. - */ - boolean canControlPointOverlap(int index); - - VisibilityPolicy getControlPointVisibilityPolicy(int index); - - /** - * Draws the component onto the {@link Graphics2D}. - * - * @param g2d - * @param componentState - * @param outlineMode - * @param project - * @param drawingObserver - */ - void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project, - IDrawingObserver drawingObserver); - - /** - * Draws icon representation of the component. This should not depend on - * component state, i.e. it should be treated as a static method. - * - * @param g2d - * @param width - * @param height - */ - void drawIcon(Graphics2D g2d, int width, int height); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IView.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IView.java deleted file mode 100644 index fe11e4b5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IView.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.diylc.core; - -import java.util.List; -import java.util.Set; - -import org.diylc.common.PropertyWrapper; - - -/** - * Base interface for the main GUI component. - * - * @author Branislav Stojkovic - */ -public interface IView { - - public static final int ERROR_MESSAGE = 0; - public static final int INFORMATION_MESSAGE = 1; - public static final int WARNING_MESSAGE = 2; - public static final int QUESTION_MESSAGE = 3; - public static final int PLAIN_MESSAGE = -1; - public static final int DEFAULT_OPTION = -1; - public static final int YES_NO_OPTION = 0; - public static final int YES_NO_CANCEL_OPTION = 1; - public static final int OK_CANCEL_OPTION = 2; - public static final int YES_OPTION = 0; - public static final int NO_OPTION = 1; - public static final int CANCEL_OPTION = 2; - public static final int OK_OPTION = 0; - - public static final String CHECK_BOX_MENU_ITEM = "org.diylc.checkBoxMenuItem"; - public static final String RADIO_BUTTON_GROUP_KEY = "org.diylc.radioButtonGroup"; - - void showMessage(String message, String title, int messageType); - - int showConfirmDialog(String message, String title, int optionType, int messageType); - - boolean editProperties(List properties, Set defaultedProperties); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Project.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Project.java deleted file mode 100644 index a4c3bd9f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Project.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.diylc.core; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.annotations.PositiveMeasureValidator; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -import com.diyfever.gui.update.VersionNumber; - -/** - * Entity class that defines a project. Contains project properties and a - * collection of components.This class is serialized to file. Some filed getters - * are tagged with {@link EditableProperty} to enable for user to edit them. - * - * @author Branislav Stojkovic - */ -public class Project implements Serializable { - - private static final long serialVersionUID = 1L; - - public static String DEFAULT_TITLE = "New Project"; - public static Size DEFAULT_WIDTH = new Size(29d, SizeUnit.cm); - public static Size DEFAULT_HEIGHT = new Size(21d, SizeUnit.cm); - public static Size DEFAULT_GRID_SPACING = new Size(0.1d, SizeUnit.in); - - private VersionNumber fileVersion; - - private String title; - private String author; - private String description; - private Size width; - private Size height; - private Size gridSpacing; - private List> components; - private Set>> groups; - private Set lockedLayers; - - public Project() { - components = new ArrayList>(); - groups = new HashSet>>(); - lockedLayers = new HashSet(); - title = DEFAULT_TITLE; - author = System.getProperty("user.name"); - width = DEFAULT_WIDTH; - height = DEFAULT_HEIGHT; - gridSpacing = DEFAULT_GRID_SPACING; - } - - @EditableProperty(defaultable = false) - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - @EditableProperty - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - @EditableProperty(defaultable = false) - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - @EditableProperty - public Size getWidth() { - return width; - } - - public void setWidth(Size width) { - this.width = width; - } - - @EditableProperty - public Size getHeight() { - return height; - } - - public void setHeight(Size height) { - this.height = height; - } - - @EditableProperty(name = "Grid spacing", validatorClass = SpacingValidator.class) - public Size getGridSpacing() { - return gridSpacing; - } - - public void setGridSpacing(Size gridSpacing) { - this.gridSpacing = gridSpacing; - } - - /** - * List of components sorted by z-order ascending. - * - * @return - */ - public List> getComponents() { - return components; - } - - /** - * Set of grouped components. - * - * @return - */ - public Set>> getGroups() { - return groups; - } - - public Set getLockedLayers() { - return lockedLayers; - } - - public VersionNumber getFileVersion() { - return fileVersion; - } - - public void setFileVersion(VersionNumber fileVersion) { - this.fileVersion = fileVersion; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((author == null) ? 0 : author.hashCode()); - result = prime * result + ((components == null) ? 0 : components.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((height == null) ? 0 : height.hashCode()); - result = prime * result + ((title == null) ? 0 : title.hashCode()); - result = prime * result + ((width == null) ? 0 : width.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Project other = (Project) obj; - if (author == null) { - if (other.author != null) - return false; - } else if (!author.equals(other.author)) - return false; - if (components == null) { - if (other.components != null) - return false; - } else if (!components.equals(other.components)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (height == null) { - if (other.height != null) - return false; - } else if (!height.equals(other.height)) - return false; - if (title == null) { - if (other.title != null) - return false; - } else if (!title.equals(other.title)) - return false; - if (width == null) { - if (other.width != null) - return false; - } else if (!width.equals(other.width)) - return false; - return true; - } - - @Override - public String toString() { - return title; - } - - public static class SpacingValidator extends PositiveMeasureValidator { - - @Override - public void validate(Object value) throws ValidationException { - super.validate(value); - Size size = (Size) value; - if (size.compareTo(new Size(1d, SizeUnit.mm)) < 0) { - throw new ValidationException("must be greater than 1mm"); - } - if (size.compareTo(new Size(1d, SizeUnit.in)) > 0) { - throw new ValidationException("must be less than 1in"); - } - } - } - - // @Override - // public Project clone() throws CloneNotSupportedException { - // List clonedComponents = new - // ArrayList(); - // for (IDIYComponent component : components) { - // clonedComponents.add(component.clone()); - // } - // Project project = new Project(title, author, description, - // width.clone(), height.clone(), clonedComponents); - // return project; - // } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentDescriptor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentDescriptor.java deleted file mode 100644 index c9bbaa21..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/ComponentDescriptor.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.diylc.core.annotations; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; - -/** - * Annotation for {@link IDIYComponent} implementation. Describes component - * properties. - * - * @author Branislav Stojkovic - */ -@Retention(RetentionPolicy.RUNTIME) -public @interface ComponentDescriptor { - - /** - * @return component type name. - */ - String name(); - - /** - * @return component type description. - */ - String description(); - - /** - * @return method that should be used to create a component. If - * CreationMethod.POINT_BY_POINT is used, user will - * have to select ending points before the component is created. - */ - CreationMethod creationMethod() default CreationMethod.SINGLE_CLICK; - - /** - * @return component category, e.g. "Passive", "Semiconductors", etc. - */ - String category(); - - /** - * @return component author name. - */ - String author(); - - /** - * @return prefix that will be used to generate component instance names, - * e.g. "R" for resistors or "Q" for transistors. - */ - String instanceNamePrefix(); - - /** - * @return Z-order of the component. - */ - double zOrder(); - - /** - * @return when false, moving one control point will cause all the others to - * move together with it. - */ - boolean stretchable() default true; - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/AbstractMeasure.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/AbstractMeasure.java deleted file mode 100644 index 0245fba9..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/AbstractMeasure.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.diylc.core.measures; - -import java.io.Serializable; -import java.text.DecimalFormat; -import java.text.Format; - -public class AbstractMeasure> implements Serializable, Cloneable { - - private static final long serialVersionUID = 1L; - - protected static final Format format = new DecimalFormat("0.####"); - - protected Double value; - protected T unit; - - public AbstractMeasure() { - } - - public AbstractMeasure(Double value, T unit) { - super(); - this.value = value; - this.unit = unit; - } - - public Double getValue() { - return value; - } - - public void setValue(Double value) { - this.value = value; - } - - public T getUnit() { - return unit; - } - - public void setUnit(T multiplier) { - this.unit = multiplier; - } - - @Override - public Object clone() throws CloneNotSupportedException { - return super.clone(); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((unit == null) ? 0 : unit.hashCode()); - result = prime * result + ((value == null) ? 0 : value.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - AbstractMeasure other = (AbstractMeasure) obj; - if (unit == null) { - if (other.unit != null) - return false; - } else if (!unit.equals(other.unit)) - return false; - if (value == null) { - if (other.value != null) - return false; - } else if (!value.equals(other.value)) - return false; - return true; - } - - @Override - public String toString() { - return format.format(value) + " " + unit; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Capacitance.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Capacitance.java deleted file mode 100644 index 4e2e79c3..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Capacitance.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.diylc.core.measures; - -public class Capacitance extends AbstractMeasure { - - private static final long serialVersionUID = 1L; - - public Capacitance() { - super(); - // TODO Auto-generated constructor stub - } - - public Capacitance(Double value, CapacitanceUnit unit) { - super(value, unit); - // TODO Auto-generated constructor stub - } - - @Override - public Capacitance clone() throws CloneNotSupportedException { - return new Capacitance(value, unit); - } - - public static Capacitance parseCapacitance(String value) { - for (CapacitanceUnit unit : CapacitanceUnit.values()) { - if (value.toLowerCase().endsWith(unit.toString().toLowerCase())) { - value = value.substring(0, value.length() - unit.toString().length() - 1).trim(); - return new Capacitance(Double.parseDouble(value), unit); - } - } - throw new IllegalArgumentException("Could not parse capacitance: " + value); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Inductance.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Inductance.java deleted file mode 100644 index af598a2a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Inductance.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.diylc.core.measures; - -public class Inductance extends AbstractMeasure { - - private static final long serialVersionUID = 1L; - - public Inductance() { - super(); - // TODO Auto-generated constructor stub - } - - public Inductance(Double value, InductanceUnit unit) { - super(value, unit); - // TODO Auto-generated constructor stub - } - - @Override - public Inductance clone() throws CloneNotSupportedException { - return new Inductance(value, unit); - } - - public static Inductance parseCapacitance(String value) { - for (InductanceUnit unit : InductanceUnit.values()) { - if (value.toLowerCase().endsWith(unit.toString().toLowerCase())) { - value = value.substring(0, value.length() - unit.toString().length() - 1).trim(); - return new Inductance(Double.parseDouble(value), unit); - } - } - throw new IllegalArgumentException("Could not parse inductance: " + value); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Resistance.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Resistance.java deleted file mode 100644 index 63236e70..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Resistance.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.diylc.core.measures; - -import java.awt.Color; - -import org.diylc.common.ResistorColorCode; - -public class Resistance extends AbstractMeasure { - - private static final long serialVersionUID = 1L; - - private static final Color[] COLOR_DIGITS = new Color[] { Color.black, Color.decode("#8B4513"), - Color.red, Color.orange, Color.yellow, Color.decode("#76EE00"), Color.blue, - Color.decode("#91219E"), Color.lightGray, Color.white }; - private static final Color[] COLOR_MULTIPLIER = new Color[] { Color.lightGray.brighter(), - Color.decode("#FFB90F"), Color.black, Color.decode("#8B4513"), Color.red, Color.orange, - Color.yellow, Color.decode("#76EE00"), Color.blue }; - - public Resistance() { - super(); - // TODO Auto-generated constructor stub - } - - public Resistance(Double value, ResistanceUnit multiplier) { - super(value, multiplier); - // TODO Auto-generated constructor stub - } - - @Override - public Resistance clone() throws CloneNotSupportedException { - return new Resistance(value, unit); - } - - public Color[] getColorCode(ResistorColorCode resistorColorCode) { - Color[] bands; - double base = getValue() * getUnit().getFactor(); - int multiplier = 0; - while (base > (resistorColorCode == ResistorColorCode._4_BAND ? 99 : 999)) { - multiplier += 1; - base /= 10; - } - while (base < (resistorColorCode == ResistorColorCode._4_BAND ? 10 : 100)) { - multiplier -= 1; - base *= 10; - } - if (multiplier > 6 || multiplier < -2) { - // Out of range. - return new Color[] {}; - } - switch (resistorColorCode) { - case _4_BAND: - bands = new Color[3]; - bands[0] = COLOR_DIGITS[(int) (base / 10)]; - bands[1] = COLOR_DIGITS[(int) (base % 10)]; - bands[2] = COLOR_MULTIPLIER[multiplier + 2]; - break; - case _5_BAND: - bands = new Color[4]; - bands[0] = COLOR_DIGITS[(int) (base / 100)]; - bands[1] = COLOR_DIGITS[(int) (base / 10 % 10)]; - bands[2] = COLOR_DIGITS[(int) (base % 10)]; - bands[3] = COLOR_MULTIPLIER[multiplier + 2]; - break; - default: - bands = new Color[] {}; - } - return bands; - } - - public static Resistance parseResistance(String value) { - for (ResistanceUnit unit : ResistanceUnit.values()) { - if (value.toLowerCase().endsWith(unit.toString().toLowerCase())) { - value = value.substring(0, value.length() - unit.toString().length() - 1).trim(); - return new Resistance(Double.parseDouble(value), unit); - } - } - throw new IllegalArgumentException("Could not parse resistance: " + value); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/ResistanceUnit.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/ResistanceUnit.java deleted file mode 100644 index 9d7a917f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/ResistanceUnit.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.diylc.core.measures; - -public enum ResistanceUnit implements Unit { - - R(1, "\u03a9"), K(1e3, "K"), M(1e6, "M"); - - double factor; - String display; - - private ResistanceUnit(double factor, String display) { - this.factor = factor; - this.display = display; - } - - @Override - public double getFactor() { - return factor; - } - - @Override - public String toString() { - return display; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Size.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Size.java deleted file mode 100644 index e7543161..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Size.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.diylc.core.measures; - -import org.diylc.utils.Constants; - -public class Size extends AbstractMeasure implements Comparable { - - private static final long serialVersionUID = 1L; - - public Size() { - super(); - // TODO Auto-generated constructor stub - } - - public Size(Double value, SizeUnit unit) { - super(value, unit); - // TODO Auto-generated constructor stub - } - - public double convertToPixels() { -// double factor = getUnit().getFactor() / SizeUnit.in.getFactor(); -// int grids = (int) (factor * getValue() * Constants.GRIDS_PER_INCH); -// double remainder = (factor * getValue() * Constants.GRIDS_PER_INCH) - grids; -// return (int) Math.round(Constants.PIXELS_PER_INCH / Constants.GRIDS_PER_INCH -// * (grids + remainder)); - return getValue() * getUnit().getFactor() / SizeUnit.in.getFactor() * Constants.PIXELS_PER_INCH; - } - - @Override - public Size clone() throws CloneNotSupportedException { - return new Size(value, unit); - } - - public static Size parseSize(String value) { - for (SizeUnit unit : SizeUnit.values()) { - if (value.toLowerCase().endsWith(unit.toString().toLowerCase())) { - value = value.substring(0, value.length() - unit.toString().length() - 1).trim(); - return new Size(Double.parseDouble(value), unit); - } - } - throw new IllegalArgumentException("Could not parse size: " + value); - } - - @Override - public int compareTo(Size o) { - return new Double(value * unit.getFactor()).compareTo(o.getValue() * o.getUnit().getFactor()); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/IconLoader.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/IconLoader.java deleted file mode 100644 index baef6933..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/IconLoader.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.diylc.images; - -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.io.IOException; - -import javax.imageio.ImageIO; -import javax.swing.Icon; -import javax.swing.ImageIcon; - -/** - * Loads image resources as Icons. - * - * @author Branislav Stojkovic - */ -public enum IconLoader { - - Delete("delete.png"), Add("add.png"), FolderOut("folder_out.png"), Garbage("garbage.png"), DiskBlue( - "disk_blue.png"), SaveAs("save_as.png"), Exit("exit.png"), DocumentPlainYellow( - "document_plain_yellow.png"), PhotoScenery("photo_scenery.png"), LightBulbOn( - "lightbulb_on.png"), LightBulbOff("lightbulb_off.png"), NotebookAdd("notebook_add.png"), FormGreen( - "form_green.png"), Gears("gears.png"), About("about.png"), WindowColors( - "window_colors.png"), WindowGear("window_gear.png"), NavigateCheck("navigate_check.png"), Undo( - "undo.png"), Error("error.png"), Warning("warning.png"), ZoomSmall("zoom_small.png"), MoveSmall( - "move_small.png"), Print("print.png"), PDF("pdf.png"), Excel("excel.png"), CSV( - "csv.png"), HTML("html.png"), Image("image.png"), Cut("cut.png"), Copy("copy.png"), Paste( - "paste.png"), Selection("selection.png"), BOM("bom.png"), BlackBoard("blackboard.png"), IdCard( - "id_card.png"), IdCardAdd("id_card_add.png"), Chest("chest.png"), Upload("upload.png"), Wrench( - "wrench.png"), Group("group.png"), Ungroup("ungroup.png"), TraceMask("trace_mask.png"), Faq( - "faq.png"), Component("component.png"), Plugin("plugin.png"), Manual("manual.png"), Donate( - "donate.png"), Bug("bug.png"), IconLarge("icon_large.png"), IconMedium( - "icon_medium.png"), IconSmall("icon_small.png"), DocumentEdit("document_edit.png"), EditComponent( - "edit_component.png"), Size("size.png"), Front("front.png"), Back("back.png"), Pens( - "pens.png"), Sort("sort.png"); - - protected String name; - - private IconLoader(String name) { - this.name = name; - } - - public Icon getIcon() { - java.net.URL imgURL = getClass().getResource(name); - if (imgURL != null) { - return new ImageIcon(imgURL, name); - } else { - System.err.println("Couldn't find file: " + name); - return null; - } - } - - public Image getImage() { - BufferedImage img = null; - try { - img = ImageIO.read(getClass().getResourceAsStream(name)); - } catch (IOException e) { - System.err.println("Couldn't find file: " + name); - } - return img; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentProcessor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentProcessor.java deleted file mode 100644 index 3eb9bee2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentProcessor.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.diylc.presenter; - -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.RenderingHints; -import java.awt.image.BufferedImage; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.swing.Icon; -import javax.swing.ImageIcon; - -import org.apache.log4j.Logger; -import org.diylc.common.ComponentType; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IPropertyValidator; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -import com.rits.cloning.Cloner; - -/** - * Utility class with component processing methods. - * - * @author Branislav Stojkovic - */ -public class ComponentProcessor { - - private static final Logger LOG = Logger.getLogger(ComponentProcessor.class); - - private static ComponentProcessor instance; - - private Map> propertyCache; - private Map propertyValidatorCache; - private Map componentTypeMap; - - private Cloner cloner; - - public static ComponentProcessor getInstance() { - if (instance == null) { - instance = new ComponentProcessor(); - } - return instance; - } - - private ComponentProcessor() { - super(); - this.cloner = new Cloner(); - this.propertyCache = new HashMap>(); - this.componentTypeMap = new HashMap(); - this.propertyValidatorCache = new HashMap(); - } - - public ComponentType extractComponentTypeFrom(Class> clazz) { - if (componentTypeMap.containsKey(clazz.getName())) { - return componentTypeMap.get(clazz.getName()); - } - String name; - String description; - CreationMethod creationMethod; - String category; - String namePrefix; - String author; - Icon icon; - double zOrder; - boolean stretchable; - if (clazz.isAnnotationPresent(ComponentDescriptor.class)) { - ComponentDescriptor annotation = clazz.getAnnotation(ComponentDescriptor.class); - name = annotation.name(); - description = annotation.description(); - creationMethod = annotation.creationMethod(); - category = annotation.category(); - namePrefix = annotation.instanceNamePrefix(); - author = annotation.author(); - zOrder = annotation.zOrder(); - stretchable = annotation.stretchable(); - } else { - name = clazz.getSimpleName(); - description = ""; - creationMethod = CreationMethod.SINGLE_CLICK; - category = "Uncategorized"; - namePrefix = "Unknown"; - author = "Unknown"; - zOrder = IDIYComponent.COMPONENT; - stretchable = true; - } - icon = null; - // Draw component icon. - try { - IDIYComponent componentInstance = (IDIYComponent) clazz.newInstance(); - Image image = new BufferedImage(Presenter.ICON_SIZE, Presenter.ICON_SIZE, - java.awt.image.BufferedImage.TYPE_INT_ARGB); - Graphics2D g2d = (Graphics2D) image.getGraphics(); - g2d - .setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - componentInstance.drawIcon(g2d, Presenter.ICON_SIZE, Presenter.ICON_SIZE); - icon = new ImageIcon(image); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - ComponentType componentType = new ComponentType(name, description, creationMethod, - category, namePrefix, author, icon, clazz, zOrder, stretchable); - componentTypeMap.put(clazz.getName(), componentType); - return componentType; - } - - /** - * Extracts all editable properties from the component class. - * - * @param clazz - * @return - */ - public List extractProperties(Class clazz) { - if (propertyCache.containsKey(clazz.getName())) { - return cloner.deepClone(propertyCache.get(clazz.getName())); - } - List properties = new ArrayList(); - for (Method method : clazz.getMethods()) { - if (method.getName().startsWith("get")) { - try { - if (method.isAnnotationPresent(EditableProperty.class) - && !method.isAnnotationPresent(Deprecated.class)) { - EditableProperty annotation = method.getAnnotation(EditableProperty.class); - String name; - if (annotation.name().equals("")) { - name = method.getName().substring(3); - } else { - name = annotation.name(); - } - IPropertyValidator validator = getPropertyValidator(annotation - .validatorClass()); - Method setter = clazz.getMethod("set" + method.getName().substring(3), - method.getReturnType()); - PropertyWrapper property = new PropertyWrapper(name, - method.getReturnType(), method.getName(), setter.getName(), - annotation.defaultable(), validator); - properties.add(property); - } - } catch (NoSuchMethodException e) { - LOG.debug("No matching setter found for \"" + method.getName() - + "\". Skipping..."); - } - } - } - - propertyCache.put(clazz.getName(), properties); - return cloner.deepClone(properties); - } - - /** - * Returns properties that have the same value for all the selected - * components. - * - * @param selectedComponents - * @return - */ - public List getMutualSelectionProperties( - List> selectedComponents) throws Exception { - if (selectedComponents.isEmpty()) { - return null; - } - List properties = new ArrayList(); - IDIYComponent firstComponent = selectedComponents.get(0); - properties.addAll(extractProperties(firstComponent.getClass())); - // Initialize values - for (PropertyWrapper property : properties) { - property.readFrom(firstComponent); - } - for (int i = 1; i < selectedComponents.size(); i++) { - IDIYComponent component = selectedComponents.get(i); - List newProperties = extractProperties(component.getClass()); - for (PropertyWrapper property : newProperties) { - property.readFrom(component); - } - properties.retainAll(newProperties); - // Try to find matching properties in old and new lists and see if - // their values match. - for (PropertyWrapper oldProperty : properties) { - if (newProperties.contains(oldProperty)) { - PropertyWrapper newProperty = newProperties.get(newProperties - .indexOf(oldProperty)); - if ((newProperty.getValue() != null && newProperty.getValue() == null) - || !newProperty.getValue().equals(oldProperty.getValue())) { - // Values don't match, so the property is not unique valued. - oldProperty.setUnique(false); - } - } - } - // for (PropertyWrapper property : properties) { - // try { - // property.readUniqueFrom(component); - // } catch (Exception e) { - // // TODO Auto-generated catch block - // e.printStackTrace(); - // } - // } - } - Collections.sort(properties, ComparatorFactory.getInstance().getPropertyNameComparator()); - return properties; - } - - private IPropertyValidator getPropertyValidator(Class clazz) { - if (propertyValidatorCache.containsKey(clazz.getName())) { - return propertyValidatorCache.get(clazz.getName()); - } - IPropertyValidator validator; - try { - validator = clazz.newInstance(); - } catch (Exception e) { - LOG.error("Could not instantiate validator for " + clazz.getName(), e); - return null; - } - propertyValidatorCache.put(clazz.getName(), validator); - return validator; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java deleted file mode 100644 index 778208de..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java +++ /dev/null @@ -1,396 +0,0 @@ -package org.diylc.presenter; - -import java.awt.AlphaComposite; -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Dimension; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.RenderingHints; -import java.awt.geom.Area; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.apache.log4j.Logger; -import org.diylc.common.DrawOption; -import org.diylc.common.EventType; -import org.diylc.common.GridType; -import org.diylc.common.IComponentFiler; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; -import com.diyfever.gui.simplemq.MessageDispatcher; - -/** - * Utility that deals with painting {@link Project} on the {@link Graphics2D} - * and keeps areas taken by each drawn component. - * - * @author Branislav Stojkovic - */ -public class DrawingManager { - - private static final Logger LOG = Logger.getLogger(DrawingManager.class); - - public static int CONTROL_POINT_SIZE = 7; - - public static final String ZOOM_KEY = "zoom"; - - public static String DEBUG_COMPONENT_AREAS = "org.diylc.debugComponentAreas"; - - public static Color CONTROL_POINT_COLOR = Color.blue; - public static Color SELECTED_CONTROL_POINT_COLOR = Color.green; - - private Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - - // Keeps Area object of each drawn component. - private Map, Area> componentAreaMap; - // Maps components to the last state they are drawn in. Also, used to - // determine which components are invalidated when they are not in the map. - private Map, ComponentState> lastDrawnStateMap; - - private Composite slotComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f); - private Composite lockedComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f); - private List> failedComponents = new ArrayList>(); - - private double zoomLevel = 1d;// ConfigurationManager.getInstance().readDouble(ZOOM_KEY, - // 1d); - - private MessageDispatcher messageDispatcher; - - private boolean debugComponentAreas; - - public DrawingManager(MessageDispatcher messageDispatcher) { - super(); - this.messageDispatcher = messageDispatcher; - componentAreaMap = new HashMap, Area>(); - lastDrawnStateMap = new HashMap, ComponentState>(); - String debugComponentAreasStr = System.getProperty(DEBUG_COMPONENT_AREAS); - debugComponentAreas = debugComponentAreasStr != null - && debugComponentAreasStr.equalsIgnoreCase("true"); - } - - /** - * Paints the project onto the canvas and returns the list of components - * that failed to draw. - * - * @param g2d - * @param project - * @param drawOptions - * @param filter - * @param selectionRect - * @param selectedComponents - * @param lockedComponents - * @param groupedComponents - * @param controlPointSlot - * @param componentSlot - * @param dragInProgress - * @return - */ - public List> drawProject(Graphics2D g2d, Project project, - Set drawOptions, IComponentFiler filter, Rectangle selectionRect, - List> selectedComponents, Set> lockedComponents, - Set> groupedComponents, List controlPointSlot, - IDIYComponent componentSlot, boolean dragInProgress) { - failedComponents.clear(); - if (project == null) { - return failedComponents; - } - G2DWrapper g2dWrapper = new G2DWrapper(g2d); - - if (drawOptions.contains(DrawOption.ANTIALIASING)) { - g2d - .setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - } else { - g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_OFF); - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); - } - if (ConfigurationManager.getInstance() - .readBoolean(IPlugInPort.HI_QUALITY_RENDER_KEY, false)) { - g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, - RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); - g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, - RenderingHints.VALUE_COLOR_RENDER_QUALITY); - g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); - g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE); - g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, - RenderingHints.VALUE_INTERPOLATION_BILINEAR); - } else { - g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, - RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED); - g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, - RenderingHints.VALUE_COLOR_RENDER_SPEED); - g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED); - g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE); - g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, - RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR); - } - - double zoom = 1d; - if (drawOptions.contains(DrawOption.ZOOM)) { - zoom = zoomLevel; - } else { - zoom = 1 / Constants.PIXEL_SIZE; - } - - // AffineTransform initialTx = g2d.getTransform(); - Dimension d = getCanvasDimensions(project, zoom, true); - - g2dWrapper.setColor(theme.getBgColor()); - g2dWrapper.fillRect(0, 0, d.width, d.height); - g2d.clip(new Rectangle(new Point(0, 0), d)); - - GridType gridType = GridType.LINES; - if (drawOptions.contains(DrawOption.GRID) && gridType != GridType.NONE) { - double zoomStep = project.getGridSpacing().convertToPixels() * zoom; - if (gridType == GridType.CROSSHAIR) { - g2d.setStroke(new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, - 10f, new float[] { (float) zoomStep / 2, (float) zoomStep / 2 }, - (float) zoomStep / 4)); - } else if (gridType == GridType.DOT) { - g2d.setStroke(new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, - 10f, new float[] { 1f, (float) zoomStep - 1 }, 0f)); - } - - g2dWrapper.setColor(theme.getGridColor()); - for (double i = zoomStep; i < d.width; i += zoomStep) { - g2dWrapper.drawLine((int) i, 0, (int) i, d.height - 1); - } - for (double j = zoomStep; j < d.height; j += zoomStep) { - g2dWrapper.drawLine(0, (int) j, d.width - 1, (int) j); - } - } - - if (Math.abs(1.0 - zoom) > 1e-4) { - g2dWrapper.scale(zoom, zoom); - } - - // Composite mainComposite = g2d.getComposite(); - // Composite alphaComposite = - // AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f); - - // g2dWrapper.resetTx(); - - // componentAreaMap.clear(); - for (IDIYComponent component : project.getComponents()) { - // Do not draw the component if it's filtered out. - if (filter != null && !filter.testComponent(component)) { - continue; - } - ComponentState state = ComponentState.NORMAL; - if (drawOptions.contains(DrawOption.SELECTION) - && selectedComponents.contains(component)) { - if (dragInProgress) { - state = ComponentState.DRAGGING; - } else { - state = ComponentState.SELECTED; - } - } - // Do not track the area if component is not invalidated and was - // drawn in the same state. - boolean trackArea = lastDrawnStateMap.get(component) != state; - g2dWrapper.startedDrawingComponent(); - if (!trackArea) { - g2dWrapper.stopTracking(); - } - // Draw locked components in a new composite. - if (lockedComponents.contains(component)) { - g2d.setComposite(lockedComposite); - } - // Draw the component through the g2dWrapper. - try { - component.draw(g2dWrapper, state, drawOptions.contains(DrawOption.OUTLINE_MODE), - project, g2dWrapper); - } catch (Exception e) { - LOG.error("Error drawing " + component.getName(), e); - failedComponents.add(component); - } - Area area = g2dWrapper.finishedDrawingComponent(); - if (trackArea && area != null && !area.isEmpty()) { - componentAreaMap.put(component, area); - lastDrawnStateMap.put(component, state); - } - } - - // Draw control points. - if (drawOptions.contains(DrawOption.CONTROL_POINTS)) { - // Draw unselected points first to make sure they are below. - if (dragInProgress || drawOptions.contains(DrawOption.OUTLINE_MODE)) { - for (IDIYComponent component : project.getComponents()) { - for (int i = 0; i < component.getControlPointCount(); i++) { - VisibilityPolicy visibilityPolicy = component - .getControlPointVisibilityPolicy(i); - if ((groupedComponents.contains(component) - && (visibilityPolicy == VisibilityPolicy.ALWAYS || (selectedComponents - .contains(component) && visibilityPolicy == VisibilityPolicy.WHEN_SELECTED)) || (!groupedComponents - .contains(component) - && !selectedComponents.contains(component) && component - .getControlPointVisibilityPolicy(i) == VisibilityPolicy.ALWAYS))) { - g2dWrapper.setColor(CONTROL_POINT_COLOR); - Point controlPoint = component.getControlPoint(i); - int pointSize = CONTROL_POINT_SIZE - 2; - g2dWrapper.fillOval(controlPoint.x - pointSize / 2, controlPoint.y - - pointSize / 2, pointSize, pointSize); - } - } - } - } - // Then draw the selected ones. - for (IDIYComponent component : selectedComponents) { - for (int i = 0; i < component.getControlPointCount(); i++) { - if (!groupedComponents.contains(component) - && (component.getControlPointVisibilityPolicy(i) == VisibilityPolicy.WHEN_SELECTED || component - .getControlPointVisibilityPolicy(i) == VisibilityPolicy.ALWAYS)) { - - Point controlPoint = component.getControlPoint(i); - int pointSize = CONTROL_POINT_SIZE; - - g2dWrapper.setColor(SELECTED_CONTROL_POINT_COLOR.darker()); - g2dWrapper.fillOval(controlPoint.x - pointSize / 2, controlPoint.y - - pointSize / 2, pointSize, pointSize); - g2dWrapper.setColor(SELECTED_CONTROL_POINT_COLOR); - g2dWrapper.fillOval(controlPoint.x - CONTROL_POINT_SIZE / 2 + 1, - controlPoint.y - CONTROL_POINT_SIZE / 2 + 1, - CONTROL_POINT_SIZE - 2, CONTROL_POINT_SIZE - 2); - } - } - } - } - - // Draw component slot in a separate composite. - if (componentSlot != null) { - g2dWrapper.startedDrawingComponent(); - g2dWrapper.setComposite(slotComposite); - try { - componentSlot.draw(g2dWrapper, ComponentState.NORMAL, drawOptions - .contains(DrawOption.OUTLINE_MODE), project, g2dWrapper); - } catch (Exception e) { - LOG.error("Error drawing " + componentSlot.getName(), e); - failedComponents.add(componentSlot); - } - g2dWrapper.finishedDrawingComponent(); - } - - // Draw control points of the component in the slot. - if (controlPointSlot != null) { - for (Point point : controlPointSlot) { - if (point != null) { - g2dWrapper.setColor(SELECTED_CONTROL_POINT_COLOR.darker()); - g2dWrapper.fillOval(point.x - CONTROL_POINT_SIZE / 2, point.y - - CONTROL_POINT_SIZE / 2, CONTROL_POINT_SIZE, CONTROL_POINT_SIZE); - g2dWrapper.setColor(SELECTED_CONTROL_POINT_COLOR); - g2dWrapper.fillOval(point.x - CONTROL_POINT_SIZE / 2 + 1, point.y - - CONTROL_POINT_SIZE / 2 + 1, CONTROL_POINT_SIZE - 2, - CONTROL_POINT_SIZE - 2); - } - } - } - - // Go back to the original transformation and zoom in to draw the - // selection rectangle and other similar elements. - // g2d.setTransform(initialTx); - // if ((drawOptions.contains(DrawOption.ZOOM)) && (Math.abs(1.0 - - // zoomLevel) > 1e-4)) { - // g2d.scale(zoomLevel, zoomLevel); - // } - - // At the end draw selection rectangle if needed. - if (drawOptions.contains(DrawOption.SELECTION) && (selectionRect != null)) { - g2d.setColor(Color.white); - g2d.draw(selectionRect); - g2d.setColor(Color.black); - g2d.setStroke(Constants.DASHED_STROKE); - g2d.draw(selectionRect); - } - - // Draw component area for test - if (debugComponentAreas) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(Color.red); - for (Area area : componentAreaMap.values()) { - g2d.draw(area); - } - } - - return failedComponents; - } - - public double getZoomLevel() { - return zoomLevel; - } - - public void setZoomLevel(double zoomLevel) { - this.zoomLevel = zoomLevel; - fireZoomChanged(); - // ConfigurationManager.getInstance().writeValue(ZOOM_KEY, zoomLevel); - } - - public void invalidateComponent(IDIYComponent component) { - componentAreaMap.remove(component); - lastDrawnStateMap.remove(component); - } - - public Area getComponentArea(IDIYComponent component) { - return componentAreaMap.get(component); - } - - public void clearComponentAreaMap() { - componentAreaMap.clear(); - } - - public List> findComponentsAt(Point point, Project project) { - List> components = new ArrayList>(); - for (int i = 0; i < project.getComponents().size(); i++) { - Area area = componentAreaMap.get(project.getComponents().get(i)); - if (area != null && area.contains(point)) { - components.add(project.getComponents().get(i)); - } - } - return components; - } - - public Dimension getCanvasDimensions(Project project, Double zoomLevel, boolean useZoom) { - double width = project.getWidth().convertToPixels(); - double height = project.getHeight().convertToPixels(); - if (useZoom) { - width *= zoomLevel; - height *= zoomLevel; - } else { - width /= Constants.PIXEL_SIZE; - height /= Constants.PIXEL_SIZE; - } - return new Dimension((int) width, (int) height); - } - - public void fireZoomChanged() { - messageDispatcher.dispatchMessage(EventType.ZOOM_CHANGED, zoomLevel); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - - public Theme getTheme() { - return theme; - } - - public void setTheme(Theme theme) { - this.theme = theme; - ConfigurationManager.getInstance().writeValue(IPlugInPort.THEME_KEY, theme); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java deleted file mode 100644 index 10e638f0..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java +++ /dev/null @@ -1,673 +0,0 @@ -package org.diylc.presenter; - -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.GraphicsConfiguration; -import java.awt.Image; -import java.awt.Paint; -import java.awt.Polygon; -import java.awt.Rectangle; -import java.awt.RenderingHints; -import java.awt.Shape; -import java.awt.Stroke; -import java.awt.RenderingHints.Key; -import java.awt.font.FontRenderContext; -import java.awt.font.GlyphVector; -import java.awt.geom.AffineTransform; -import java.awt.geom.Arc2D; -import java.awt.geom.Area; -import java.awt.geom.CubicCurve2D; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Line2D; -import java.awt.geom.PathIterator; -import java.awt.geom.Point2D; -import java.awt.geom.QuadCurve2D; -import java.awt.geom.Rectangle2D; -import java.awt.geom.RoundRectangle2D; -import java.awt.image.BufferedImage; -import java.awt.image.BufferedImageOp; -import java.awt.image.ImageObserver; -import java.awt.image.RenderedImage; -import java.awt.image.renderable.RenderableImage; -import java.text.AttributedCharacterIterator; -import java.util.Map; - -import org.diylc.core.IDrawingObserver; - -/** - * {@link Graphics2D} wrapper that keeps track of all drawing actions and - * creates an {@link Area} that corresponds to drawn objects. Before each - * component is drawn, {@link #startedDrawingComponent()} should be called. - * After the component is drawn, area may be retrieved using - * {@link #finishedDrawingComponent()}. Graphics configuration (color, font, - * etc) is reset between each two components. - * - * @author Branislav Stojkovic - */ -class G2DWrapper extends Graphics2D implements IDrawingObserver { - - public static int LINE_SENSITIVITY_MARGIN = 2; - public static int CURVE_SENSITIVITY = 6; - - private boolean drawingComponent = false; - private boolean trackingAllowed = true; - - private Graphics2D canvasGraphics; - private Stroke originalStroke; - private Color originalColor; - private Composite originalComposite; - private AffineTransform originalTx; - private Font originalFont; - private AffineTransform currentTx; - private Area currentArea; - private Shape lastShape; - - /** - * Creates a wrapper around specified {@link Graphics2D} object. - * - * @param canvasGraphics - */ - public G2DWrapper(Graphics2D canvasGraphics) { - super(); - this.canvasGraphics = canvasGraphics; - currentArea = new Area(); - currentTx = new AffineTransform(); - } - - /** - * Clears out the current area and caches canvas settings. - */ - public void startedDrawingComponent() { - drawingComponent = true; - currentArea = new Area(); - originalStroke = canvasGraphics.getStroke(); - originalColor = canvasGraphics.getColor(); - originalTx = canvasGraphics.getTransform(); - originalComposite = canvasGraphics.getComposite(); - originalFont = canvasGraphics.getFont(); - currentTx = new AffineTransform(); - lastShape = null; - startTracking(); - } - - /** - * Reverts {@link Graphics2D} settings and returns area drawn by component - * in the meantime. - * - * @return - */ - public Area finishedDrawingComponent() { - drawingComponent = false; - canvasGraphics.setStroke(originalStroke); - canvasGraphics.setColor(originalColor); - canvasGraphics.setTransform(originalTx); - canvasGraphics.setComposite(originalComposite); - canvasGraphics.setFont(originalFont); - return currentArea; - } - - @Override - public void startTracking() { - this.trackingAllowed = true; - } - - @Override - public void stopTracking() { - this.trackingAllowed = false; - } - - /** - * Appends shape interior to the current component area. - * - * @param s - */ - private void appendShape(Shape s) { - if (!drawingComponent || !trackingAllowed) { - return; - } - Rectangle2D bounds = s.getBounds2D(); - // Only cache the shape if it's not 1D. - if (bounds.getWidth() > 1 && bounds.getHeight() > 1) { - Area area = new Area(s); - area.transform(currentTx); - currentArea.add(area); - lastShape = s; - } - } - - /** - * Appends shape outline to the current component area. - * - * @param s - */ - private void appendShapeOutline(Shape s) { - // Do not add shape outline if the same shape has been filled recently. - if (!drawingComponent || !trackingAllowed || s.equals(lastShape)) { - return; - } - lastShape = s; - PathIterator pathIterator = s.getPathIterator(null); - double thickness; - if (getStroke() instanceof BasicStroke) { - thickness = ((BasicStroke) getStroke()).getLineWidth() + 2 * LINE_SENSITIVITY_MARGIN; - } else { - thickness = 2 * LINE_SENSITIVITY_MARGIN; - } - Point2D prevPoint = null; - while (!pathIterator.isDone()) { - double[] coord = new double[6]; - int type = pathIterator.currentSegment(coord); - switch (type) { - case PathIterator.SEG_MOVETO: - prevPoint = new Point2D.Double(coord[0], coord[1]); - break; - case PathIterator.SEG_LINETO: - // Represent straight line with a rectangle. - Point2D nextPoint = new Point2D.Double(coord[0], coord[1]); - Double theta = Math.atan2(nextPoint.getY() - prevPoint.getY(), nextPoint.getX() - - prevPoint.getX()); - double width = Math.sqrt(Math.pow(nextPoint.getX() - prevPoint.getX(), 2) - + Math.pow(nextPoint.getY() - prevPoint.getY(), 2)); - double midX = (prevPoint.getX() + nextPoint.getX()) / 2; - double midY = (prevPoint.getY() + nextPoint.getY()) / 2; - Rectangle2D rect = new Rectangle2D.Double(midX - width / 2, midY - thickness / 2, - width, thickness); - Area area = new Area(rect); - area.transform(AffineTransform.getRotateInstance(theta, midX, midY)); -// area.transform(currentTx); - appendShape(area); - // Set the prev point to line end - prevPoint = nextPoint; - break; - case PathIterator.SEG_CUBICTO: - CubicCurve2D cubicCurve = new CubicCurve2D.Double(prevPoint.getX(), prevPoint - .getY(), coord[0], coord[1], coord[2], coord[3], coord[4], coord[5]); - addCubicCurveArea(cubicCurve); - prevPoint = new Point2D.Double(coord[4], coord[5]); - break; - case PathIterator.SEG_QUADTO: - QuadCurve2D quadCurve = new QuadCurve2D.Double(prevPoint.getX(), prevPoint.getY(), - coord[0], coord[1], coord[2], coord[3]); - addQuadCurveArea(quadCurve); - prevPoint = new Point2D.Double(coord[3], coord[3]); - break; - } - pathIterator.next(); - } - } - - /** - * Adds a cubic curve to the component area. It uses subdivision to - * approximate the curve with a series of straight lines. - * - * @param curve - */ - private void addCubicCurveArea(CubicCurve2D curve) { - // When end points are close enough, approximate the curve with a - // straight line. - if (curve.getFlatness() < CURVE_SENSITIVITY) { - appendShapeOutline(new Line2D.Double(curve.getP1(), curve.getP2())); - } else { - CubicCurve2D leftSubcurve = new CubicCurve2D.Double(); - CubicCurve2D rightSubcurve = new CubicCurve2D.Double(); - curve.subdivide(leftSubcurve, rightSubcurve); - addCubicCurveArea(leftSubcurve); - addCubicCurveArea(rightSubcurve); - } - } - - /** - * Adds a quad curve to the component area. It uses subdivision to - * approximate the curve with a series of straight lines. - * - * @param curve - */ - private void addQuadCurveArea(QuadCurve2D curve) { - // When end points are close enough, approximate the curve with a - // straight line. - if (curve.getFlatness() < CURVE_SENSITIVITY) { - appendShapeOutline(new Line2D.Double(curve.getP1(), curve.getP2())); - } else { - QuadCurve2D leftSubcurve = new QuadCurve2D.Double(); - QuadCurve2D rightSubcurve = new QuadCurve2D.Double(); - curve.subdivide(leftSubcurve, rightSubcurve); - addQuadCurveArea(leftSubcurve); - addQuadCurveArea(rightSubcurve); - } - } - - @Override - public void addRenderingHints(Map hints) { - canvasGraphics.addRenderingHints(hints); - } - - @Override - public void clip(Shape s) { - canvasGraphics.clip(s); - } - - @Override - public void draw(Shape s) { - canvasGraphics.draw(s); - if (drawingComponent && trackingAllowed) { - appendShapeOutline(s); - } - } - - @Override - public void drawGlyphVector(GlyphVector g, float x, float y) { - canvasGraphics.drawGlyphVector(g, x, y); - } - - @Override - public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) { - // FIXME: process map - return canvasGraphics.drawImage(img, xform, obs); - } - - @Override - public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) { - canvasGraphics.drawImage(img, op, x, y); - // FIXME: process map - } - - @Override - public void drawRenderableImage(RenderableImage img, AffineTransform xform) { - canvasGraphics.drawRenderableImage(img, xform); - // FIXME: process map - } - - @Override - public void drawRenderedImage(RenderedImage img, AffineTransform xform) { - canvasGraphics.drawRenderedImage(img, xform); - // FIXME: process map - } - - @Override - public void drawString(String str, int x, int y) { - canvasGraphics.drawString(str, x, y); - if (drawingComponent && trackingAllowed) { - FontMetrics fontMetrics = canvasGraphics.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds(str, canvasGraphics); - appendShape(new Rectangle2D.Double(rect.getX() + x, rect.getY() + y, rect.getWidth(), - rect.getHeight())); - } - } - - @Override - public void drawString(String str, float x, float y) { - canvasGraphics.drawString(str, x, y); - if (drawingComponent && trackingAllowed) { - FontMetrics fontMetrics = canvasGraphics.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds(str, canvasGraphics); - appendShape(new Rectangle2D.Double(rect.getX() + x, rect.getY() + y, rect.getWidth(), - rect.getHeight())); - } - } - - @Override - public void drawString(AttributedCharacterIterator iterator, int x, int y) { - canvasGraphics.drawString(iterator, x, y); - // FIXME: process map - } - - @Override - public void drawString(AttributedCharacterIterator iterator, float x, float y) { - canvasGraphics.drawString(iterator, x, y); - // FIXME: process map - } - - @Override - public void fill(Shape s) { - canvasGraphics.fill(s); - appendShape(s); - } - - @Override - public Color getBackground() { - return canvasGraphics.getBackground(); - } - - @Override - public Composite getComposite() { - return canvasGraphics.getComposite(); - } - - @Override - public GraphicsConfiguration getDeviceConfiguration() { - return canvasGraphics.getDeviceConfiguration(); - } - - @Override - public FontRenderContext getFontRenderContext() { - return canvasGraphics.getFontRenderContext(); - } - - @Override - public Paint getPaint() { - return canvasGraphics.getPaint(); - } - - @Override - public Object getRenderingHint(Key hintKey) { - return canvasGraphics.getRenderingHint(hintKey); - } - - @Override - public RenderingHints getRenderingHints() { - return canvasGraphics.getRenderingHints(); - } - - @Override - public Stroke getStroke() { - return canvasGraphics.getStroke(); - } - - @Override - public AffineTransform getTransform() { - return canvasGraphics.getTransform(); - } - - @Override - public boolean hit(Rectangle rect, Shape s, boolean onStroke) { - return canvasGraphics.hit(rect, s, onStroke); - } - - @Override - public void rotate(double theta) { - canvasGraphics.rotate(theta); - currentTx.rotate(theta); - } - - @Override - public void rotate(double theta, double x, double y) { - canvasGraphics.rotate(theta, x, y); - currentTx.rotate(theta, x, y); - } - - @Override - public void scale(double sx, double sy) { - canvasGraphics.scale(sx, sy); - currentTx.scale(sx, sy); - } - - @Override - public void setBackground(Color color) { - canvasGraphics.setBackground(color); - // FIXME: fix map - } - - @Override - public void setComposite(Composite comp) { - canvasGraphics.setComposite(comp); - // FIXME: check this. - } - - @Override - public void setPaint(Paint paint) { - canvasGraphics.setPaint(paint); - // FIXME: check this - } - - @Override - public void setRenderingHint(Key hintKey, Object hintValue) { - canvasGraphics.setRenderingHint(hintKey, hintValue); - // FIXME: check this - } - - @Override - public void setRenderingHints(Map hints) { - canvasGraphics.setRenderingHints(hints); - // FIXME: check this - } - - @Override - public void setStroke(Stroke s) { - canvasGraphics.setStroke(s); - } - - @Override - public void setTransform(AffineTransform Tx) { - canvasGraphics.setTransform(Tx); - currentTx = Tx; - } - - @Override - public void shear(double shx, double shy) { - canvasGraphics.shear(shx, shy); - currentTx.shear(shx, shy); - } - - @Override - public void transform(AffineTransform Tx) { - canvasGraphics.transform(Tx); - currentTx.concatenate(Tx); - } - - @Override - public void translate(int x, int y) { - canvasGraphics.translate(x, y); - currentTx.translate(x, y); - } - - @Override - public void translate(double tx, double ty) { - canvasGraphics.translate(tx, ty); - currentTx.translate(tx, ty); - } - - @Override - public void clearRect(int x, int y, int width, int height) { - canvasGraphics.clearRect(x, y, width, height); - } - - @Override - public void clipRect(int x, int y, int width, int height) { - canvasGraphics.clipRect(x, y, width, height); - } - - @Override - public void copyArea(int x, int y, int width, int height, int dx, int dy) { - canvasGraphics.copyArea(x, y, width, height, dx, dy); - } - - @Override - public Graphics create() { - return canvasGraphics.create(); - } - - @Override - public void dispose() { - canvasGraphics.dispose(); - } - - @Override - public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) { - canvasGraphics.drawArc(x, y, width, height, startAngle, arcAngle); - } - - @Override - public boolean drawImage(Image img, int x, int y, ImageObserver observer) { - boolean result = canvasGraphics.drawImage(img, x, y, observer); - appendShape(new Rectangle2D.Double(x, y, img.getWidth(observer), img.getHeight(observer))); - return result; - } - - @Override - public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) { - // FIXME: map - return canvasGraphics.drawImage(img, x, y, bgcolor, observer); - } - - @Override - public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { - // FIXME: map - return canvasGraphics.drawImage(img, x, y, width, height, observer); - } - - @Override - public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, - ImageObserver observer) { - // FIXME: map - return canvasGraphics.drawImage(img, x, y, width, height, bgcolor, observer); - } - - @Override - public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, - int sx2, int sy2, ImageObserver observer) { - // FIXME: map - return canvasGraphics.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer); - } - - @Override - public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, - int sx2, int sy2, Color bgcolor, ImageObserver observer) { - // FIXME: map - return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer); - } - - @Override - public void drawLine(int x1, int y1, int x2, int y2) { - canvasGraphics.drawLine(x1, y1, x2, y2); - if (drawingComponent && trackingAllowed) { - appendShapeOutline(new Line2D.Double(x1, y1, x2, y2)); - } - } - - @Override - public void drawOval(int x, int y, int width, int height) { - canvasGraphics.drawOval(x, y, width, height); - if (drawingComponent && trackingAllowed) { - appendShapeOutline(new Ellipse2D.Double(x, y, width, height)); - } - } - - @Override - public void drawPolygon(int[] points, int[] points2, int points3) { - canvasGraphics.drawPolygon(points, points2, points3); - if (drawingComponent && trackingAllowed) { - appendShapeOutline(new Polygon(points, points2, points3)); - } - } - - @Override - public void drawPolyline(int[] points, int[] points2, int points3) { - canvasGraphics.drawPolyline(points, points2, points3); - } - - @Override - public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { - canvasGraphics.drawRoundRect(x, y, width, height, arcWidth, arcHeight); - if (drawingComponent && trackingAllowed) { - appendShapeOutline(new RoundRectangle2D.Double(x, y, width, height, arcWidth, arcHeight)); - } - } - - @Override - public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) { - canvasGraphics.fillArc(x, y, width, height, startAngle, arcAngle); - if (drawingComponent && trackingAllowed) { - appendShape(new Arc2D.Double(x, y, width, height, startAngle, arcAngle, Arc2D.PIE)); - } - } - - @Override - public void fillOval(int x, int y, int width, int height) { - canvasGraphics.fillOval(x, y, width, height); - if (drawingComponent && trackingAllowed) { - appendShape(new Ellipse2D.Double(x, y, width, height)); - } - } - - @Override - public void fillPolygon(int[] points, int[] points2, int points3) { - canvasGraphics.fillPolygon(points, points2, points3); - if (drawingComponent && trackingAllowed) { - appendShape(new Polygon(points, points2, points3)); - } - } - - @Override - public void drawRect(int x, int y, int width, int height) { - canvasGraphics.drawRect(x, y, width, height); - if (drawingComponent && trackingAllowed) { - appendShapeOutline(new Rectangle(x, y, width, height)); - } - } - - @Override - public void fillRect(int x, int y, int width, int height) { - canvasGraphics.fillRect(x, y, width, height); - if (drawingComponent && trackingAllowed) { - appendShape(new Rectangle(x, y, width, height)); - } - } - - @Override - public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { - canvasGraphics.fillRoundRect(x, y, width, height, arcWidth, arcHeight); - if (drawingComponent && trackingAllowed) { - appendShape(new RoundRectangle2D.Double(x, y, width, height, arcWidth, arcHeight)); - } - } - - @Override - public Shape getClip() { - return canvasGraphics.getClip(); - } - - @Override - public Rectangle getClipBounds() { - return canvasGraphics.getClipBounds(); - } - - @Override - public Color getColor() { - return canvasGraphics.getColor(); - } - - @Override - public Font getFont() { - return canvasGraphics.getFont(); - } - - @Override - public FontMetrics getFontMetrics(Font f) { - return canvasGraphics.getFontMetrics(f); - } - - @Override - public void setClip(Shape clip) { - canvasGraphics.setClip(clip); - } - - @Override - public void setClip(int x, int y, int width, int height) { - canvasGraphics.setClip(x, y, width, height); - } - - @Override - public void setColor(Color c) { - canvasGraphics.setColor(c); - } - - @Override - public void setFont(Font font) { - canvasGraphics.setFont(font); - } - - @Override - public void setPaintMode() { - canvasGraphics.setPaintMode(); - } - - @Override - public void setXORMode(Color c1) { - canvasGraphics.setXORMode(c1); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java deleted file mode 100644 index e2176333..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java +++ /dev/null @@ -1,219 +0,0 @@ -package org.diylc.presenter; - -import java.awt.Point; -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.List; - -import org.apache.log4j.Logger; -import org.diylc.common.ComponentType; -import org.diylc.common.IPlugInPort; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Project; -import org.diylc.core.measures.Size; - -import com.diyfever.gui.miscutils.ConfigurationManager; -import com.rits.cloning.Cloner; - -/** - * Manages component instantiation. - * - * @author Branislav Stojkovic - */ -public class InstantiationManager { - - private static final Logger LOG = Logger.getLogger(InstantiationManager.class); - - private static final int MAX_RECENT_COMPONENTS = 16; - - private Cloner cloner; - - private ComponentType componentTypeSlot; - private IDIYComponent componentSlot; - private Point firstControlPoint; - private Point potentialControlPoint; - - public InstantiationManager() { - cloner = new Cloner(); - } - - public ComponentType getComponentTypeSlot() { - return componentTypeSlot; - } - - public IDIYComponent getComponentSlot() { - return componentSlot; - } - - public Point getFirstControlPoint() { - return firstControlPoint; - } - - public Point getPotentialControlPoint() { - return potentialControlPoint; - } - - public void setComponentTypeSlot(ComponentType componentTypeSlot, Project currentProject) - throws Exception { - this.componentTypeSlot = componentTypeSlot; - if (componentTypeSlot == null) { - this.componentSlot = null; - } else { - switch (componentTypeSlot.getCreationMethod()) { - case POINT_BY_POINT: - this.componentSlot = null; - break; - case SINGLE_CLICK: - this.componentSlot = instantiateComponent(componentTypeSlot, new Point(0, 0), - currentProject); - break; - } - } - this.firstControlPoint = null; - this.potentialControlPoint = null; - } - - public void instatiatePointByPoint(Point scaledPoint, Project currentProject) throws Exception { - firstControlPoint = scaledPoint; - componentSlot = instantiateComponent(componentTypeSlot, firstControlPoint, currentProject); - - // Set the other control point to the same location, we'll - // move it later when mouse moves. - componentSlot.setControlPoint(firstControlPoint, 0); - componentSlot.setControlPoint(firstControlPoint, 1); - } - - /** - * Updates component in the slot with the new second control point. - * - * @param scaledPoint - * @return true, if any change is made - */ - public boolean updatePointByPoint(Point scaledPoint) { - boolean changeMade = !scaledPoint.equals(potentialControlPoint); - potentialControlPoint = scaledPoint; - if (componentSlot != null) { - componentSlot.setControlPoint(scaledPoint, 1); - } - return changeMade; - } - - public boolean updateSingleClick(Point scaledPoint, boolean snapToGrid, Size gridSpacing) { - if (potentialControlPoint == null) { - potentialControlPoint = new Point(0, 0); - } - int dx = scaledPoint.x - potentialControlPoint.x; - int dy = scaledPoint.y - potentialControlPoint.y; - if (snapToGrid) { - dx = CalcUtils.roundToGrid(dx, gridSpacing); - dy = CalcUtils.roundToGrid(dy, gridSpacing); - } - // Only repaint if there's an actual change. - if (dx == 0 && dy == 0) { - return false; - } - potentialControlPoint.translate(dx, dy); - if (componentSlot == null) { - LOG.error("Component slot should not be null!"); - } else { - Point p = new Point(); - for (int i = 0; i < componentSlot.getControlPointCount(); i++) { - p.setLocation(componentSlot.getControlPoint(i)); - p.translate(dx, dy); - componentSlot.setControlPoint(p, i); - } - } - return true; - } - - @SuppressWarnings("unchecked") - public IDIYComponent instantiateComponent(ComponentType componentType, Point point, - Project currentProject) throws Exception { - LOG.info("Instatiating component of type: " + componentType.getInstanceClass().getName()); - - // Instantiate the component. - IDIYComponent component = componentType.getInstanceClass().newInstance(); - - component.setName(createUniqueName(componentType, currentProject)); - - // Translate them to the desired location. - if (point != null) { - for (int j = 0; j < component.getControlPointCount(); j++) { - Point controlPoint = new Point(component.getControlPoint(j)); - controlPoint.translate(point.x, point.y); - // snapPointToGrid(controlPoint); - component.setControlPoint(controlPoint, j); - } - } - - fillWithDefaultProperties(component); - - // Write to recent components - List recentComponentTypes = (List) ConfigurationManager.getInstance() - .readObject(IPlugInPort.RECENT_COMPONENTS_KEY, new ArrayList()); - String className = componentType.getInstanceClass().getName(); - if (recentComponentTypes.size() == 0 || !recentComponentTypes.get(0).equals(className)) { - // Remove if it's already somewhere in the list. - recentComponentTypes.remove(className); - // Add to the end of the list. - recentComponentTypes.add(0, className); - // Trim the list if necessary. - if (recentComponentTypes.size() > MAX_RECENT_COMPONENTS) { - recentComponentTypes.remove(recentComponentTypes.size() - 1); - } - ConfigurationManager.getInstance().writeValue(IPlugInPort.RECENT_COMPONENTS_KEY, - recentComponentTypes); - } - - return component; - } - - public String createUniqueName(ComponentType componentType, Project currentProject) { - int i = 0; - boolean exists = true; - while (exists) { - i++; - String name = componentType.getNamePrefix() + i; - exists = false; - for (IDIYComponent c : currentProject.getComponents()) { - if (c.getName().equals(name)) { - exists = true; - break; - } - } - } - return componentType.getNamePrefix() + i; - } - - /** - * Finds any properties that have default values and injects default values. - * Typically it should be used for {@link IDIYComponent} and {@link Project} - * objects. - * - * @param object - * @throws IllegalArgumentException - * @throws IllegalAccessException - * @throws InvocationTargetException - * @throws NoSuchMethodException - * @throws SecurityException - */ - public void fillWithDefaultProperties(Object object) throws IllegalArgumentException, - IllegalAccessException, InvocationTargetException, SecurityException, - NoSuchMethodException { - // Extract properties. - List properties = ComponentProcessor.getInstance().extractProperties( - object.getClass()); - // Override with default values if available. - for (PropertyWrapper property : properties) { - Object defaultValue = ConfigurationManager.getInstance().readObject( - Presenter.DEFAULTS_KEY_PREFIX + object.getClass().getName() + ":" - + property.getName(), null); - if (defaultValue != null) { - property.setValue(cloner.deepClone(defaultValue)); - property.writeTo(object); - } - } - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java deleted file mode 100644 index df3ecbd1..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java +++ /dev/null @@ -1,1391 +0,0 @@ -package org.diylc.presenter; - -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.geom.Area; -import java.awt.geom.Point2D; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.swing.JOptionPane; - -import org.apache.log4j.Logger; -import org.diylc.common.ComponentType; -import org.diylc.common.DrawOption; -import org.diylc.common.EventType; -import org.diylc.common.IComponentFiler; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.common.PropertyWrapper; -import org.diylc.components.connectivity.SolderPad; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IView; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.measures.SizeUnit; -import org.diylc.swing.plugins.edit.ComponentTransferable; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; -import com.diyfever.gui.miscutils.JarScanner; -import com.diyfever.gui.miscutils.Utils; -import com.diyfever.gui.simplemq.MessageDispatcher; -import com.diyfever.gui.update.VersionNumber; -import com.rits.cloning.Cloner; - -/** - * The main presenter class, contains core app logic and drawing routines. - * - * @author Branislav Stojkovic - */ -public class Presenter implements IPlugInPort { - - private static final Logger LOG = Logger.getLogger(Presenter.class); - - public static final VersionNumber CURRENT_VERSION = new VersionNumber(3, 0, 9); - public static final String DEFAULTS_KEY_PREFIX = "default."; - - public static final List> EMPTY_SELECTION = Collections.emptyList(); - - public static final int ICON_SIZE = 32; - - private Project currentProject; - private Map> componentTypes; - // Maps component class names to ComponentType objects. - private List plugIns; - - private List> selectedComponents; - // Maps components that have at least one dragged point to set of indices - // that designate which of their control points are being dragged. - private Map, Set> controlPointMap; - private Set> lockedComponents; - - // Utilities - private Cloner cloner; - private DrawingManager drawingManager; - private ProjectFileManager projectFileManager; - private InstantiationManager instantiationManager; - - private Rectangle selectionRect; - - private final IView view; - - private MessageDispatcher messageDispatcher; - - // Layers - // private Set lockedLayers; - // private Set visibleLayers; - - // D&D - private boolean dragInProgress = false; - // Previous mouse location, not scaled for zoom factor. - private Point previousDragPoint = null; - private Project preDragProject = null; - - public Presenter(IView view) { - super(); - this.view = view; - plugIns = new ArrayList(); - messageDispatcher = new MessageDispatcher(true); - selectedComponents = new ArrayList>(); - lockedComponents = new HashSet>(); - currentProject = new Project(); - cloner = new Cloner(); - drawingManager = new DrawingManager(messageDispatcher); - projectFileManager = new ProjectFileManager(messageDispatcher); - instantiationManager = new InstantiationManager(); - - // lockedLayers = EnumSet.noneOf(ComponentLayer.class); - // visibleLayers = EnumSet.allOf(ComponentLayer.class); - } - - public void installPlugin(IPlugIn plugIn) { - LOG.info(String.format("installPlugin(%s)", plugIn.getClass().getSimpleName())); - plugIns.add(plugIn); - plugIn.connect(this); - messageDispatcher.registerListener(plugIn); - } - - public void dispose() { - for (IPlugIn plugIn : plugIns) { - messageDispatcher.unregisterListener(plugIn); - } - } - - // IPlugInPort - - @Override - public Double[] getAvailableZoomLevels() { - return new Double[] { 0.25d, 0.3333d, 0.5d, 0.6667d, 0.75d, 1d, 1.25d, 1.5d, 2d }; - } - - @Override - public double getZoomLevel() { - return drawingManager.getZoomLevel(); - } - - @Override - public void setZoomLevel(double zoomLevel) { - LOG.info(String.format("setZoomLevel(%s)", zoomLevel)); - if (drawingManager.getZoomLevel() == zoomLevel) { - return; - } - drawingManager.setZoomLevel(zoomLevel); - } - - @Override - public Cursor getCursorAt(Point point) { - // Only change the cursor if we're not making a new component. - if (instantiationManager.getComponentTypeSlot() == null) { - // Scale point to remove zoom factor. - Point2D scaledPoint = scalePoint(point); - if (controlPointMap != null && !controlPointMap.isEmpty()) { - return Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); - } - for (IDIYComponent component : currentProject.getComponents()) { - if (!isComponentLocked(component)) { - Area area = drawingManager.getComponentArea(component); - if (area != null && area.contains(scaledPoint)) { - return Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); - } - } - } - } - return Cursor.getDefaultCursor(); - } - - @Override - public Dimension getCanvasDimensions(boolean useZoom) { - return drawingManager.getCanvasDimensions(currentProject, drawingManager.getZoomLevel(), - useZoom); - } - - @Override - public Project getCurrentProject() { - return currentProject; - } - - @Override - public void loadProject(Project project, boolean freshStart) { - LOG.info(String.format("loadProject(%s, %s)", project.getTitle(), freshStart)); - this.currentProject = project; - drawingManager.clearComponentAreaMap(); - updateSelection(EMPTY_SELECTION); - messageDispatcher.dispatchMessage(EventType.PROJECT_LOADED, project, freshStart); - messageDispatcher.dispatchMessage(EventType.REPAINT); - messageDispatcher.dispatchMessage(EventType.LAYER_STATE_CHANGED, currentProject - .getLockedLayers()); - } - - @Override - public void createNewProject() { - LOG.info("createNewFile()"); - try { - Project project = new Project(); - instantiationManager.fillWithDefaultProperties(project); - loadProject(project, true); - projectFileManager.startNewFile(); - } catch (Exception e) { - LOG.error("Could not create new file", e); - view.showMessage("Could not create a new file. Check the log for details.", "Error", - IView.ERROR_MESSAGE); - } - } - - @Override - public void loadProjectFromFile(String fileName) { - LOG.info(String.format("loadProjectFromFile(%s)", fileName)); - try { - List warnings = new ArrayList(); - Project project = (Project) projectFileManager.deserializeProjectFromFile(fileName, - warnings); - loadProject(project, true); - projectFileManager.fireFileStatusChanged(); - if (!warnings.isEmpty()) { - StringBuilder builder = new StringBuilder( - "File was opened, but there were some issues with it:

"); - for (String warning : warnings) { - builder.append(warning); - builder.append("
"); - } - builder.append("> getComponentTypes() { - if (componentTypes == null) { - LOG.info("Loading component types."); - componentTypes = new HashMap>(); - List> componentTypeClasses = JarScanner.getInstance().scanFolder("library/", - IDIYComponent.class); - for (Class clazz : componentTypeClasses) { - if (!Modifier.isAbstract(clazz.getModifiers())) { - ComponentType componentType = ComponentProcessor.getInstance() - .extractComponentTypeFrom((Class>) clazz); - List nestedList; - if (componentTypes.containsKey(componentType.getCategory())) { - nestedList = componentTypes.get(componentType.getCategory()); - } else { - nestedList = new ArrayList(); - componentTypes.put(componentType.getCategory(), nestedList); - } - nestedList.add(componentType); - } - } - } - return componentTypes; - } - - @Override - public void draw(Graphics2D g2d, Set drawOptions, IComponentFiler filter) { - if (currentProject == null) { - return; - } - Set> groupedComponents = new HashSet>(); - for (IDIYComponent component : currentProject.getComponents()) { - // Only try to draw control points of ungrouped components. - if (findAllGroupedComponents(component).size() > 1) { - groupedComponents.add(component); - } - } - // Don't draw the component in the slot if both control points - // match. - IDIYComponent componentSlotToDraw; - if (instantiationManager.getFirstControlPoint() != null - && instantiationManager.getPotentialControlPoint() != null - && instantiationManager.getFirstControlPoint().equals( - instantiationManager.getPotentialControlPoint())) { - componentSlotToDraw = null; - } else { - componentSlotToDraw = instantiationManager.getComponentSlot(); - } - List> failedComponents = drawingManager.drawProject(g2d, currentProject, - drawOptions, filter, selectionRect, selectedComponents, getLockedComponents(), - groupedComponents, Arrays.asList(instantiationManager.getFirstControlPoint(), - instantiationManager.getPotentialControlPoint()), componentSlotToDraw, - dragInProgress); - List failedComponentNames = new ArrayList(); - for (IDIYComponent component : failedComponents) { - failedComponentNames.add(component.getName()); - } - Collections.sort(failedComponentNames); - if (!failedComponentNames.isEmpty()) { - messageDispatcher.dispatchMessage(EventType.STATUS_MESSAGE_CHANGED, - "Failed to draw components: " - + Utils.toCommaString(failedComponentNames) + ""); - } else { - messageDispatcher.dispatchMessage(EventType.STATUS_MESSAGE_CHANGED, ""); - } - } - - /** - * Finds all components whose areas include the specified {@link Point}. - * Point is not scaled by the zoom factor. Components that belong to - * locked layers are ignored. - * - * @return - */ - private List> findComponentsAt(Point point) { - List> components = drawingManager.findComponentsAt(point, currentProject); - Iterator> iterator = components.iterator(); - while (iterator.hasNext()) { - if (isComponentLocked(iterator.next())) { - iterator.remove(); - } - } - return components; - } - - @Override - public void mouseClicked(Point point, boolean ctrlDown, boolean shiftDown, boolean altDown, - int clickCount) { - LOG.debug(String - .format("mouseClicked(%s, %s, %s, %s)", point, ctrlDown, shiftDown, altDown)); - Point scaledPoint = scalePoint(point); - if (clickCount >= 2) { - editSelection(); - } else { - if (instantiationManager.getComponentTypeSlot() != null) { - // Keep the reference to component type for later. - ComponentType componentTypeSlot = instantiationManager.getComponentTypeSlot(); - Project oldProject = cloner.deepClone(currentProject); - switch (componentTypeSlot.getCreationMethod()) { - case SINGLE_CLICK: - try { - if (ConfigurationManager.getInstance().readBoolean( - IPlugInPort.SNAP_TO_GRID_KEY, true)) { - CalcUtils.snapPointToGrid(scaledPoint, currentProject.getGridSpacing()); - } - IDIYComponent component = instantiationManager.instantiateComponent( - componentTypeSlot, scaledPoint, currentProject); - addComponent(component, componentTypeSlot, true); - // Select the new component - // messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, - // selectedComponents); - // messageDispatcher.dispatchMessage(EventType.SELECTION_SIZE_CHANGED, - // calculateSelectionDimension()); - messageDispatcher.dispatchMessage(EventType.REPAINT); - List> newSelection = new ArrayList>(); - newSelection.add(component); - updateSelection(newSelection); - } catch (Exception e) { - LOG.error("Error instatiating component of type: " - + componentTypeSlot.getInstanceClass().getName(), e); - } - - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.AUTO_EDIT_KEY, - false)) { - editSelection(); - } - if (ConfigurationManager.getInstance().readBoolean( - IPlugInPort.CONTINUOUS_CREATION_KEY, false)) { - setNewComponentTypeSlot(componentTypeSlot); - } else { - setNewComponentTypeSlot(null); - } - break; - case POINT_BY_POINT: - // First click is just to set the controlPointSlot and - // componentSlot. - if (ConfigurationManager.getInstance().readBoolean( - IPlugInPort.SNAP_TO_GRID_KEY, true)) { - CalcUtils.snapPointToGrid(scaledPoint, currentProject.getGridSpacing()); - } - if (instantiationManager.getComponentSlot() == null) { - try { - instantiationManager - .instatiatePointByPoint(scaledPoint, currentProject); - } catch (Exception e) { - view.showMessage("Could not create component. Check log for details.", - "Error", IView.ERROR_MESSAGE); - LOG.error("Could not create component", e); - } - messageDispatcher.dispatchMessage(EventType.SLOT_CHANGED, - componentTypeSlot, instantiationManager.getFirstControlPoint()); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } else { - // On the second click, add the component to the - // project. - IDIYComponent componentSlot = instantiationManager.getComponentSlot(); - componentSlot.setControlPoint(scaledPoint, 1); - addComponent(componentSlot, componentTypeSlot, true); - // Select the new component if it's not locked. - List> newSelection = new ArrayList>(); - if (!isComponentLocked(componentSlot)) { - newSelection.add(componentSlot); - } - updateSelection(newSelection); - messageDispatcher.dispatchMessage(EventType.REPAINT); - - if (ConfigurationManager.getInstance().readBoolean( - IPlugInPort.AUTO_EDIT_KEY, false)) { - editSelection(); - } - if (ConfigurationManager.getInstance().readBoolean( - IPlugInPort.CONTINUOUS_CREATION_KEY, false)) { - setNewComponentTypeSlot(componentTypeSlot); - } else { - setNewComponentTypeSlot(null); - } - } - break; - default: - LOG.error("Unknown creation method: " + componentTypeSlot.getCreationMethod()); - } - // Notify the listeners. - if (!oldProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, - cloner.deepClone(currentProject), "Add " + componentTypeSlot.getName()); - projectFileManager.notifyFileChange(); - } - } else { - List> newSelection = new ArrayList>( - selectedComponents); - List> components = findComponentsAt(scaledPoint); - // If there's nothing under mouse cursor deselect all. - if (components.isEmpty()) { - if (!ctrlDown) { - newSelection.clear(); - } - } else { - IDIYComponent component = components.get(components.size() - 1); - // If ctrl is pressed just toggle the component under mouse - // cursor. - if (ctrlDown) { - if (newSelection.contains(component)) { - newSelection.removeAll(findAllGroupedComponents(component)); - } else { - newSelection.addAll(findAllGroupedComponents(component)); - } - } else { - // Otherwise just select that one component. - newSelection.clear(); - newSelection.addAll(findAllGroupedComponents(component)); - } - } - updateSelection(newSelection); - // messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, - // selectedComponents); - // messageDispatcher.dispatchMessage(EventType.SELECTION_SIZE_CHANGED, - // calculateSelectionDimension()); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - } - } - - @Override - public void editSelection() { - List properties = getMutualSelectionProperties(); - if (properties != null && !properties.isEmpty()) { - Set defaultedProperties = new HashSet(); - boolean edited = view.editProperties(properties, defaultedProperties); - if (edited) { - try { - applyPropertiesToSelection(properties); - } catch (Exception e1) { - view.showMessage( - "Error occured while editing selection. Check the log for details.", - "Error", JOptionPane.ERROR_MESSAGE); - LOG.error("Error applying properties", e1); - } - // Save default values. - for (PropertyWrapper property : defaultedProperties) { - if (property.getValue() != null) { - setSelectionDefaultPropertyValue(property.getName(), property.getValue()); - } - } - } - } - } - - @Override - public void mouseMoved(Point point, boolean ctrlDown, boolean shiftDown, boolean altDown) { - Map, Set> components = new HashMap, Set>(); - Point scaledPoint = scalePoint(point); - if (instantiationManager.getComponentTypeSlot() != null) { - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.SNAP_TO_GRID_KEY, true)) { - CalcUtils.snapPointToGrid(scaledPoint, currentProject.getGridSpacing()); - } - boolean refresh = false; - switch (instantiationManager.getComponentTypeSlot().getCreationMethod()) { - case POINT_BY_POINT: - refresh = instantiationManager.updatePointByPoint(scaledPoint); - break; - case SINGLE_CLICK: - refresh = instantiationManager.updateSingleClick(scaledPoint, ConfigurationManager - .getInstance().readBoolean(IPlugInPort.SNAP_TO_GRID_KEY, true), - currentProject.getGridSpacing()); - break; - } - if (refresh) { - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - } else { - // Go backwards so we take the highest z-order components first. - for (int i = currentProject.getComponents().size() - 1; i >= 0; i--) { - IDIYComponent component = currentProject.getComponents().get(i); - ComponentType componentType = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) component.getClass()); - for (int pointIndex = 0; pointIndex < component.getControlPointCount(); pointIndex++) { - Point controlPoint = component.getControlPoint(pointIndex); - // Only consider selected components that are not grouped. - if (selectedComponents.contains(component) && componentType.isStretchable() - && findAllGroupedComponents(component).size() == 1) { - try { - if (scaledPoint.distance(controlPoint) < DrawingManager.CONTROL_POINT_SIZE) { - Set indices = new HashSet(); - if (componentType.isStretchable()) { - indices.add(pointIndex); - } else { - for (int j = 0; j < component.getControlPointCount(); j++) { - indices.add(j); - } - } - components.put(component, indices); - break; - } - } catch (Exception e) { - LOG.warn("Error reading control point for component of type: " - + component.getClass().getName()); - } - } - } - } - } - - messageDispatcher.dispatchMessage(EventType.MOUSE_MOVED, scaledPoint); - - if (!components.equals(controlPointMap)) { - controlPointMap = components; - messageDispatcher.dispatchMessage(EventType.AVAILABLE_CTRL_POINTS_CHANGED, - new HashMap, Set>(components)); - } - } - - @Override - public List> getSelectedComponents() { - return selectedComponents; - } - - @Override - public void selectAll() { - LOG.info("selectAll()"); - updateSelection(new ArrayList>(currentProject.getComponents())); - // messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, - // selectedComponents); - // messageDispatcher.dispatchMessage(EventType.SELECTION_SIZE_CHANGED, - // calculateSelectionDimension()); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - - @Override - public VersionNumber getCurrentVersionNumber() { - return CURRENT_VERSION; - } - - @Override - public void dragStarted(Point point, boolean ctrlDown, boolean shiftDown, boolean altDown) { - LOG.debug(String.format("dragStarted(%s)", point)); - if (instantiationManager.getComponentTypeSlot() != null) { - LOG.debug("Cannot start drag because a new component is being created."); - mouseClicked(point, ctrlDown, shiftDown, altDown, 1); - return; - } - dragInProgress = true; - preDragProject = cloner.deepClone(currentProject); - Point scaledPoint = scalePoint(point); - previousDragPoint = scaledPoint; - List> components = findComponentsAt(scaledPoint); - if (!controlPointMap.isEmpty()) { - // If we're dragging control points reset selection. - updateSelection(new ArrayList>(controlPointMap.keySet())); - // messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, - // selectedComponents); - // messageDispatcher.dispatchMessage(EventType.SELECTION_SIZE_CHANGED, - // calculateSelectionDimension()); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } else if (components.isEmpty()) { - // If there are no components are under the cursor, reset selection. - updateSelection(EMPTY_SELECTION); - // messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, - // selectedComponents); - // messageDispatcher.dispatchMessage(EventType.SELECTION_SIZE_CHANGED, - // calculateSelectionDimension()); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } else { - // Take the last component, i.e. the top order component. - IDIYComponent component = components.get(components.size() - 1); - // If the component under the cursor is not already selected, make - // it into the only selected component. - if (!selectedComponents.contains(component)) { - updateSelection(new ArrayList>(findAllGroupedComponents(component))); - // messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, - // selectedComponents); - // messageDispatcher.dispatchMessage(EventType.SELECTION_SIZE_CHANGED, - // calculateSelectionDimension()); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - // If there aren't any control points, try to add all the selected - // components with all their control points. That will allow the - // user to drag the whole components. - for (IDIYComponent c : selectedComponents) { - Set pointIndices = new HashSet(); - if (c.getControlPointCount() > 0) { - for (int i = 0; i < c.getControlPointCount(); i++) { - pointIndices.add(i); - } - controlPointMap.put(c, pointIndices); - } - } - // Expand control points to include all stuck components. - boolean sticky = ConfigurationManager.getInstance().readBoolean( - IPlugInPort.STICKY_POINTS_KEY, true); - if (ctrlDown) { - sticky = !sticky; - } - if (sticky) { - includeStuckComponents(controlPointMap); - } - } - } - - /** - * Finds any components that are stuck to one of the components already in - * the map. - * - * @param controlPointMap - */ - private void includeStuckComponents(Map, Set> controlPointMap) { - int oldSize = controlPointMap.size(); - LOG.trace("Expanding selected component map"); - for (IDIYComponent component : currentProject.getComponents()) { - ComponentType componentType = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) component.getClass()); - - // Check if there's a control point in the current selection - // that matches with one of its control points. - for (int i = 0; i < component.getControlPointCount(); i++) { - // Do not process a control point if it's already in the map and - // if it's locked. - if ((!controlPointMap.containsKey(component) || !controlPointMap.get(component) - .contains(i)) - && !isComponentLocked(component)) { - if (component.isControlPointSticky(i)) { - boolean componentMatches = false; - for (Map.Entry, Set> entry : controlPointMap - .entrySet()) { - if (componentMatches) { - break; - } - for (Integer j : entry.getValue()) { - Point firstPoint = component.getControlPoint(i); - if (entry.getKey().isControlPointSticky(j)) { - Point secondPoint = entry.getKey().getControlPoint(j); - // If they are close enough we can consider - // them matched. - if (firstPoint.distance(secondPoint) < DrawingManager.CONTROL_POINT_SIZE) { - componentMatches = true; - break; - } - } - } - } - if (componentMatches) { - LOG.trace("Including component: " + component); - Set indices = new HashSet(); - // For stretchable components just add the - // matching component. Otherwise, add all control - // points. - if (componentType.isStretchable()) { - indices.add(i); - } else { - for (int k = 0; k < component.getControlPointCount(); k++) { - indices.add(k); - } - } - if (controlPointMap.containsKey(component)) { - controlPointMap.get(component).addAll(indices); - } else { - controlPointMap.put(component, indices); - } - } - } - } - } - } - int newSize = controlPointMap.size(); - // As long as we're adding new components, do another iteration. - if (newSize > oldSize) { - LOG.trace("Component count changed, trying one more time."); - includeStuckComponents(controlPointMap); - } else { - LOG.trace("Component count didn't change, done with expanding."); - } - } - - @Override - public boolean dragOver(Point point) { - if (point == null) { - return false; - } - Point scaledPoint = scalePoint(point); - if (!controlPointMap.isEmpty()) { - // We're dragging control point(s). - int dx = (scaledPoint.x - previousDragPoint.x); - int dy = (scaledPoint.y - previousDragPoint.y); - // After we make the transfer and snap to grid, calculate actual dx - // and dy. We'll use them to translate the previous drag point. - int actualDx = 0; - int actualDy = 0; - - // For each component, do a simulation of the move to see if any of - // them will overlap or go out of bounds. - int width = (int) currentProject.getWidth().convertToPixels(); - int height = (int) currentProject.getHeight().convertToPixels(); - boolean isFirst = true; - for (Map.Entry, Set> entry : controlPointMap.entrySet()) { - IDIYComponent component = entry.getKey(); - Point[] controlPoints = new Point[component.getControlPointCount()]; - for (int index = 0; index < component.getControlPointCount(); index++) { - controlPoints[index] = new Point(component.getControlPoint(index)); - // When the first point is moved, calculate how much it - // actually moved after snapping. - if (entry.getValue().contains(index)) { - if (isFirst) { - isFirst = false; - Point testPoint = new Point(controlPoints[index]); - testPoint.translate(dx, dy); - if (ConfigurationManager.getInstance().readBoolean( - IPlugInPort.SNAP_TO_GRID_KEY, true)) { - CalcUtils.snapPointToGrid(testPoint, currentProject - .getGridSpacing()); - } - actualDx = testPoint.x - component.getControlPoint(index).x; - actualDy = testPoint.y - component.getControlPoint(index).y; - if (actualDx == 0 && actualDy == 0) { - // Nothing to move. - return true; - } - } - controlPoints[index].translate(actualDx, actualDy); - if (controlPoints[index].x < 0 || controlPoints[index].y < 0 - || controlPoints[index].x > width - || controlPoints[index].y > height) { - // At least one control point went out of bounds. - return true; - } - } - // For control points that may overlap, just write null, - // we'll ignore them later. - if (component.canControlPointOverlap(index)) { - controlPoints[index] = null; - } - } - - for (int i = 0; i < controlPoints.length - 1; i++) { - for (int j = i + 1; j < controlPoints.length; j++) { - if (controlPoints[i] != null && controlPoints[j] != null - && controlPoints[i].equals(controlPoints[j])) { - // Control points collision detected, cannot make - // this move. - return true; - } - } - } - } - - // Update all points. - for (Map.Entry, Set> entry : controlPointMap.entrySet()) { - IDIYComponent c = entry.getKey(); - drawingManager.invalidateComponent(c); - for (Integer index : entry.getValue()) { - Point p = new Point(c.getControlPoint(index)); - p.translate(actualDx, actualDy); - c.setControlPoint(p, index); - } - } - previousDragPoint.translate(actualDx, actualDy); - } else if (selectedComponents.isEmpty() - && instantiationManager.getComponentTypeSlot() == null) { - // If there's no selection, the only thing to do is update the - // selection rectangle and refresh. - Rectangle oldSelectionRect = selectionRect == null ? null - : new Rectangle(selectionRect); - this.selectionRect = Utils.createRectangle(scaledPoint, previousDragPoint); - if (selectionRect.equals(oldSelectionRect)) { - return true; - } - // messageDispatcher.dispatchMessage(EventType.SELECTION_RECT_CHANGED, - // selectionRect); - } - messageDispatcher.dispatchMessage(EventType.REPAINT); - return true; - } - - @Override - public void dragEnded(Point point) { - LOG.debug(String.format("dragEnded(%s)", point)); - if (!dragInProgress) { - return; - } - Point scaledPoint = scalePoint(point); - if (selectedComponents.isEmpty()) { - // If there's no selection finalize selectionRect and see which - // components intersect with it. - if (scaledPoint != null) { - this.selectionRect = Utils.createRectangle(scaledPoint, previousDragPoint); - } - List> newSelection = new ArrayList>(); - for (IDIYComponent component : currentProject.getComponents()) { - if (!isComponentLocked(component)) { - Area area = drawingManager.getComponentArea(component); - if ((area != null) && (selectionRect != null) && area.intersects(selectionRect)) { - newSelection.addAll(findAllGroupedComponents(component)); - } - } - } - selectionRect = null; - updateSelection(newSelection); - // messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, - // selectedComponents); - // messageDispatcher.dispatchMessage(EventType.SELECTION_SIZE_CHANGED, - // calculateSelectionDimension()); - } else { - updateSelection(selectedComponents); - } - // There is selection, so we need to finalize the drag&drop - // operation. - - if (!preDragProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, preDragProject, cloner - .deepClone(currentProject), "Drag"); - projectFileManager.notifyFileChange(); - } - messageDispatcher.dispatchMessage(EventType.REPAINT); - dragInProgress = false; - } - - @Override - public void pasteComponents(List> components) { - LOG.info(String.format("addComponents(%s)", components)); - Project oldProject = cloner.deepClone(currentProject); - for (IDIYComponent component : components) { - for (int i = 0; i < component.getControlPointCount(); i++) { - Point point = new Point(component.getControlPoint(i)); - point.translate((int) currentProject.getGridSpacing().convertToPixels(), - (int) currentProject.getGridSpacing().convertToPixels()); - component.setControlPoint(point, i); - } - component.setName(instantiationManager.createUniqueName(ComponentProcessor - .getInstance().extractComponentTypeFrom( - (Class>) component.getClass()), - currentProject)); - addComponent(component, ComponentProcessor.getInstance().extractComponentTypeFrom( - (Class>) component.getClass()), false); - } - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Add"); - projectFileManager.notifyFileChange(); - updateSelection(new ArrayList>(components)); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - - @Override - public void deleteSelectedComponents() { - LOG.info("deleteSelectedComponents()"); - if (selectedComponents.isEmpty()) { - LOG.debug("Nothing to delete"); - return; - } - Project oldProject = cloner.deepClone(currentProject); - // Remove selected components from any groups. - ungroupComponents(selectedComponents); - // Remove from area map. - for (IDIYComponent component : selectedComponents) { - drawingManager.invalidateComponent(component); - } - currentProject.getComponents().removeAll(selectedComponents); - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Delete"); - projectFileManager.notifyFileChange(); - updateSelection(EMPTY_SELECTION); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - - @Override - public void setSelectionDefaultPropertyValue(String propertyName, Object value) { - LOG.info(String.format("setSelectionDefaultPropertyValue(%s, %s)", propertyName, value)); - for (IDIYComponent component : selectedComponents) { - String className = component.getClass().getName(); - LOG.debug("Default property value set for " + className + ":" + propertyName); - ConfigurationManager.getInstance().writeValue( - DEFAULTS_KEY_PREFIX + className + ":" + propertyName, value); - } - } - - @Override - public void setProjectDefaultPropertyValue(String propertyName, Object value) { - LOG.info(String.format("setProjectDefaultPropertyValue(%s, %s)", propertyName, value)); - LOG.debug("Default property value set for " + Project.class.getName() + ":" + propertyName); - ConfigurationManager.getInstance().writeValue( - DEFAULTS_KEY_PREFIX + Project.class.getName() + ":" + propertyName, value); - } - - @Override - public void setMetric(boolean isMetric) { - ConfigurationManager.getInstance().writeValue(Presenter.METRIC_KEY, isMetric); - } - - @Override - public void groupSelectedComponents() { - LOG.info("groupSelectedComponents()"); - Project oldProject = cloner.deepClone(currentProject); - // First remove the selected components from other groups. - ungroupComponents(selectedComponents); - // Then group them together. - currentProject.getGroups().add(new HashSet>(selectedComponents)); - // Notify the listeners. - messageDispatcher.dispatchMessage(EventType.REPAINT); - if (!oldProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Group"); - projectFileManager.notifyFileChange(); - } - } - - @Override - public void ungroupSelectedComponents() { - LOG.info("ungroupSelectedComponents()"); - Project oldProject = cloner.deepClone(currentProject); - ungroupComponents(selectedComponents); - // Notify the listeners. - messageDispatcher.dispatchMessage(EventType.REPAINT); - if (!oldProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Ungroup"); - projectFileManager.notifyFileChange(); - } - } - - @Override - public void setLayerLocked(int layerZOrder, boolean locked) { - LOG.info(String.format("setLayerLocked(%s, %s)", layerZOrder, locked)); - if (locked) { - currentProject.getLockedLayers().add(layerZOrder); - } else { - currentProject.getLockedLayers().remove(layerZOrder); - } - updateSelection(EMPTY_SELECTION); - messageDispatcher.dispatchMessage(EventType.REPAINT); - messageDispatcher.dispatchMessage(EventType.LAYER_STATE_CHANGED, currentProject - .getLockedLayers()); - } - - @Override - public void sendSelectionToBack() { - LOG.info("sendSelectionToBack()"); - Project oldProject = cloner.deepClone(currentProject); - for (IDIYComponent component : selectedComponents) { - ComponentType componentType = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) component.getClass()); - int index = currentProject.getComponents().indexOf(component); - if (index < 0) { - LOG.warn("Component not found in the project: " + component.getName()); - } else if (index > 0) { - IDIYComponent componentBefore = currentProject.getComponents().get(index - 1); - ComponentType componentBeforeType = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) componentBefore.getClass()); - Collections.swap(currentProject.getComponents(), index, index - 1); - } - } - if (!oldProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Send to Back"); - projectFileManager.notifyFileChange(); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - } - - @Override - public void bringSelectionToFront() { - LOG.info("bringSelectionToFront()"); - Project oldProject = cloner.deepClone(currentProject); - for (IDIYComponent component : selectedComponents) { - ComponentType componentType = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) component.getClass()); - int index = currentProject.getComponents().indexOf(component); - if (index < 0) { - LOG.warn("Component not found in the project: " + component.getName()); - } else if (index < currentProject.getComponents().size() - 1) { - IDIYComponent componentAfter = currentProject.getComponents().get(index + 1); - ComponentType componentAfterType = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) componentAfter.getClass()); - Collections.swap(currentProject.getComponents(), index, index + 1); - } - } - if (!oldProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Bring to Front"); - projectFileManager.notifyFileChange(); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - } - - @Override - public void refresh() { - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - - @Override - public Theme getSelectedTheme() { - return drawingManager.getTheme(); - } - - @Override - public void setSelectedTheme(Theme theme) { - drawingManager.setTheme(theme); - } - - @Override - public void renumberSelectedComponents(final boolean xAxisFirst) { - if (getSelectedComponents().isEmpty()) { - return; - } - Project oldProject = cloner.deepClone(currentProject); - List> components = new ArrayList>(getSelectedComponents()); - // Sort components by their location. - Collections.sort(components, new Comparator>() { - - @Override - public int compare(IDIYComponent o1, IDIYComponent o2) { - Area area1 = drawingManager.getComponentArea(o1); - Area area2 = drawingManager.getComponentArea(o2); - if (area1 != null && area2 != null) { - Point point1 = area1.getBounds().getLocation(); - Point point2 = area2.getBounds().getLocation(); - if (xAxisFirst) { - if (point1.y < point2.y) { - return -1; - } else if (point1.y > point2.y) { - return 1; - } else { - if (point1.x < point1.x) { - return -1; - } else if (point1.x > point1.x) { - return 1; - } - } - } else { - if (point1.x < point2.x) { - return -1; - } else if (point1.x > point2.x) { - return 1; - } else { - if (point1.y < point1.y) { - return -1; - } else if (point1.y > point1.y) { - return 1; - } - } - } - } - return 0; - } - }); - // Clear names. - for (IDIYComponent component : components) { - component.setName(""); - } - // Assign new ones. - for (IDIYComponent component : components) { - component.setName(instantiationManager.createUniqueName(ComponentProcessor - .getInstance().extractComponentTypeFrom( - (Class>) component.getClass()), - currentProject)); - } - - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Renumber selection"); - projectFileManager.notifyFileChange(); - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - - public void updateSelection(List> newSelection) { - this.selectedComponents = newSelection; - Map, Set> controlPointMap = new HashMap, Set>(); - for (IDIYComponent component : selectedComponents) { - Set indices = new HashSet(); - for (int i = 0; i < component.getControlPointCount(); i++) { - indices.add(i); - } - controlPointMap.put(component, indices); - } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.STICKY_POINTS_KEY, true)) { - includeStuckComponents(controlPointMap); - } - messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, selectedComponents, - controlPointMap.keySet()); - } - - /** - * Removes all the groups that contain at least one of the specified - * components. - * - * @param components - */ - private void ungroupComponents(Collection> components) { - Iterator>> groupIterator = currentProject.getGroups().iterator(); - while (groupIterator.hasNext()) { - Set> group = groupIterator.next(); - group.removeAll(components); - if (group.isEmpty()) { - groupIterator.remove(); - } - } - } - - /** - * Finds all components that are grouped with the specified component. This - * should be called any time components are added or removed from the - * selection. - * - * @param component - * @return set of all components that belong to the same group with the - * specified component. At the minimum, set contains that single - * component. - */ - private Set> findAllGroupedComponents(IDIYComponent component) { - Set> components = new HashSet>(); - components.add(component); - for (Set> group : currentProject.getGroups()) { - if (group.contains(component)) { - components.addAll(group); - break; - } - } - return components; - } - - @Override - public Point2D calculateSelectionDimension() { - if (selectedComponents.isEmpty()) { - return null; - } - boolean metric = ConfigurationManager.getInstance().readBoolean(METRIC_KEY, true); - Area area = new Area(); - for (IDIYComponent component : selectedComponents) { - Area componentArea = drawingManager.getComponentArea(component); - if (componentArea != null) { - area.add(componentArea); - } else { - LOG.warn("No area found for: " + component.getName()); - } - } - double width = area.getBounds2D().getWidth(); - double height = area.getBounds2D().getHeight(); - width /= Constants.PIXELS_PER_INCH; - height /= Constants.PIXELS_PER_INCH; - if (metric) { - width *= SizeUnit.in.getFactor() / SizeUnit.cm.getFactor(); - height *= SizeUnit.in.getFactor() / SizeUnit.cm.getFactor(); - } - Point2D dimension = new Point2D.Double(width, height); - return dimension; - } - - /** - * Adds a component to the project taking z-order into account. - * - * @param component - * @param componentType - */ - private void addComponent(IDIYComponent component, ComponentType componentType, - boolean canCreatePads) { - int index = 0; - while (index < currentProject.getComponents().size() - && componentType.getZOrder() >= ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) currentProject.getComponents() - .get(index).getClass()).getZOrder()) { - index++; - } - if (index < currentProject.getComponents().size()) { - currentProject.getComponents().add(index, component); - } else { - currentProject.getComponents().add(component); - } - if (canCreatePads - && ConfigurationManager.getInstance().readBoolean(IPlugInPort.AUTO_PADS_KEY, false) - && !(component instanceof SolderPad)) { - ComponentType padType = ComponentProcessor.getInstance().extractComponentTypeFrom( - SolderPad.class); - for (int i = 0; i < component.getControlPointCount(); i++) { - if (component.isControlPointSticky(i)) { - try { - IDIYComponent pad = instantiationManager.instantiateComponent(padType, - component.getControlPoint(i), currentProject); - pad.setControlPoint(component.getControlPoint(i), 0); - addComponent(pad, padType, false); - } catch (Exception e) { - LOG.warn("Could not auto-create solder pad", e); - } - // SolderPad pad = new SolderPad(); - // pad.setControlPoint(component.getControlPoint(i), 0); - // addComponent(pad, - // ComponentProcessor.getInstance().extractComponentTypeFrom( - // SolderPad.class), false); - } - } - } - } - - @Override - public List getMutualSelectionProperties() { - try { - return ComponentProcessor.getInstance() - .getMutualSelectionProperties(selectedComponents); - } catch (Exception e) { - LOG.error("Could not get mutual selection properties", e); - return null; - } - } - - private void applyPropertiesToSelection(List properties) { - LOG.debug(String.format("applyPropertiesToSelection(%s)", properties)); - Project oldProject = cloner.deepClone(currentProject); - try { - for (IDIYComponent component : selectedComponents) { - drawingManager.invalidateComponent(component); - for (PropertyWrapper property : properties) { - if (property.isChanged()) { - property.writeTo(component); - } - } - } - } catch (Exception e) { - LOG.error("Could not apply selection properties", e); - view.showMessage( - "Could not apply changes to the selection. Check the log for details.", - "Error", IView.ERROR_MESSAGE); - } finally { - // Notify the listeners. - if (!oldProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Edit Selection"); - projectFileManager.notifyFileChange(); - } - messageDispatcher.dispatchMessage(EventType.REPAINT); - } - } - - @Override - public List getProjectProperties() { - List properties = ComponentProcessor.getInstance().extractProperties( - Project.class); - try { - for (PropertyWrapper property : properties) { - property.readFrom(currentProject); - } - } catch (Exception e) { - LOG.error("Could not get project properties", e); - return null; - } - Collections.sort(properties, ComparatorFactory.getInstance().getPropertyNameComparator()); - return properties; - } - - @Override - public void applyPropertiesToProject(List properties) { - LOG.debug(String.format("applyPropertiesToProject(%s)", properties)); - Project oldProject = cloner.deepClone(currentProject); - try { - for (PropertyWrapper property : properties) { - property.writeTo(currentProject); - } - } catch (Exception e) { - LOG.error("Could not apply project properties", e); - view.showMessage("Could not apply changes to the project. Check the log for details.", - "Error", IView.ERROR_MESSAGE); - } finally { - // Notify the listeners. - if (!oldProject.equals(currentProject)) { - messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner - .deepClone(currentProject), "Edit Project"); - projectFileManager.notifyFileChange(); - } - drawingManager.fireZoomChanged(); - } - } - - @Override - public void setNewComponentTypeSlot(ComponentType componentType) { - LOG.info(String.format("setNewComponentSlot(%s)", componentType == null ? null - : componentType.getName())); - try { - instantiationManager.setComponentTypeSlot(componentType, currentProject); - if (componentType != null) { - updateSelection(EMPTY_SELECTION); - } - messageDispatcher.dispatchMessage(EventType.REPAINT); - // messageDispatcher.dispatchMessage(EventType.SELECTION_CHANGED, - // selectedComponents); - // messageDispatcher.dispatchMessage(EventType.SELECTION_SIZE_CHANGED, - // calculateSelectionDimension()); - messageDispatcher.dispatchMessage(EventType.SLOT_CHANGED, instantiationManager - .getComponentTypeSlot(), instantiationManager.getFirstControlPoint()); - } catch (Exception e) { - LOG.error("Could not set component type slot", e); - view.showMessage("Could not set component type slot. Check log for details.", "Error", - IView.ERROR_MESSAGE); - } - } - - private Set> getLockedComponents() { - lockedComponents.clear(); - for (IDIYComponent component : currentProject.getComponents()) { - if (isComponentLocked(component)) { - lockedComponents.add(component); - } - } - return lockedComponents; - } - - private boolean isComponentLocked(IDIYComponent component) { - ComponentType componentType = ComponentProcessor.getInstance().extractComponentTypeFrom( - (Class>) component.getClass()); - return currentProject.getLockedLayers().contains( - (int) Math.round(componentType.getZOrder())); - } - - /** - * Scales point from display base to actual base. - * - * @param point - * @return - */ - private Point scalePoint(Point point) { - return point == null ? null : new Point((int) (point.x / drawingManager.getZoomLevel()), - (int) (point.y / drawingManager.getZoomLevel())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java deleted file mode 100644 index bf55eb83..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java +++ /dev/null @@ -1,456 +0,0 @@ -package org.diylc.presenter; - -import java.awt.Color; -import java.awt.Point; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -import org.apache.log4j.Logger; -import org.diylc.common.EventType; -import org.diylc.common.Orientation; -import org.diylc.components.boards.AbstractBoard; -import org.diylc.components.boards.BlankBoard; -import org.diylc.components.boards.PerfBoard; -import org.diylc.components.boards.VeroBoard; -import org.diylc.components.connectivity.CopperTrace; -import org.diylc.components.connectivity.HookupWire; -import org.diylc.components.connectivity.Jumper; -import org.diylc.components.connectivity.SolderPad; -import org.diylc.components.misc.Label; -import org.diylc.components.passive.RadialElectrolytic; -import org.diylc.components.passive.RadialFilmCapacitor; -import org.diylc.components.passive.Resistor; -import org.diylc.components.semiconductors.DIL_IC; -import org.diylc.components.semiconductors.DiodePlastic; -import org.diylc.components.semiconductors.LED; -import org.diylc.components.semiconductors.TransistorTO92; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Project; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import com.diyfever.gui.simplemq.MessageDispatcher; -import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.io.xml.DomDriver; - -public class ProjectFileManager { - - private static final Logger LOG = Logger.getLogger(ProjectFileManager.class); - - // private static final int V1_PIXELS_PER_INCH = 200; - private static final Size V1_GRID_SPACING = new Size(0.1d, SizeUnit.in); - private static final Map V1_COLOR_MAP = new HashMap(); - static { - V1_COLOR_MAP.put("red", Color.red); - V1_COLOR_MAP.put("blue", Color.blue); - V1_COLOR_MAP.put("white", Color.white); - V1_COLOR_MAP.put("green", Color.green.darker()); - V1_COLOR_MAP.put("black", Color.black); - V1_COLOR_MAP.put("yellow", Color.yellow); - } - - private XStream xStream; - // Legacy deserializer for 3.0.1 through 3.0.7, loads Points referenced in - // pixels. - private XStream xStreamOld; - - private String currentFileName = null; - private boolean modified = false; - - private MessageDispatcher messageDispatcher; - - public ProjectFileManager(MessageDispatcher messageDispatcher) { - super(); - this.xStream = new XStream(new DomDriver()); - xStream.autodetectAnnotations(true); - xStream.registerConverter(new PointConverter()); - this.xStreamOld = new XStream(new DomDriver()); - xStreamOld.autodetectAnnotations(true); - this.messageDispatcher = messageDispatcher; - } - - public void startNewFile() { - currentFileName = null; - modified = false; - fireFileStatusChanged(); - } - - public void serializeProjectToFile(Project project, String fileName, boolean isBackup) - throws IOException { - if (!isBackup) { - LOG.info(String.format("saveProjectToFile(%s)", fileName)); - } - FileOutputStream fos; - fos = new FileOutputStream(fileName); - xStream.toXML(project, fos); - fos.close(); - if (!isBackup) { - this.currentFileName = fileName; - this.modified = false; - fireFileStatusChanged(); - } - } - - public Project deserializeProjectFromFile(String fileName, List warnings) - throws SAXException, IOException, ParserConfigurationException { - LOG.info(String.format("loadProjectFromFile(%s)", fileName)); - Project project; - File file = new File(fileName); - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - DocumentBuilder db = dbf.newDocumentBuilder(); - Document doc = db.parse(file); - doc.getDocumentElement().normalize(); - if (doc.getDocumentElement().getNodeName().equalsIgnoreCase(Project.class.getName())) { - project = parseV3File(fileName); - } else { - if (!doc.getDocumentElement().getNodeName().equalsIgnoreCase("layout")) { - throw new IllegalArgumentException( - "Could not open DIY file. Root node is not named 'Layout'."); - } - String formatVersion = doc.getDocumentElement().getAttribute("formatVersion"); - if (formatVersion == null || formatVersion.trim().isEmpty()) { - LOG.debug("Detected v1 file."); - project = parseV1File(doc.getDocumentElement(), warnings); - } else if (formatVersion.equals("2.0")) { - LOG.debug("Detected v2 file."); - project = parseV2File(doc.getDocumentElement()); - } else { - throw new IllegalArgumentException("Unknown file format version: " + formatVersion); - } - } - Collections.sort(warnings); - this.currentFileName = fileName; - this.modified = false; - return project; - } - - public void notifyFileChange() { - this.modified = true; - fireFileStatusChanged(); - } - - public String getCurrentFileName() { - return currentFileName; - } - - public boolean isModified() { - return modified; - } - - public void fireFileStatusChanged() { - messageDispatcher.dispatchMessage(EventType.FILE_STATUS_CHANGED, getCurrentFileName(), - isModified()); - } - - private Project parseV1File(Element root, List warnings) { - Project project = new Project(); - project.setTitle(root.getAttribute("Project")); - project.setAuthor(root.getAttribute("Credits")); - project.setGridSpacing(V1_GRID_SPACING); - String type = root.getAttribute("Type"); - - // Create the board. - int width = Integer.parseInt(root.getAttribute("Width")) + 1; - int height = Integer.parseInt(root.getAttribute("Height")) + 1; - int boardWidth = (int) (width * Constants.PIXELS_PER_INCH * V1_GRID_SPACING.getValue()); - int boardHeight = (int) (height * Constants.PIXELS_PER_INCH * V1_GRID_SPACING.getValue()); - int projectWidth = (int) project.getWidth().convertToPixels(); - int projectHeight = (int) project.getHeight().convertToPixels(); - int x = (projectWidth - boardWidth) / 2; - int y = (projectHeight - boardHeight) / 2; - AbstractBoard board; - if (type.equalsIgnoreCase("pcb")) { - board = new BlankBoard(); - board.setBoardColor(Color.white); - board.setBorderColor(Color.black); - } else if (type.equalsIgnoreCase("perfboard")) { - board = new PerfBoard(); - } else if (type.equalsIgnoreCase("stripboard")) { - board = new VeroBoard(); - } else { - throw new IllegalArgumentException("Unrecognized board type: " + type); - } - board.setName("Main board"); - Point referencePoint = new Point(CalcUtils.roundToGrid(x, V1_GRID_SPACING), CalcUtils - .roundToGrid(y, V1_GRID_SPACING)); - board.setControlPoint(referencePoint, 0); - board.setControlPoint(new Point(CalcUtils.roundToGrid(x + boardWidth, V1_GRID_SPACING), - CalcUtils.roundToGrid(y + boardHeight, V1_GRID_SPACING)), 1); - project.getComponents().add(board); - - NodeList childNodes = root.getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - Node node = childNodes.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE) { - String nodeName = node.getNodeName(); - String nameAttr = node.getAttributes().getNamedItem("Name").getNodeValue(); - Node valueNode = node.getAttributes().getNamedItem("Value"); - String valueAttr = valueNode == null ? null : valueNode.getNodeValue(); - int x1Attr = Integer.parseInt(node.getAttributes().getNamedItem("X1") - .getNodeValue()); - int y1Attr = Integer.parseInt(node.getAttributes().getNamedItem("Y1") - .getNodeValue()); - Point point1 = convertV1CoordinatesToV3Point(referencePoint, x1Attr, y1Attr); - Point point2 = null; - Integer x2Attr = null; - Integer y2Attr = null; - Color color = null; - if (node.getAttributes().getNamedItem("Color") != null) { - String colorAttr = node.getAttributes().getNamedItem("Color").getNodeValue(); - color = V1_COLOR_MAP.get(colorAttr.toLowerCase()); - } - if (node.getAttributes().getNamedItem("X2") != null - && node.getAttributes().getNamedItem("Y2") != null) { - x2Attr = Integer.parseInt(node.getAttributes().getNamedItem("X2") - .getNodeValue()); - y2Attr = Integer.parseInt(node.getAttributes().getNamedItem("Y2") - .getNodeValue()); - point2 = convertV1CoordinatesToV3Point(referencePoint, x2Attr, y2Attr); - } - IDIYComponent component = null; - if (nodeName.equalsIgnoreCase("text")) { - LOG.debug("Recognized " + nodeName); - Label label = new Label(); - label.setName(nameAttr); - if (color != null) { - label.setColor(color); - } - label.setText(valueAttr); - label.setCenter(false); - label.setControlPoint(convertV1CoordinatesToV3Point(referencePoint, x1Attr, - y1Attr), 0); - component = label; - } else if (nodeName.equalsIgnoreCase("pad")) { - LOG.debug("Recognized " + nodeName); - SolderPad pad = new SolderPad(); - pad.setName(nameAttr); - if (color != null) { - pad.setColor(color); - } - pad.setControlPoint(convertV1CoordinatesToV3Point(referencePoint, x1Attr, - y1Attr), 0); - component = pad; - } else if (nodeName.equalsIgnoreCase("trace")) { - LOG.debug("Recognized " + nodeName); - CopperTrace trace = new CopperTrace(); - trace.setName(nameAttr); - if (color != null) { - trace.setLeadColor(color); - } - trace.setControlPoint(point1, 0); - trace.setControlPoint(point2, 1); - component = trace; - } else if (nodeName.equalsIgnoreCase("jumper")) { - LOG.debug("Recognized " + nodeName); - Jumper jumper = new Jumper(); - jumper.setName(nameAttr); - jumper.setControlPoint(point1, 0); - jumper.setControlPoint(point2, 1); - component = jumper; - } else if (nodeName.equalsIgnoreCase("wire")) { - LOG.debug("Recognized " + nodeName); - HookupWire wire = new HookupWire(); - Point midPoint = new Point((point1.x + point2.x) / 2, (point1.y + point2.y) / 2); - wire.setName(nameAttr); - wire.setControlPoint(point1, 0); - wire.setControlPoint(midPoint, 1); - wire.setControlPoint(midPoint, 2); - wire.setControlPoint(point2, 3); - component = wire; - } else if (nodeName.equalsIgnoreCase("resistor")) { - LOG.debug("Recognized " + nodeName); - Resistor resistor = new Resistor(); - resistor.setName(nameAttr); - try { - resistor.setValue(Resistance.parseResistance(valueAttr)); - } catch (Exception e) { - LOG.debug("Could not set value of " + nameAttr); - } - resistor.setLength(new Size(6d, SizeUnit.mm)); - resistor.setWidth(new Size(2d, SizeUnit.mm)); - resistor.setControlPoint(point1, 0); - resistor.setControlPoint(point2, 1); - component = resistor; - } else if (nodeName.equalsIgnoreCase("capacitor")) { - LOG.debug("Recognized " + nodeName); - RadialFilmCapacitor capacitor = new RadialFilmCapacitor(); - capacitor.setName(nameAttr); - try { - capacitor.setValue(Capacitance.parseCapacitance(valueAttr)); - } catch (Exception e) { - LOG.debug("Could not set value of " + nameAttr); - } - capacitor.setLength(new Size(6d, SizeUnit.mm)); - capacitor.setWidth(new Size(2d, SizeUnit.mm)); - capacitor.setControlPoint(point1, 0); - capacitor.setControlPoint(point2, 1); - component = capacitor; - } else if (nodeName.equalsIgnoreCase("electrolyte")) { - LOG.debug("Recognized " + nodeName); - RadialElectrolytic capacitor = new RadialElectrolytic(); - capacitor.setName(nameAttr); - try { - capacitor.setValue(Capacitance.parseCapacitance(valueAttr)); - } catch (Exception e) { - LOG.debug("Could not set value of " + nameAttr); - } - String sizeAttr = node.getAttributes().getNamedItem("Size").getNodeValue(); - if (sizeAttr.equalsIgnoreCase("small")) { - capacitor.setLength(new Size(3.5d, SizeUnit.mm)); - } else if (sizeAttr.equalsIgnoreCase("medium")) { - capacitor.setLength(new Size(5d, SizeUnit.mm)); - } else if (sizeAttr.equalsIgnoreCase("large")) { - capacitor.setLength(new Size(7d, SizeUnit.mm)); - } else { - capacitor.setLength(new Size(4d, SizeUnit.mm)); - } - capacitor.setControlPoint(point1, 0); - capacitor.setControlPoint(point2, 1); - component = capacitor; - } else if (nodeName.equalsIgnoreCase("diode")) { - LOG.debug("Recognized " + nodeName); - DiodePlastic capacitor = new DiodePlastic(); - capacitor.setName(nameAttr); - try { - capacitor.setValue(valueAttr); - } catch (Exception e) { - LOG.debug("Could not set value of " + nameAttr); - } - capacitor.setLength(new Size(6d, SizeUnit.mm)); - capacitor.setWidth(new Size(2d, SizeUnit.mm)); - capacitor.setControlPoint(point1, 0); - capacitor.setControlPoint(point2, 1); - component = capacitor; - } else if (nodeName.equalsIgnoreCase("led")) { - LOG.debug("Recognized " + nodeName); - LED led = new LED(); - led.setName(nameAttr); - led.setValue(valueAttr); - led.setBodyColor(Color.red); - led.setBorderColor(Color.red.darker()); - led.setLength(new Size(3d, SizeUnit.mm)); - led.setControlPoint(point1, 0); - led.setControlPoint(point2, 1); - component = led; - } else if (nodeName.equalsIgnoreCase("transistor")) { - LOG.debug("Recognized " + nodeName); - TransistorTO92 transistor = new TransistorTO92(); - transistor.setName(nameAttr); - try { - transistor.setValue(valueAttr); - } catch (Exception e) { - LOG.debug("Could not set value of " + nameAttr); - } - transistor.setControlPoint(point1, 0); - if (point1.y > point2.y) { - transistor.setOrientation(Orientation._180); - } else if (point1.y < point2.y) { - transistor.setOrientation(Orientation.DEFAULT); - } else if (point1.x < point2.x) { - transistor.setOrientation(Orientation._270); - } else if (point1.x > point2.x) { - transistor.setOrientation(Orientation._90); - } - // capacitor.setControlPoint(point2, 1); - component = transistor; - } else if (nodeName.equalsIgnoreCase("ic")) { - LOG.debug("Recognized " + nodeName); - DIL_IC ic = new DIL_IC(); - if (x1Attr + 3 == x2Attr) { - if (y1Attr < y2Attr) { - ic - .setPinCount(DIL_IC.PinCount.valueOf("_" + 2 - * (y2Attr - y1Attr + 1))); - } else { - ic.setOrientation(Orientation._180); - ic - .setPinCount(DIL_IC.PinCount.valueOf("_" + 2 - * (y1Attr - y2Attr + 1))); - } - } - ic.setName(nameAttr); - // Translate control points. - for (int j = 0; j < ic.getControlPointCount(); j++) { - Point p = new Point(ic.getControlPoint(j)); - p.translate(point1.x, point1.y); - ic.setControlPoint(p, j); - } - ic.setValue(valueAttr); - component = ic; - } else { - String message = "Could not recognize component type " + nodeName; - LOG.debug(message); - if (!warnings.contains(message)) { - warnings.add(message); - } - } - if (component != null) { - project.getComponents().add(component); - } - } - } - Collections.sort(project.getComponents(), ComparatorFactory.getInstance() - .getComponentZOrderComparator()); - return project; - } - - private Point convertV1CoordinatesToV3Point(Point reference, int x, int y) { - Point point = new Point(reference); - point.translate((int) (x * Constants.PIXELS_PER_INCH * V1_GRID_SPACING.getValue()), - (int) (y * Constants.PIXELS_PER_INCH * V1_GRID_SPACING.getValue())); - return point; - } - - private Project parseV2File(Element root) { - Project project = new Project(); - String projectName = root.getAttribute("projectName"); - String credits = root.getAttribute("credits"); - String width = root.getAttribute("width"); - String height = root.getAttribute("height"); - NodeList childNodes = root.getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - Node node = childNodes.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE) { - if (node.getNodeName().equalsIgnoreCase("component")) { - LOG.debug(node.getAttributes().getNamedItem("name").getNodeValue()); - } else { - LOG.debug("Unrecognized node name found: " + node.getNodeName()); - } - } - } - return project; - } - - private Project parseV3File(String fileName) throws IOException { - Project project; - FileInputStream fis = new FileInputStream(fileName); - try { - project = (Project) xStream.fromXML(fis); - } catch (Exception e) { - LOG.warn("Could not open with the new xStream, trying the old one"); - fis.close(); - fis = new FileInputStream(fileName); - project = (Project) xStreamOld.fromXML(fis); - } - fis.close(); - return project; - } -} \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/ActionFactory.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/ActionFactory.java deleted file mode 100644 index 4fd80d3a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/ActionFactory.java +++ /dev/null @@ -1,870 +0,0 @@ -package org.diylc.swing; - -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; -import java.awt.print.PrinterException; -import java.io.File; -import java.util.List; - -import javax.swing.AbstractAction; -import javax.swing.KeyStroke; - -import org.apache.log4j.Logger; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ITask; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IView; -import org.diylc.core.Theme; -import org.diylc.images.IconLoader; -import org.diylc.swing.gui.DialogFactory; -import org.diylc.swing.gui.editor.PropertyEditorDialog; -import org.diylc.swing.plugins.edit.ComponentTransferable; -import org.diylc.swing.plugins.file.BomDialog; -import org.diylc.swing.plugins.file.BomEntry; -import org.diylc.swing.plugins.file.BomMaker; -import org.diylc.swing.plugins.file.FileFilterEnum; - -import com.diyfever.gui.ButtonDialog; -import com.diyfever.gui.IDrawingProvider; -import com.diyfever.gui.export.DrawingExporter; -import com.diyfever.gui.miscutils.ConfigurationManager; -import com.rits.cloning.Cloner; - -public class ActionFactory { - - private static final Logger LOG = Logger.getLogger(ActionFactory.class); - - private static ActionFactory instance; - private static Cloner cloner = new Cloner(); - - public static ActionFactory getInstance() { - if (instance == null) { - instance = new ActionFactory(); - } - return instance; - } - - private ActionFactory() { - } - - // File menu actions. - - public NewAction createNewAction(IPlugInPort plugInPort) { - return new NewAction(plugInPort); - } - - public OpenAction createOpenAction(IPlugInPort plugInPort, ISwingUI swingUI) { - return new OpenAction(plugInPort, swingUI); - } - - public SaveAction createSaveAction(IPlugInPort plugInPort, ISwingUI swingUI) { - return new SaveAction(plugInPort, swingUI); - } - - public SaveAsAction createSaveAsAction(IPlugInPort plugInPort, ISwingUI swingUI) { - return new SaveAsAction(plugInPort, swingUI); - } - - public CreateBomAction createBomAction(IPlugInPort plugInPort) { - return new CreateBomAction(plugInPort); - } - - public ExportPDFAction createExportPDFAction(IDrawingProvider drawingProvider, ISwingUI swingUI) { - return new ExportPDFAction(drawingProvider, swingUI); - } - - public ExportPNGAction createExportPNGAction(IDrawingProvider drawingProvider, ISwingUI swingUI) { - return new ExportPNGAction(drawingProvider, swingUI); - } - - public PrintAction createPrintAction(IDrawingProvider drawingProvider) { - return new PrintAction(drawingProvider); - } - - public ExitAction createExitAction(IPlugInPort plugInPort) { - return new ExitAction(plugInPort); - } - - // Edit menu actions. - - public CutAction createCutAction(IPlugInPort plugInPort, Clipboard clipboard, - ClipboardOwner clipboardOwner) { - return new CutAction(plugInPort, clipboard, clipboardOwner); - } - - public CopyAction createCopyAction(IPlugInPort plugInPort, Clipboard clipboard, - ClipboardOwner clipboardOwner) { - return new CopyAction(plugInPort, clipboard, clipboardOwner); - } - - public PasteAction createPasteAction(IPlugInPort plugInPort, Clipboard clipboard) { - return new PasteAction(plugInPort, clipboard); - } - - public SelectAllAction createSelectAllAction(IPlugInPort plugInPort) { - return new SelectAllAction(plugInPort); - } - - public GroupAction createGroupAction(IPlugInPort plugInPort) { - return new GroupAction(plugInPort); - } - - public UngroupAction createUngroupAction(IPlugInPort plugInPort) { - return new UngroupAction(plugInPort); - } - - public EditProjectAction createEditProjectAction(IPlugInPort plugInPort) { - return new EditProjectAction(plugInPort); - } - - public EditSelectionAction createEditSelectionAction(IPlugInPort plugInPort) { - return new EditSelectionAction(plugInPort); - } - - public DeleteSelectionAction createDeleteSelectionAction(IPlugInPort plugInPort) { - return new DeleteSelectionAction(plugInPort); - } - - public SendToBackAction createSendToBackAction(IPlugInPort plugInPort) { - return new SendToBackAction(plugInPort); - } - - public BringToFrontAction createBringToFrontAction(IPlugInPort plugInPort) { - return new BringToFrontAction(plugInPort); - } - - // Config actions. - - public ConfigAction createConfigAction(IPlugInPort plugInPort, String title, String configKey, - boolean defaultValue) { - return new ConfigAction(plugInPort, title, configKey, defaultValue); - } - - public ThemeAction createThemeAction(IPlugInPort plugInPort, Theme theme) { - return new ThemeAction(plugInPort, theme); - } - - public RenumberAction createRenumberAction(IPlugInPort plugInPort, boolean xAxisFirst) { - return new RenumberAction(plugInPort, xAxisFirst); - } - - // File menu actions. - - public static class NewAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public NewAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "New"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_N, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.DocumentPlainYellow.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("NewAction triggered"); - if (!plugInPort.allowFileAction()) { - return; - } - plugInPort.createNewProject(); - List properties = plugInPort.getProjectProperties(); - PropertyEditorDialog editor = DialogFactory.getInstance().createPropertyEditorDialog( - properties, "Edit Project"); - editor.setVisible(true); - if (ButtonDialog.OK.equals(editor.getSelectedButtonCaption())) { - plugInPort.applyPropertiesToProject(properties); - } - // Save default values. - for (PropertyWrapper property : editor.getDefaultedProperties()) { - if (property.getValue() != null) { - plugInPort.setProjectDefaultPropertyValue(property.getName(), property - .getValue()); - } - } - } - } - - public static class OpenAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - public OpenAction(IPlugInPort plugInPort, ISwingUI swingUI) { - super(); - this.plugInPort = plugInPort; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Open"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_O, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.FolderOut.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("OpenAction triggered"); - if (!plugInPort.allowFileAction()) { - return; - } - final File file = DialogFactory.getInstance().showOpenDialog( - FileFilterEnum.DIY.getFilter(), null, FileFilterEnum.DIY.getExtensions()[0], - null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Opening from " + file.getAbsolutePath()); - plugInPort.loadProjectFromFile(file.getAbsolutePath()); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not open file. " + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class SaveAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - public SaveAction(IPlugInPort plugInPort, ISwingUI swingUI) { - super(); - this.plugInPort = plugInPort; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Save"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_S, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.DiskBlue.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("SaveAction triggered"); - if (plugInPort.getCurrentFileName() == null) { - final File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.DIY.getFilter(), null, - FileFilterEnum.DIY.getExtensions()[0], null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Saving to " + file.getAbsolutePath()); - plugInPort.saveProjectToFile(file.getAbsolutePath(), false); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not save to file. " + e.getMessage(), - "Error", ISwingUI.ERROR_MESSAGE); - } - }); - } - } else { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Saving to " + plugInPort.getCurrentFileName()); - plugInPort.saveProjectToFile(plugInPort.getCurrentFileName(), false); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not save to file. " + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class SaveAsAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - public SaveAsAction(IPlugInPort plugInPort, ISwingUI swingUI) { - super(); - this.plugInPort = plugInPort; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Save As"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_S, - ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.DiskBlue.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("SaveAsAction triggered"); - final File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.DIY.getFilter(), null, FileFilterEnum.DIY.getExtensions()[0], - null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Saving to " + file.getAbsolutePath()); - plugInPort.saveProjectToFile(file.getAbsolutePath(), false); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not save to file. " + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class CreateBomAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public CreateBomAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Create B.O.M."); - putValue(AbstractAction.SMALL_ICON, IconLoader.BOM.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("CreateBomAction triggered"); - List bom = BomMaker.getInstance().createBom( - plugInPort.getCurrentProject().getComponents()); - BomDialog dialog = DialogFactory.getInstance().createBomDialog(bom); - dialog.setVisible(true); - } - } - - public static class ExportPDFAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IDrawingProvider drawingProvider; - private ISwingUI swingUI; - - public ExportPDFAction(IDrawingProvider drawingProvider, ISwingUI swingUI) { - super(); - this.drawingProvider = drawingProvider; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Export to PDF"); - putValue(AbstractAction.SMALL_ICON, IconLoader.PDF.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("ExportPDFAction triggered"); - final File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.PDF.getFilter(), null, FileFilterEnum.PDF.getExtensions()[0], - null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Exporting to " + file.getAbsolutePath()); - DrawingExporter.getInstance().exportPDF( - ExportPDFAction.this.drawingProvider, file); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not export to PDF. " + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class ExportPNGAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IDrawingProvider drawingProvider; - private ISwingUI swingUI; - - public ExportPNGAction(IDrawingProvider drawingProvider, ISwingUI swingUI) { - super(); - this.drawingProvider = drawingProvider; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Export to PNG"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Image.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("ExportPNGAction triggered"); - final File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.PNG.getFilter(), null, FileFilterEnum.PNG.getExtensions()[0], - null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Exporting to " + file.getAbsolutePath()); - DrawingExporter.getInstance().exportPNG( - ExportPNGAction.this.drawingProvider, file); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not export to PNG. " + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class PrintAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IDrawingProvider drawingProvider; - - public PrintAction(IDrawingProvider drawingProvider) { - super(); - this.drawingProvider = drawingProvider; - putValue(AbstractAction.NAME, "Print..."); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_P, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Print.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("ExportPNGAction triggered"); - try { - DrawingExporter.getInstance().print(this.drawingProvider); - } catch (PrinterException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - - public static class ExitAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public ExitAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Exit"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Exit.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - if (plugInPort.allowFileAction()) { - System.exit(0); - } - } - } - - // Edit menu actions. - - public static class CutAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private Clipboard clipboard; - private ClipboardOwner clipboardOwner; - - public CutAction(IPlugInPort plugInPort, Clipboard clipboard, ClipboardOwner clipboardOwner) { - super(); - this.plugInPort = plugInPort; - this.clipboard = clipboard; - this.clipboardOwner = clipboardOwner; - putValue(AbstractAction.NAME, "Cut"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_X, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Cut.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Cut triggered"); - clipboard.setContents(new ComponentTransferable(cloner.deepClone(plugInPort - .getSelectedComponents())), clipboardOwner); - plugInPort.deleteSelectedComponents(); - } - } - - public static class CopyAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private Clipboard clipboard; - private ClipboardOwner clipboardOwner; - - public CopyAction(IPlugInPort plugInPort, Clipboard clipboard, ClipboardOwner clipboardOwner) { - super(); - this.plugInPort = plugInPort; - this.clipboard = clipboard; - this.clipboardOwner = clipboardOwner; - putValue(AbstractAction.NAME, "Copy"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_C, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Copy.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Copy triggered"); - clipboard.setContents(new ComponentTransferable(cloner.deepClone(plugInPort - .getSelectedComponents())), clipboardOwner); - } - } - - public static class PasteAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private Clipboard clipboard; - - public PasteAction(IPlugInPort plugInPort, Clipboard clipboard) { - super(); - this.plugInPort = plugInPort; - this.clipboard = clipboard; - putValue(AbstractAction.NAME, "Paste"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_V, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Paste.getIcon()); - } - - @SuppressWarnings("unchecked") - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Paste triggered"); - try { - List> components = (List>) clipboard - .getData(ComponentTransferable.listFlavor); - plugInPort.pasteComponents(cloner.deepClone(components)); - } catch (Exception ex) { - LOG.error("Coule not paste.", ex); - } - } - } - - public static class SelectAllAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public SelectAllAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Select All"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_A, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Selection.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Select All triggered"); - plugInPort.selectAll(); - } - } - - public static class GroupAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public GroupAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Group Selection"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_G, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Group.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Group Selection triggered"); - plugInPort.groupSelectedComponents(); - } - } - - public static class UngroupAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public UngroupAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Ungroup Selection"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Ungroup.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Ungroup Selection triggered"); - plugInPort.ungroupSelectedComponents(); - } - } - - public static class EditProjectAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public EditProjectAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Edit Project"); - putValue(AbstractAction.SMALL_ICON, IconLoader.DocumentEdit.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Edit Project triggered"); - List properties = plugInPort.getProjectProperties(); - PropertyEditorDialog editor = DialogFactory.getInstance().createPropertyEditorDialog( - properties, "Edit Project"); - editor.setVisible(true); - if (ButtonDialog.OK.equals(editor.getSelectedButtonCaption())) { - plugInPort.applyPropertiesToProject(properties); - } - // Save default values. - for (PropertyWrapper property : editor.getDefaultedProperties()) { - if (property.getValue() != null) { - plugInPort.setProjectDefaultPropertyValue(property.getName(), property - .getValue()); - } - } - } - } - - public static class EditSelectionAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public EditSelectionAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Edit Selection"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_E, - ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.EditComponent.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Edit Selection triggered"); - List properties = plugInPort.getMutualSelectionProperties(); - if (properties == null || properties.isEmpty()) { - LOG.info("Nothing to edit"); - return; - } - plugInPort.editSelection(); - } - } - - public static class DeleteSelectionAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public DeleteSelectionAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Delete Selection"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Delete.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Delete Selection triggered"); - plugInPort.deleteSelectedComponents(); - } - } - - public static class SendToBackAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public SendToBackAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Send Backward"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Back.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Send to Back triggered"); - plugInPort.sendSelectionToBack(); - } - } - - public static class BringToFrontAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public BringToFrontAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Bring Forward"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Front.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Bring to Front triggered"); - plugInPort.bringSelectionToFront(); - } - } - - public static class ConfigAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private String configKey; - - public ConfigAction(IPlugInPort plugInPort, String title, String configKey, - boolean defaultValue) { - super(); - this.plugInPort = plugInPort; - this.configKey = configKey; - putValue(AbstractAction.NAME, title); - putValue(IView.CHECK_BOX_MENU_ITEM, true); - putValue(AbstractAction.SELECTED_KEY, ConfigurationManager.getInstance().readBoolean( - configKey, defaultValue)); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info(getValue(AbstractAction.NAME) + " triggered"); - ConfigurationManager.getInstance().writeValue(configKey, - getValue(AbstractAction.SELECTED_KEY)); - plugInPort.refresh(); - } - } - - public static class ThemeAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private Theme theme; - - public ThemeAction(IPlugInPort plugInPort, Theme theme) { - super(); - this.plugInPort = plugInPort; - this.theme = theme; - putValue(AbstractAction.NAME, theme.getName()); - putValue(IView.RADIO_BUTTON_GROUP_KEY, "theme"); - putValue(AbstractAction.SELECTED_KEY, plugInPort.getSelectedTheme().getName().equals( - theme.getName())); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info(getValue(AbstractAction.NAME) + " triggered"); - plugInPort.setSelectedTheme(theme); - } - } - - public static class RenumberAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private boolean xAxisFirst; - - public RenumberAction(IPlugInPort plugInPort, boolean xAxisFirst) { - super(); - this.plugInPort = plugInPort; - this.xAxisFirst = xAxisFirst; - putValue(AbstractAction.NAME, xAxisFirst ? "X Axis First" : "Y Axis First"); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info(getValue(AbstractAction.NAME) + " triggered"); - plugInPort.renumberSelectedComponents(xAxisFirst); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/ISwingUI.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/ISwingUI.java deleted file mode 100644 index b316113f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/ISwingUI.java +++ /dev/null @@ -1,64 +0,0 @@ -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; -import org.diylc.common.ITask; -import org.diylc.core.IView; - -/** - * Interface for plugin access to the swing front end. - * - * @author Branislav Stojkovic - */ -public interface ISwingUI extends IView { - - /** - * Injects a custom GUI panels provided by the plug-in and desired position - * in the window. Application will layout plug-in panels accordingly.
- * Valid positions are: - *
    - *
  • {@link SwingConstants#TOP}
  • - *
  • {@link SwingConstants#BOTTOM}
  • - *
  • {@link SwingConstants#LEFT}
  • - *
  • {@link SwingConstants#RIGHT}
  • - *
- * - * 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 - * action 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 - * action 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); - - void executeBackgroundTask(ITask task); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/CustomGlassPane.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/CustomGlassPane.java deleted file mode 100644 index 9852bdcd..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/CustomGlassPane.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.diylc.swing.gui; - -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.event.MouseEvent; -import java.awt.event.MouseMotionAdapter; - -import javax.swing.Icon; -import javax.swing.JComponent; - -public class CustomGlassPane extends JComponent { - - private static final long serialVersionUID = 1L; - private Icon icon; - - public CustomGlassPane() { - super(); - addMouseMotionListener(new MouseMotionAdapter() { - - @Override - public void mouseMoved(MouseEvent e) { - if (icon != null) { - repaint(); - } - } - }); - } - - public void setCursorIcon(Icon icon) { - this.icon = icon; - } - - @Override - public void paint(Graphics g) { - Point cursor = getMousePosition(); - if ((icon != null) && (cursor != null)) { - Graphics2D g2d = (Graphics2D) g; - icon.paintIcon(this, g2d, cursor.x + 10, cursor.y + 10); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/DialogFactory.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/DialogFactory.java deleted file mode 100644 index d5a3b031..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/DialogFactory.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.diylc.swing.gui; - -import java.io.File; -import java.util.List; - -import javax.swing.Icon; -import javax.swing.JFileChooser; -import javax.swing.JFrame; -import javax.swing.filechooser.FileFilter; - -import org.diylc.common.PropertyWrapper; -import org.diylc.swing.gui.components.OverwritePromptFileChooser; -import org.diylc.swing.gui.editor.PropertyEditorDialog; -import org.diylc.swing.plugins.file.BomDialog; -import org.diylc.swing.plugins.file.BomEntry; -import org.diylc.swing.plugins.online.view.LoginDialog; -import org.diylc.swing.plugins.online.view.NewUserDialog; -import org.diylc.swing.plugins.online.view.UploadDialog; - -import com.diyfever.gui.AboutDialog; -import com.diyfever.gui.IFileChooserAccessory; -import com.diyfever.gui.ProgressDialog; -import com.diyfever.gui.miscutils.ConfigurationManager; - -public class DialogFactory { - - private static DialogFactory instance; - - private static final String PATH_KEY = "lastPath"; - - public static DialogFactory getInstance() { - if (instance == null) { - instance = new DialogFactory(); - } - return instance; - } - - private JFrame mainFrame; - private File lastDirectory; - - private DialogFactory() { - } - - /** - * Sets the frame to be used as dialog parent. This should be called prior - * to any other methods in this class. - * - * @param mainFrame - */ - public void initialize(JFrame mainFrame) { - this.mainFrame = mainFrame; - String lastDirectoryPath = (String) ConfigurationManager.getInstance() - .readString(PATH_KEY, null); - if (lastDirectoryPath != null) { - lastDirectory = new File(lastDirectoryPath); - } - } - - public PropertyEditorDialog createPropertyEditorDialog(List properties, - String title) { - PropertyEditorDialog editor = new PropertyEditorDialog(mainFrame, properties, title); - return editor; - } - - public BomDialog createBomDialog(List bom) { - BomDialog dialog = new BomDialog(mainFrame, bom); - return dialog; - } - - public File showOpenDialog(FileFilter fileFilter, File initialFile, String defaultExtension, - IFileChooserAccessory accessory) { - JFileChooser openFileChooser = new JFileChooser(); - initializeFileChooser(openFileChooser, fileFilter, initialFile, defaultExtension, accessory); - - int result = openFileChooser.showOpenDialog(mainFrame); - - return processFileChooserResult(result, openFileChooser, defaultExtension); - } - - public File showSaveDialog(FileFilter fileFilter, File initialFile, String defaultExtension, - IFileChooserAccessory accessory) { - JFileChooser saveFileChooser = new OverwritePromptFileChooser(); - initializeFileChooser(saveFileChooser, fileFilter, initialFile, defaultExtension, accessory); - - int result = saveFileChooser.showSaveDialog(mainFrame); - - return processFileChooserResult(result, saveFileChooser, defaultExtension); - } - - private void initializeFileChooser(JFileChooser fileChooser, FileFilter fileFilter, - File initialFile, String defaultExtension, IFileChooserAccessory accessory) { - if (accessory != null) { - accessory.install(fileChooser); - } - for (FileFilter filter : fileChooser.getChoosableFileFilters()) { - fileChooser.removeChoosableFileFilter(filter); - } - if (fileChooser instanceof OverwritePromptFileChooser) { - ((OverwritePromptFileChooser) fileChooser).setFileFilter(fileFilter, defaultExtension); - } else { - fileChooser.setFileFilter(fileFilter); - } - if (lastDirectory != null) { - fileChooser.setCurrentDirectory(lastDirectory); - } - fileChooser.setSelectedFile(initialFile); - } - - private File processFileChooserResult(int result, JFileChooser fileChooser, - String defaultExtension) { - fileChooser.setAccessory(null); - if (result == JFileChooser.APPROVE_OPTION) { - lastDirectory = fileChooser.getCurrentDirectory(); - ConfigurationManager.getInstance().writeValue(PATH_KEY, - lastDirectory.getAbsolutePath()); - if (fileChooser.getSelectedFile().getAbsolutePath().contains(".")) { - return fileChooser.getSelectedFile(); - } else { - return new File(fileChooser.getSelectedFile().getAbsoluteFile() + "." - + defaultExtension); - } - } else { - return null; - } - } - - public AboutDialog createAboutDialog(String appName, Icon icon, String version, String author, - String url, String mail, String htmlContent) { - AboutDialog dialog = new AboutDialog(mainFrame, appName, icon, version, author, url, mail, - htmlContent); - return dialog; - } - - public NewUserDialog createNewUserDialog() { - NewUserDialog dialog = new NewUserDialog(mainFrame); - return dialog; - } - - public LoginDialog createLoginDialog() { - LoginDialog dialog = new LoginDialog(mainFrame); - return dialog; - } - - public UploadDialog createUploadDialog() { - UploadDialog dialog = new UploadDialog(mainFrame); - return dialog; - } - - public ProgressDialog createProgressDialog(String title, String[] buttonCaptions, - String description, boolean useProgress) { - ProgressDialog dialog = new ProgressDialog(mainFrame, title, buttonCaptions, description, - useProgress); - return dialog; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/MainFrame.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/MainFrame.java deleted file mode 100644 index 5bf68978..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/MainFrame.java +++ /dev/null @@ -1,370 +0,0 @@ -package org.diylc.swing.gui; - -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.io.File; -import java.io.FileOutputStream; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.util.Arrays; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.swing.Action; -import javax.swing.BoxLayout; -import javax.swing.ButtonGroup; -import javax.swing.Icon; -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JRadioButtonMenuItem; -import javax.swing.SwingConstants; -import javax.swing.SwingWorker; -import javax.swing.Timer; - -import org.apache.log4j.Logger; -import org.diylc.common.BadPositionException; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ITask; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IView; -import org.diylc.images.IconLoader; -import org.diylc.presenter.Presenter; -import org.diylc.swing.ISwingUI; -import org.diylc.swing.gui.editor.PropertyEditorDialog; -import org.diylc.swing.plugins.autosave.AutoSavePlugin; -import org.diylc.swing.plugins.canvas.CanvasPlugin; -import org.diylc.swing.plugins.config.ConfigPlugin; -import org.diylc.swing.plugins.edit.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; - -import com.diyfever.gui.ButtonDialog; -import com.diyfever.gui.miscutils.ConfigurationManager; - -public class MainFrame extends JFrame implements ISwingUI { - - private static final Logger LOG = Logger.getLogger(MainFrame.class); - - private static final long serialVersionUID = 1L; - - private JPanel centerPanel; - private JPanel leftPanel; - private JPanel rightPanel; - private JPanel topPanel; - private JPanel bottomPanel; - - private Presenter presenter; - - private JMenuBar mainMenuBar; - private Map menuMap; - private Map buttonGroupMap; - - private CanvasPlugin canvasPlugin; - - public MainFrame() { - super("DIYLC 3"); - setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - setPreferredSize(new Dimension(800, 600)); - createBasePanels(); - menuMap = new HashMap(); - buttonGroupMap = new HashMap(); - setIconImages(Arrays.asList(IconLoader.IconSmall.getImage(), IconLoader.IconMedium - .getImage(), IconLoader.IconLarge.getImage())); - DialogFactory.getInstance().initialize(this); - - this.presenter = new Presenter(this); - - presenter.installPlugin(new ToolBox(this)); - presenter.installPlugin(new FileMenuPlugin(this)); - presenter.installPlugin(new EditMenuPlugin(this)); - presenter.installPlugin(new ConfigPlugin(this)); - presenter.installPlugin(new LayersMenuPlugin(this)); - // presenter.installPlugin(new OnlineManager()); - presenter.installPlugin(new HelpMenuPlugin(this)); - - presenter.installPlugin(new StatusBar(this)); - canvasPlugin = new CanvasPlugin(this); - presenter.installPlugin(canvasPlugin); - presenter.installPlugin(new FramePlugin()); - - try { - File testFile = new File("test.tmp"); - Writer out = new OutputStreamWriter(new FileOutputStream(testFile)); - out.write("This is a test"); - out.close(); - testFile.delete(); - presenter.installPlugin(new AutoSavePlugin(this)); - } catch (Exception e) { - showMessage( - "The current user does not have permissions to access folder " - + new File(".").getAbsolutePath() - + ".\nAuto-save feature will not be available, contact your system administrator.", - "Warning", IView.WARNING_MESSAGE); - } - - presenter.createNewProject(); - - addWindowListener(new WindowAdapter() { - - @Override - public void windowClosed(WindowEvent e) { - if (presenter.allowFileAction()) { - ConfigurationManager.getInstance().writeValue(IPlugInPort.ABNORMAL_EXIT_KEY, - false); - dispose(); - presenter.dispose(); - System.exit(0); - } - } - - @Override - public void windowClosing(WindowEvent e) { - if (presenter.allowFileAction()) { - ConfigurationManager.getInstance().writeValue(IPlugInPort.ABNORMAL_EXIT_KEY, - false); - dispose(); - presenter.dispose(); - System.exit(0); - } - } - }); - - // setGlassPane(new CustomGlassPane()); - // getGlassPane().setVisible(true); - } - - public Presenter getPresenter() { - return presenter; - } - - @Override - public void setVisible(boolean b) { - super.setVisible(b); - // TODO: hack to prevent painting issues in the scroll bar rulers. Find - // a better fix if possible. - Timer timer = new Timer(500, new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - canvasPlugin.refresh(); - } - - }); - timer.setRepeats(false); - timer.start(); - // if (b) { - // SwingUtilities.invokeLater(new Runnable() { - // @Override - // public void run() { - // - // } - // }); - // } - } - - private void createBasePanels() { - Container c = new Container(); - c.setLayout(new BorderLayout()); - - centerPanel = new JPanel(new BorderLayout()); - c.add(centerPanel, BorderLayout.CENTER); - - topPanel = new JPanel(); - topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.Y_AXIS)); - c.add(topPanel, BorderLayout.NORTH); - - leftPanel = new JPanel(); - leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.X_AXIS)); - c.add(leftPanel, BorderLayout.WEST); - - bottomPanel = new JPanel(); - bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.Y_AXIS)); - c.add(bottomPanel, BorderLayout.SOUTH); - - rightPanel = new JPanel(); - rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.X_AXIS)); - c.add(rightPanel, BorderLayout.EAST); - - setContentPane(c); - } - - private JMenuBar getMainMenuBar() { - if (mainMenuBar == null) { - mainMenuBar = new JMenuBar(); - setJMenuBar(mainMenuBar); - } - return mainMenuBar; - } - - // IView - - @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); - } - - @Override - public boolean editProperties(List properties, - Set defaultedProperties) { - PropertyEditorDialog editor = DialogFactory.getInstance().createPropertyEditorDialog( - properties, "Edit Selection"); - editor.setVisible(true); - defaultedProperties.addAll(editor.getDefaultedProperties()); - return ButtonDialog.OK.equals(editor.getSelectedButtonCaption()); - } - - 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) { - case SwingConstants.TOP: - topPanel.add(component); - break; - case SwingConstants.LEFT: - leftPanel.add(component); - break; - case SwingConstants.BOTTOM: - bottomPanel.add(component); - break; - case SwingConstants.RIGHT: - rightPanel.add(component); - break; - case SwingConstants.CENTER: - centerPanel.add(component, BorderLayout.CENTER); - break; - default: - throw new BadPositionException(); - } - pack(); - } - - @Override - 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); - if (action == null) { - menu.addSeparator(); - } else { - Boolean isCheckBox = (Boolean) action.getValue(IView.CHECK_BOX_MENU_ITEM); - String groupName = (String) action.getValue(IView.RADIO_BUTTON_GROUP_KEY); - if (isCheckBox != null && isCheckBox) { - menu.add(new JCheckBoxMenuItem(action)); - } else if (groupName != null) { - ButtonGroup group; - if (buttonGroupMap.containsKey(groupName)) { - group = buttonGroupMap.get(groupName); - } else { - group = new ButtonGroup(); - buttonGroupMap.put(groupName, group); - } - JRadioButtonMenuItem item = new JRadioButtonMenuItem(action); - group.add(item); - menu.add(item); - } else { - menu.add(action); - } - } - } - - @Override - public void injectSubmenu(String name, Icon icon, String parentMenuName) { - LOG.info(String.format("injectSubmenu(%s, icon, %s)", name, parentMenuName)); - JMenu menu = findOrCreateMenu(parentMenuName); - JMenu submenu = new JMenu(name); - submenu.setIcon(icon); - menu.add(submenu); - menuMap.put(name, submenu); - } - - @Override - public void executeBackgroundTask(final ITask task) { - setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - SwingWorker worker = new SwingWorker() { - - @Override - protected T doInBackground() throws Exception { - return task.doInBackground(); - } - - @Override - protected void done() { - try { - T result = get(); - task.complete(result); - } catch (Exception e) { - LOG.error("Task failed", e); - task.failed(e); - } - setCursor(Cursor.getDefaultCursor()); - } - }; - worker.execute(); - } - - class FramePlugin implements IPlugIn { - - private IPlugInPort plugInPort; - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.FILE_STATUS_CHANGED); - } - - @Override - public void processMessage(EventType eventType, Object... params) { - if (eventType == EventType.FILE_STATUS_CHANGED) { - String fileName = (String) params[0]; - if (fileName == null) { - fileName = "Untitled"; - } - String modified = (Boolean) params[1] ? " (modified)" : ""; - setTitle(String.format("DIYLC %s beta - %s %s", plugInPort - .getCurrentVersionNumber(), fileName, modified)); - } - } - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/TemplateDialog.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/TemplateDialog.java deleted file mode 100644 index 385a4184..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/TemplateDialog.java +++ /dev/null @@ -1,285 +0,0 @@ -package org.diylc.swing.gui; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.File; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.List; -import java.util.Set; - -import javax.swing.BorderFactory; -import javax.swing.DefaultListCellRenderer; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JDialog; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextField; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; - -import org.apache.log4j.Logger; -import org.diylc.common.DrawOption; -import org.diylc.common.IPlugInPort; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IView; -import org.diylc.presenter.Presenter; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -public class TemplateDialog extends JDialog { - - private static final long serialVersionUID = 1L; - - private static final Logger LOG = Logger.getLogger(TemplateDialog.class); - - private static final Dimension panelSize = new Dimension(400, 300); - public static final String SHOW_TEMPLATES_KEY = "showTemplatesAtStartup"; - - private IPlugInPort plugInPort; - - private JList fileList; - private JPanel canvasPanel; - private Presenter presenter; - private List files; - private JCheckBox showTemplatesBox; - private JPanel mainPanel; - private JButton loadButton; - private JPanel infoPanel; - - public TemplateDialog(JFrame owner, IPlugInPort plugInPort) { - super(owner, "Templates"); - setModal(true); - setResizable(false); - this.plugInPort = plugInPort; - this.presenter = new Presenter(new IView() { - - @Override - public int showConfirmDialog(String message, String title, int optionType, - int messageType) { - return JOptionPane.showConfirmDialog(TemplateDialog.this, message, title, - optionType, messageType); - } - - @Override - public void showMessage(String message, String title, int messageType) { - JOptionPane.showMessageDialog(TemplateDialog.this, message, title, messageType); - } - - @Override - public boolean editProperties(List properties, Set defaultedProperties) { - return false; - } - }); - // this.presenter.installPlugin(new IPlugIn() { - // - // @Override - // public void connect(IPlugInPort plugInPort) { - // } - // - // @Override - // public EnumSet getSubscribedEventTypes() { - // return EnumSet.of(EventType.REPAINT); - // } - // - // @Override - // public void processMessage(EventType eventType, Object... params) { - // if (eventType == EventType.REPAINT) { - // getCanvasPanel().repaint(); - // } - // } - // }); - setContentPane(getMainPanel()); - pack(); - setLocationRelativeTo(owner); - } - - public JPanel getMainPanel() { - if (mainPanel == null) { - mainPanel = new JPanel(new GridBagLayout()); - mainPanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); - - GridBagConstraints c = new GridBagConstraints(); - c.gridx = 0; - c.gridy = 0; - c.weightx = 0; - c.weighty = 1; - c.weightx = 1; - c.gridwidth = 2; - c.fill = GridBagConstraints.BOTH; - c.insets = new Insets(0, 0, 4, 0); - mainPanel.add(getInfoPanel(), c); - - c.gridy = 1; - c.weightx = 0; - c.gridwidth = 1; - c.insets = new Insets(0, 0, 0, 0); - JScrollPane scrollPane = new JScrollPane(getFileList()); - mainPanel.add(scrollPane, c); - - c.gridx = 1; - c.weightx = 1; - - JPanel panel = new JPanel(new BorderLayout()); - panel.setBorder(scrollPane.getBorder()); - panel.add(getCanvasPanel(), BorderLayout.CENTER); - mainPanel.add(panel, c); - - c.gridx = 0; - c.gridy = 2; - c.weightx = 0; - c.weighty = 0; - c.anchor = GridBagConstraints.LAST_LINE_START; - c.fill = GridBagConstraints.NONE; - mainPanel.add(getShowTemplatesBox(), c); - - c.gridx = 1; - c.anchor = GridBagConstraints.LAST_LINE_END; - c.insets = new Insets(4, 0, 0, 0); - mainPanel.add(getLoadButton(), c); - } - return mainPanel; - } - - public JButton getLoadButton() { - if (loadButton == null) { - loadButton = new JButton("Load Template"); - loadButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - plugInPort.loadProject(presenter.getCurrentProject(), true); - dispose(); - } - }); - } - return loadButton; - } - - public JPanel getInfoPanel() { - if (infoPanel == null) { - infoPanel = new JPanel(); - infoPanel.setBackground(Color.decode("#FFFFCC")); - infoPanel.setBorder(new JTextField().getBorder()); - JLabel infoLabel = new JLabel( - "Templates are semi-product layouts that are used as a starting point for your projects.
" - + "Pick a templete in the left list and click \"Load Template\" to load it or close this dialog to continue.
" - + "You can create your own templates by placing a DIY file into diylc/templates directory."); - infoLabel.setOpaque(false); - infoPanel.add(infoLabel); - } - return infoPanel; - } - - public JList getFileList() { - if (fileList == null) { - fileList = new JList(getFiles().toArray()); - fileList.setPreferredSize(new Dimension(128, -1)); - fileList.setCellRenderer(new DefaultListCellRenderer() { - - private static final long serialVersionUID = 1L; - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, - boolean isSelected, boolean cellHasFocus) { - JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, - isSelected, cellHasFocus); - if (value instanceof File) { - label.setText(((File) value).getName()); - } - return label; - } - - }); - fileList.addListSelectionListener(new ListSelectionListener() { - - @Override - public void valueChanged(ListSelectionEvent e) { - File file = (File) fileList.getSelectedValue(); - if (file != null) { - presenter.loadProjectFromFile(file.getAbsolutePath()); - Dimension dim = presenter.getCanvasDimensions(true); - double xFactor = panelSize.getWidth() / dim.getWidth(); - double yFactor = panelSize.getHeight() / dim.getHeight(); - presenter.setZoomLevel(Math.min(xFactor, yFactor)); - getCanvasPanel().repaint(); - } - } - }); - fileList.setSelectedIndex(0); - } - return fileList; - } - - public JCheckBox getShowTemplatesBox() { - if (showTemplatesBox == null) { - showTemplatesBox = new JCheckBox("Show this dialog at startup"); - showTemplatesBox.setSelected(true); - showTemplatesBox.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - ConfigurationManager.getInstance().writeValue(SHOW_TEMPLATES_KEY, - showTemplatesBox.isSelected()); - } - }); - } - return showTemplatesBox; - } - - public List getFiles() { - if (files == null) { - files = new ArrayList(); - File dir = new File("templates"); - if (dir.exists()) { - for (File f : dir.listFiles()) { - if (f.isFile() && f.getName().toLowerCase().endsWith(".diy")) { - files.add(f); - } - } - } - LOG.debug("Found " + files.size() + " templates"); - } - return files; - } - - public JPanel getCanvasPanel() { - if (canvasPanel == null) { - canvasPanel = new JPanel() { - - private static final long serialVersionUID = 1L; - - @Override - public void paint(Graphics g) { - super.paint(g); - // Graphics2D g2d = (Graphics2D) g; - // AffineTransform transform = g2d.getTransform(); - presenter.draw((Graphics2D) g, EnumSet.of(DrawOption.ZOOM, - DrawOption.ANTIALIASING), null); - // g2d.setTransform(transform); - // Rectangle rect = canvasPanel.getBounds(); - // BorderFactory.createEtchedBorder().paintBorder(canvasPanel, - // g, 0, 0, - // (int) rect.getWidth(), (int) rect.getHeight()); - } - }; - canvasPanel.setBackground(Color.white); - canvasPanel.setPreferredSize(panelSize); - } - return canvasPanel; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/components/OverwritePromptFileChooser.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/components/OverwritePromptFileChooser.java deleted file mode 100644 index 514d47eb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/components/OverwritePromptFileChooser.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.diylc.swing.gui.components; - -import java.io.File; - -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; -import javax.swing.filechooser.FileFilter; - -public class OverwritePromptFileChooser extends JFileChooser { - - private static final long serialVersionUID = 1L; - private String defaultExtension; - - public void approveSelection() { - File lSelectedFile; - if (getSelectedFile().getAbsolutePath().contains(".")) { - lSelectedFile = getSelectedFile(); - } else { - lSelectedFile = new File(getSelectedFile().getAbsoluteFile() + "." + defaultExtension); - } - - if (lSelectedFile != null && lSelectedFile.exists()) { - int lResponse = JOptionPane.showConfirmDialog(this, lSelectedFile.getAbsolutePath() - + " already exists.\nDo you " + "want to replace it?", "Warning", - JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); - - if (lResponse != JOptionPane.YES_OPTION) { - return; - } - } - super.approveSelection(); - } - - public void setFileFilter(FileFilter filter, String defaultExtension) { - this.defaultExtension = defaultExtension; - super.setFileFilter(filter); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java deleted file mode 100644 index c8842b26..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JCheckBox; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -public class BooleanEditor extends JCheckBox { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - public BooleanEditor(final PropertyWrapper property) { - super(); - setSelected((Boolean) property.getValue()); - addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - property.setChanged(true); - setBackground(oldBg); - property.setValue(isSelected()); - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ByteEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ByteEditor.java deleted file mode 100644 index 05d72207..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ByteEditor.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; - -import javax.swing.JSlider; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -public class ByteEditor extends JSlider { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - public ByteEditor(final PropertyWrapper property) { - super(); - setMinimum(0); - setMaximum(127); - setValue((Byte) property.getValue()); - addChangeListener(new ChangeListener() { - - @Override - public void stateChanged(ChangeEvent e) { - property.setChanged(true); - setBackground(oldBg); - property.setValue(new Integer(getValue()).byteValue()); - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ColorEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ColorEditor.java deleted file mode 100644 index 24e16ef2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ColorEditor.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.Cursor; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; - -import javax.swing.BorderFactory; -import javax.swing.JColorChooser; -import javax.swing.JLabel; -import javax.swing.SwingConstants; - -import org.diylc.common.PropertyWrapper; - -public class ColorEditor extends JLabel { - - private static final long serialVersionUID = 1L; - - private static final String title = "Click to edit"; - - public ColorEditor(final PropertyWrapper property) { - super(property.isUnique() ? title : ("(multi value) " + title)); - setOpaque(true); - setHorizontalAlignment(SwingConstants.CENTER); - setBorder(BorderFactory.createEtchedBorder()); - setBackground((Color) property.getValue()); - setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - addMouseListener(new MouseAdapter() { - - @Override - public void mouseClicked(MouseEvent e) { - Color newColor = JColorChooser.showDialog(ColorEditor.this, "Choose Color", - getBackground()); - if (newColor != null) { - property.setChanged(true); - property.setValue(newColor); - setBackground(newColor); - } - } - }); - } - - @Override - public void setBackground(Color bg) { - if (bg.getRed() < 127 || bg.getBlue() < 127 || bg.getGreen() < 127) { - setForeground(Color.white); - } else { - setForeground(Color.black); - } - super.setBackground(bg); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/EnumEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/EnumEditor.java deleted file mode 100644 index d53bf2c6..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/EnumEditor.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; - -import javax.swing.DefaultComboBoxModel; -import javax.swing.JComboBox; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -public class EnumEditor extends JComboBox { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - private final PropertyWrapper property; - - public EnumEditor(final PropertyWrapper property) { - this.property = property; - Object[] values = property.getType().getEnumConstants(); - setModel(new DefaultComboBoxModel(values)); - setSelectedItem(property.getValue()); - addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - property.setChanged(true); - setBackground(oldBg); - EnumEditor.this.property.setValue(e.getItem()); - } - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java deleted file mode 100644 index 1eca8238..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Font; - -import javax.swing.ImageIcon; -import javax.swing.JLabel; - -import org.apache.log4j.Logger; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.measures.AbstractMeasure; - -public class FieldEditorFactory { - - private static final Logger LOG = Logger.getLogger(FieldEditorFactory.class); - - public static Component createFieldEditor(PropertyWrapper property) { - if (property.getType().equals(String.class)) { - StringEditor editor = new StringEditor(property); - return editor; - } - if (property.getType().equals(Color.class)) { - ColorEditor editor = new ColorEditor(property); - return editor; - } - if (AbstractMeasure.class.isAssignableFrom(property.getType())) { - MeasureEditor editor = new MeasureEditor(property); - return editor; - } - if (ImageIcon.class.isAssignableFrom(property.getType())) { - ImageEditor editor = new ImageEditor(property); - return editor; - } - if (property.getType().isEnum()) { - EnumEditor editor = new EnumEditor(property); - return editor; - } - if (Byte.class.isAssignableFrom(property.getType()) - || byte.class.isAssignableFrom(property.getType())) { - ByteEditor editor = new ByteEditor(property); - return editor; - } - if (Boolean.class.isAssignableFrom(property.getType()) - || boolean.class.isAssignableFrom(property.getType())) { - BooleanEditor editor = new BooleanEditor(property); - return editor; - } - if (Font.class.isAssignableFrom(property.getType())) { - FontEditor editor = new FontEditor(property); - return editor; - } - if (Integer.class.isAssignableFrom(property.getType()) - || int.class.isAssignableFrom(property.getType())) { - IntEditor editor = new IntEditor(property); - return editor; - } - LOG.error("Unrecognized parameter type: " + property.getType().getName()); - return new JLabel("Unrecognized"); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FontEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FontEditor.java deleted file mode 100644 index 64471349..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FontEditor.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.Font; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -import com.diyfever.gui.FontChooserComboBox; - -public class FontEditor extends FontChooserComboBox { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - private final PropertyWrapper property; - - public FontEditor(final PropertyWrapper property) { - this.property = property; - setSelectedItem(((Font) property.getValue()).getName()); - addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - property.setChanged(true); - setBackground(oldBg); - Font oldFont = (Font) FontEditor.this.property.getValue(); - Font newFont = new Font(getSelectedItem().toString(), oldFont.getStyle(), - oldFont.getSize()); - FontEditor.this.property.setValue(newFont); - } - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ImageEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ImageEditor.java deleted file mode 100644 index 11bdb574..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/ImageEditor.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.event.ActionListener; -import java.io.File; - -import javax.swing.ImageIcon; -import javax.swing.JButton; - -import org.diylc.common.PropertyWrapper; -import org.diylc.swing.gui.DialogFactory; -import org.diylc.swing.plugins.file.FileFilterEnum; - -public class ImageEditor extends JButton { - - private static final long serialVersionUID = 1L; - - private static final String title = "Click to load image file"; - - public ImageEditor(final PropertyWrapper property) { - super(property.isUnique() ? title : ("(multi value) " + title)); - addActionListener(new ActionListener() { - - @Override - public void actionPerformed(java.awt.event.ActionEvent e) { - File file = DialogFactory.getInstance().showOpenDialog( - FileFilterEnum.IMAGES.getFilter(), null, - FileFilterEnum.IMAGES.getExtensions()[0], null); - if (file != null) { - property.setChanged(true); - ImageIcon image = new ImageIcon(file.getAbsolutePath()); - property.setValue(image); - } - } - }); - } - - // @Override - // public void setBackground(Color bg) { - // if (bg.getRed() < 127 || bg.getBlue() < 127 || bg.getGreen() < 127) { - // setForeground(Color.white); - // } else { - // setForeground(Color.black); - // } - // super.setBackground(bg); - // } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/IntEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/IntEditor.java deleted file mode 100644 index 919c7949..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/IntEditor.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -import com.diyfever.gui.DoubleTextField; - -public class IntEditor extends DoubleTextField { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - public IntEditor(final PropertyWrapper property) { - setLayout(new BorderLayout()); - setValue((double) (Integer) property.getValue()); - addPropertyChangeListener(DoubleTextField.VALUE_PROPERTY, new PropertyChangeListener() { - - @Override - public void propertyChange(PropertyChangeEvent evt) { - property.setChanged(true); - setBackground(oldBg); - property.setValue(((Double) evt.getNewValue()).intValue()); - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/MeasureEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/MeasureEditor.java deleted file mode 100644 index c16d6bc2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/MeasureEditor.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Container; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import javax.swing.JComboBox; - -import org.diylc.common.PropertyWrapper; -import org.diylc.core.measures.AbstractMeasure; -import org.diylc.core.measures.Unit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.DoubleTextField; - -public class MeasureEditor extends Container { - - private static final long serialVersionUID = 1L; - - private Color oldBg; - private DoubleTextField valueField; - private JComboBox unitBox; - - @SuppressWarnings("unchecked") - public MeasureEditor(final PropertyWrapper property) { - setLayout(new BorderLayout()); - AbstractMeasure measure = ((AbstractMeasure) property.getValue()); - valueField = new DoubleTextField(measure.getValue()); - oldBg = valueField.getBackground(); - valueField.addPropertyChangeListener(DoubleTextField.VALUE_PROPERTY, - new PropertyChangeListener() { - - @Override - public void propertyChange(PropertyChangeEvent evt) { - try { - AbstractMeasure newMeasure = (AbstractMeasure) ((AbstractMeasure) property - .getValue()).clone(); - newMeasure.setValue((Double) evt.getNewValue()); - property.setValue(newMeasure); - property.setChanged(true); - valueField.setBackground(oldBg); - unitBox.setBackground(oldBg); - } catch (CloneNotSupportedException ex) { - } - } - }); - add(valueField, BorderLayout.CENTER); - try { - Method method = measure.getUnit().getClass().getMethod("values"); - unitBox = new JComboBox((Object[]) method.invoke(measure.getUnit())); - unitBox.setSelectedItem(measure.getUnit()); - unitBox.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - try { - AbstractMeasure> newMeasure = (AbstractMeasure>) ((AbstractMeasure) property - .getValue()).clone(); - newMeasure.setUnit((Enum) unitBox.getSelectedItem()); - property.setValue(newMeasure); - property.setChanged(true); - valueField.setBackground(oldBg); - unitBox.setBackground(oldBg); - } catch (CloneNotSupportedException ex) { - } - } - }); - add(unitBox, BorderLayout.EAST); - - if (!property.isUnique()) { - valueField.setBackground(Constants.MULTI_VALUE_COLOR); - unitBox.setBackground(Constants.MULTI_VALUE_COLOR); - } - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java deleted file mode 100644 index b8242a71..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java +++ /dev/null @@ -1,170 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.swing.BorderFactory; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; - -import org.apache.log4j.Logger; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.ValidationException; - -import com.diyfever.gui.ButtonDialog; - -public class PropertyEditorDialog extends ButtonDialog { - - private static final Logger LOG = Logger.getLogger(PropertyEditorDialog.class); - - private static final long serialVersionUID = 1L; - - private static final String DEFAULT_BOX_TOOLTIP = "If this box is checked application will use the current value as a
default when creating new components of the same type"; - - private List properties; - private Set defaultedProperties; - - public PropertyEditorDialog(JFrame owner, List properties, String title) { - super(owner, title, new String[] { ButtonDialog.OK, ButtonDialog.CANCEL }); - - LOG.debug("Creating property editor for: " + properties); - - this.properties = properties; - this.defaultedProperties = new HashSet(); - - setMinimumSize(new Dimension(240, 40)); - - layoutGui(); - setLocationRelativeTo(owner); - // - // setModal(true); - // - // JPanel holderPanel = new JPanel(); - // holderPanel.setLayout(new BorderLayout()); - // holderPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - // - // holderPanel.add(createEditorFields(), BorderLayout.CENTER); - // holderPanel.add(createButtonPanel(), BorderLayout.SOUTH); - // - // setContentPane(holderPanel); - // - // - // pack(); - // setLocationRelativeTo(owner); - } - - @Override - protected boolean validateInput(String button) { - if (button.equals(ButtonDialog.OK)) { - for (PropertyWrapper property : properties) { - try { - property.getValidator().validate(property.getValue()); - } catch (ValidationException ve) { - JOptionPane.showMessageDialog(PropertyEditorDialog.this, "Input error for \"" - + property.getName() + "\": " + ve.getMessage(), "Error", - JOptionPane.ERROR_MESSAGE); - return false; - } - } - } - return true; - } - - private JPanel createEditorFields() { - JPanel editorPanel = new JPanel(new GridBagLayout()); - editorPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - - GridBagConstraints gbc = new GridBagConstraints(); - - gbc.gridy = 0; - gbc.insets = new Insets(2, 2, 2, 2); - gbc.anchor = GridBagConstraints.LINE_START; - - for (PropertyWrapper property : properties) { - gbc.gridx = 0; - gbc.fill = GridBagConstraints.NONE; - gbc.weightx = 0; - - editorPanel.add(new JLabel(property.getName() + ": "), gbc); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1; - - Component editor = FieldEditorFactory.createFieldEditor(property); - editor.addKeyListener(new KeyAdapter() { - - @Override - public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_ENTER) { - getButton(OK).doClick(); - } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { - getButton(CANCEL).doClick(); - } - } - }); - editorPanel.add(editor, gbc); - - if (property.isDefaultable()) { - gbc.gridx = 2; - gbc.fill = GridBagConstraints.NONE; - gbc.weightx = 0; - - editorPanel.add(createDefaultCheckBox(property), gbc); - } - - gbc.gridy++; - } - - return editorPanel; - } - - private JCheckBox createDefaultCheckBox(final PropertyWrapper property) { - final JCheckBox checkBox = new JCheckBox(); - checkBox.setToolTipText(DEFAULT_BOX_TOOLTIP); - checkBox.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - if (checkBox.isSelected()) { - defaultedProperties.add(property); - } else { - defaultedProperties.remove(property); - } - } - }); - return checkBox; - } - - public Set getDefaultedProperties() { - return defaultedProperties; - } - - public static boolean showFor(JFrame owner, List properties, String title) { - PropertyEditorDialog editor = new PropertyEditorDialog(owner, properties, title); - editor.setVisible(true); - if (OK.equals(editor.getSelectedButtonCaption())) { - return true; - } - return false; - } - - @Override - protected JComponent getMainComponent() { - return createEditorFields(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/StringEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/StringEditor.java deleted file mode 100644 index 3dbf9e16..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/StringEditor.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; - -import javax.swing.JTextField; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -public class StringEditor extends JTextField { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - private final PropertyWrapper property; - - public StringEditor(PropertyWrapper property) { - super(property.getValue() == null ? "" : (String) property.getValue()); - this.property = property; - getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void changedUpdate(DocumentEvent e) { - textChanged(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - textChanged(); - } - - @Override - public void removeUpdate(DocumentEvent e) { - textChanged(); - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } - - private void textChanged() { - property.setChanged(true); - setBackground(oldBg); - property.setValue(getText()); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java deleted file mode 100644 index d622272d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.diylc.swing.plugins.autosave; - -import java.io.File; -import java.util.EnumSet; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import javax.swing.SwingUtilities; - -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IView; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -public class AutoSavePlugin implements IPlugIn { - - private static final String AUTO_SAVE_FILE_NAME = "autoSave.diy"; - - private ExecutorService executor; - - private IPlugInPort plugInPort; - private IView view; - - public AutoSavePlugin(IView view) { - this.view = view; - executor = Executors.newSingleThreadExecutor(); - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - boolean wasAbnormal = ConfigurationManager.getInstance().readBoolean( - IPlugInPort.ABNORMAL_EXIT_KEY, false); - if (wasAbnormal && new File(AUTO_SAVE_FILE_NAME).exists()) { - int decision = view - .showConfirmDialog( - "It appears that aplication was not closed normally in the previous session. Do you want to open the last auto-saved file?", - "Auto-Save", IView.YES_NO_OPTION, IView.QUESTION_MESSAGE); - if (decision == IView.YES_OPTION) { - AutoSavePlugin.this.plugInPort.loadProjectFromFile(AUTO_SAVE_FILE_NAME); - } - } - // Set abnormal flag to true, GUI side of the app must flip to - // false when app closes regularly. - ConfigurationManager.getInstance().writeValue(IPlugInPort.ABNORMAL_EXIT_KEY, true); - } - }); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.PROJECT_MODIFIED); - } - - @Override - public void processMessage(EventType eventType, Object... params) { - if (eventType == EventType.PROJECT_MODIFIED) { - executor.execute(new Runnable() { - - @Override - public void run() { - plugInPort.saveProjectToFile(AUTO_SAVE_FILE_NAME, true); - } - }); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasGestureListener.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasGestureListener.java deleted file mode 100644 index f8273c2a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasGestureListener.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.dnd.DragGestureEvent; -import java.awt.dnd.DragGestureListener; - -import org.diylc.common.IPlugInPort; - -/** - * {@link DragGestureListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class CanvasGestureListener implements DragGestureListener { - - private IPlugInPort presenter; - - public CanvasGestureListener(IPlugInPort presenter) { - super(); - this.presenter = presenter; - } - - @Override - public void dragGestureRecognized(DragGestureEvent dge) { - presenter.dragStarted(dge.getDragOrigin(), dge.getTriggerEvent().isControlDown(), dge - .getTriggerEvent().isShiftDown(), dge.getTriggerEvent().isAltDown()); - dge.startDrag(presenter.getCursorAt(dge.getDragOrigin()), new EmptyTransferable(), - new CanvasSourceListener(presenter)); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPanel.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPanel.java deleted file mode 100644 index 83e8b9d9..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPanel.java +++ /dev/null @@ -1,210 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.GraphicsConfiguration; -import java.awt.GraphicsDevice; -import java.awt.GraphicsEnvironment; -import java.awt.Image; -import java.awt.Insets; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.dnd.Autoscroll; -import java.awt.dnd.DnDConstants; -import java.awt.dnd.DragSource; -import java.awt.dnd.DropTarget; -import java.awt.event.ActionEvent; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.image.VolatileImage; -import java.util.EnumSet; -import java.util.Set; - -import javax.swing.AbstractAction; -import javax.swing.JComponent; -import javax.swing.KeyStroke; - -import org.diylc.common.DrawOption; -import org.diylc.common.IPlugInPort; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -/** - * GUI class used to draw onto. - * - * @author Branislav Stojkovic - */ -class CanvasPanel extends JComponent implements Autoscroll { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - private Image bufferImage; - private GraphicsConfiguration screenGraphicsConfiguration; - - private static boolean USE_HARDWARE_ACCELLERATION = false; - -// static final EnumSet DRAW_OPTIONS = EnumSet.of(DrawOption.GRID, -// DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.CONTROL_POINTS); -// static final EnumSet DRAW_OPTIONS_ANTI_ALIASING = EnumSet.of(DrawOption.GRID, -// DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.ANTIALIASING, -// DrawOption.CONTROL_POINTS); - - public CanvasPanel(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - setFocusable(true); - initializeListeners(); - initializeDnD(); - GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment(); - GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices(); - screenGraphicsConfiguration = devices[0].getDefaultConfiguration(); - - initializeActions(); - } - - public void invalidateCache() { - bufferImage = null; - } - - private void initializeDnD() { - // Initialize drag source recognizer. - DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(this, - DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK, - new CanvasGestureListener(plugInPort)); - // Initialize drop target. - new DropTarget(this, DnDConstants.ACTION_COPY_OR_MOVE, - new CanvasTargetListener(plugInPort), true); - } - - private void initializeActions() { - getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put( - KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "clearSlot"); - getActionMap().put("clearSlot", new AbstractAction() { - - private static final long serialVersionUID = 1L; - - @Override - public void actionPerformed(ActionEvent e) { - CanvasPanel.this.plugInPort.setNewComponentTypeSlot(null); - } - }); - } - - protected void createBufferImage() { - if (USE_HARDWARE_ACCELLERATION) { - bufferImage = screenGraphicsConfiguration.createCompatibleVolatileImage(getWidth(), - getHeight()); - ((VolatileImage) bufferImage).validate(screenGraphicsConfiguration); - } else { - bufferImage = createImage(getWidth(), getHeight()); - } - } - - @Override - public void paint(Graphics g) { - if (plugInPort == null) { - return; - } - if (bufferImage == null) { - createBufferImage(); - } - Graphics2D g2d = (Graphics2D) bufferImage.getGraphics(); - g2d.setClip(getVisibleRect()); - Set drawOptions = EnumSet.of(DrawOption.GRID, DrawOption.SELECTION, - DrawOption.ZOOM, DrawOption.CONTROL_POINTS); - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.ANTI_ALIASING_KEY, true)) { - drawOptions.add(DrawOption.ANTIALIASING); - } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.OUTLINE_KEY, false)) { - drawOptions.add(DrawOption.OUTLINE_MODE); - } - plugInPort.draw(g2d, drawOptions, null); - if (USE_HARDWARE_ACCELLERATION) { - VolatileImage volatileImage = (VolatileImage) bufferImage; - do { - try { - if (volatileImage.contentsLost()) { - createBufferImage(); - } - // int validation = - // volatileImage.validate(screenGraphicsConfiguration); - // if (validation == VolatileImage.IMAGE_INCOMPATIBLE) { - // createBufferImage(); - // } - g.drawImage(bufferImage, 0, 0, this); - } catch (NullPointerException e) { - createBufferImage(); - } - } while (volatileImage == null || volatileImage.contentsLost()); - } else { - g.drawImage(bufferImage, 0, 0, this); - // bufferImage.flush(); - } - } - - @Override - public void update(Graphics g) { - paint(g); - } - - private void initializeListeners() { - addComponentListener(new ComponentAdapter() { - - @Override - public void componentResized(ComponentEvent e) { - invalidateCache(); - invalidate(); - } - }); - // addKeyListener(new KeyAdapter() { - // - // @Override - // public void keyPressed(KeyEvent e) { - // if (e.getKeyCode() == KeyEvent.VK_DELETE) { - // plugInPort.deleteSelectedComponents(); - // } - // // plugInPort.mouseMoved(getMousePosition(), e.isControlDown(), - // // e.isShiftDown(), e - // // .isAltDown()); - // } - // }); - addMouseMotionListener(new MouseAdapter() { - - @Override - public void mouseMoved(MouseEvent e) { - setCursor(plugInPort.getCursorAt(e.getPoint())); - plugInPort.mouseMoved(e.getPoint(), e.isControlDown(), e.isShiftDown(), e - .isAltDown()); - } - }); - addMouseListener(new MouseAdapter() { - - @Override - public void mouseClicked(MouseEvent e) { - if (e.getButton() == MouseEvent.BUTTON1) { - plugInPort.mouseClicked(e.getPoint(), e.isControlDown(), e.isShiftDown(), e - .isAltDown(), e.getClickCount()); - } - } - }); - } - - // Autoscroll - - @Override - public void autoscroll(Point cursorLocn) { - scrollRectToVisible(new Rectangle(cursorLocn.x - 15, cursorLocn.y - 15, 30, 30)); - } - - @Override - public Insets getAutoscrollInsets() { - Rectangle rect = getVisibleRect(); - return new Insets(rect.y - 15, rect.x - 15, rect.y + rect.height + 15, rect.x + rect.width - + 15); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java deleted file mode 100644 index 6a7f32d5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ /dev/null @@ -1,319 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Dimension; -import java.awt.Rectangle; -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.datatransfer.Transferable; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseWheelEvent; -import java.awt.event.MouseWheelListener; -import java.util.EnumSet; - -import javax.swing.JPopupMenu; -import javax.swing.SwingConstants; - -import org.apache.log4j.Logger; -import org.diylc.common.BadPositionException; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.presenter.Presenter; -import org.diylc.swing.ActionFactory; -import org.diylc.swing.ISwingUI; -import org.diylc.swing.plugins.edit.ComponentTransferable; -import org.diylc.swing.plugins.file.ProjectDrawingProvider; - -import com.diyfever.gui.miscutils.ConfigurationManager; -import com.diyfever.gui.miscutils.IConfigListener; -import com.diyfever.gui.ruler.IRulerListener; -import com.diyfever.gui.ruler.RulerScrollPane; - -public class CanvasPlugin implements IPlugIn, ClipboardOwner { - - private static final Logger LOG = Logger.getLogger(CanvasPlugin.class); - - private RulerScrollPane scrollPane; - private CanvasPanel canvasPanel; - private JPopupMenu popupMenu; - - private ActionFactory.CutAction cutAction; - private ActionFactory.CopyAction copyAction; - private ActionFactory.PasteAction pasteAction; - private ActionFactory.EditSelectionAction editSelectionAction; - private ActionFactory.DeleteSelectionAction deleteSelectionAction; - private ActionFactory.GroupAction groupAction; - private ActionFactory.UngroupAction ungroupAction; - private ActionFactory.SendToBackAction sendToBackAction; - private ActionFactory.BringToFrontAction bringToFrontAction; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - private Clipboard clipboard; - - private double zoomLevel = 1; - - public CanvasPlugin(ISwingUI swingUI) { - this.swingUI = swingUI; - clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - try { - swingUI.injectGUIComponent(getScrollPane(), SwingConstants.CENTER); - } catch (BadPositionException e) { - LOG.error("Could not install canvas plugin", e); - } - } - - public CanvasPanel getCanvasPanel() { - if (canvasPanel == null) { - canvasPanel = new CanvasPanel(plugInPort); - canvasPanel.addMouseListener(new MouseAdapter() { - - @Override - public void mouseReleased(MouseEvent e) { - if (e.isPopupTrigger()) { - // Enable actions. - boolean enabled = !plugInPort.getSelectedComponents().isEmpty(); - getCutAction().setEnabled(enabled); - getCopyAction().setEnabled(enabled); - try { - getPasteAction() - .setEnabled( - clipboard - .isDataFlavorAvailable(ComponentTransferable.listFlavor)); - } catch (Exception ex) { - getPasteAction().setEnabled(false); - } - getEditSelectionAction().setEnabled(enabled); - getDeleteSelectionAction().setEnabled(enabled); - getGroupAction().setEnabled(enabled); - getUngroupAction().setEnabled(enabled); - getSendToBackAction().setEnabled(enabled); - getBringToFrontAction().setEnabled(enabled); - - getPopupMenu().show(canvasPanel, e.getX(), e.getY()); - } - } - }); - } - return canvasPanel; - } - - private RulerScrollPane getScrollPane() { - if (scrollPane == null) { - scrollPane = new RulerScrollPane(getCanvasPanel(), new ProjectDrawingProvider( - plugInPort, true, false), new Size(1d, SizeUnit.cm).convertToPixels(), - new Size(1d, SizeUnit.in).convertToPixels()); - boolean metric = ConfigurationManager.getInstance().readBoolean(Presenter.METRIC_KEY, - true); - boolean wheelZoom = ConfigurationManager.getInstance().readBoolean( - IPlugInPort.WHEEL_ZOOM_KEY, false); - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.WHEEL_ZOOM_KEY, - new IConfigListener() { - - @Override - public void valueChanged(String key, Object value) { - scrollPane.setWheelScrollingEnabled(!(Boolean) value); - } - }); - scrollPane.setMetric(metric); - scrollPane.setWheelScrollingEnabled(!wheelZoom); - scrollPane.addUnitListener(new IRulerListener() { - - @Override - public void unitsChanged(boolean isMetric) { - plugInPort.setMetric(isMetric); - } - }); - scrollPane.addMouseWheelListener(new MouseWheelListener() { - - @Override - public void mouseWheelMoved(MouseWheelEvent e) { - boolean wheelZoom = ConfigurationManager.getInstance().readBoolean( - IPlugInPort.WHEEL_ZOOM_KEY, false); - if (!wheelZoom) { - return; - } - double d = plugInPort.getZoomLevel(); - Double[] availableZoomLevels = plugInPort.getAvailableZoomLevels(); - if (e.getWheelRotation() > 0) { - int i = availableZoomLevels.length - 1; - while (i > 0 && availableZoomLevels[i] >= d) { - i--; - } - plugInPort.setZoomLevel(availableZoomLevels[i]); - } else { - int i = 0; - while (i < availableZoomLevels.length - 1 && availableZoomLevels[i] <= d) { - i++; - } - plugInPort.setZoomLevel(availableZoomLevels[i]); - } - } - }); - } - return scrollPane; - } - - public JPopupMenu getPopupMenu() { - if (popupMenu == null) { - popupMenu = new JPopupMenu(); - popupMenu.add(getCutAction()); - popupMenu.add(getCopyAction()); - popupMenu.add(getPasteAction()); - popupMenu.addSeparator(); - popupMenu.add(getEditSelectionAction()); - popupMenu.add(getDeleteSelectionAction()); - popupMenu.add(getGroupAction()); - popupMenu.add(getUngroupAction()); - popupMenu.add(getSendToBackAction()); - popupMenu.add(getBringToFrontAction()); - popupMenu.addSeparator(); - popupMenu.add(ActionFactory.getInstance().createEditProjectAction(plugInPort)); - } - return popupMenu; - } - - public ActionFactory.CutAction getCutAction() { - if (cutAction == null) { - cutAction = ActionFactory.getInstance().createCutAction(plugInPort, clipboard, this); - } - return cutAction; - } - - public ActionFactory.CopyAction getCopyAction() { - if (copyAction == null) { - copyAction = ActionFactory.getInstance().createCopyAction(plugInPort, clipboard, this); - } - return copyAction; - } - - public ActionFactory.PasteAction getPasteAction() { - if (pasteAction == null) { - pasteAction = ActionFactory.getInstance().createPasteAction(plugInPort, clipboard); - } - return pasteAction; - } - - public ActionFactory.EditSelectionAction getEditSelectionAction() { - if (editSelectionAction == null) { - editSelectionAction = ActionFactory.getInstance().createEditSelectionAction(plugInPort); - } - return editSelectionAction; - } - - public ActionFactory.DeleteSelectionAction getDeleteSelectionAction() { - if (deleteSelectionAction == null) { - deleteSelectionAction = ActionFactory.getInstance().createDeleteSelectionAction( - plugInPort); - } - return deleteSelectionAction; - } - - public ActionFactory.GroupAction getGroupAction() { - if (groupAction == null) { - groupAction = ActionFactory.getInstance().createGroupAction(plugInPort); - } - return groupAction; - } - - public ActionFactory.UngroupAction getUngroupAction() { - if (ungroupAction == null) { - ungroupAction = ActionFactory.getInstance().createUngroupAction(plugInPort); - } - return ungroupAction; - } - - public ActionFactory.SendToBackAction getSendToBackAction() { - if (sendToBackAction == null) { - sendToBackAction = ActionFactory.getInstance().createSendToBackAction(plugInPort); - } - return sendToBackAction; - } - - public ActionFactory.BringToFrontAction getBringToFrontAction() { - if (bringToFrontAction == null) { - bringToFrontAction = ActionFactory.getInstance().createBringToFrontAction(plugInPort); - } - return bringToFrontAction; - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.PROJECT_LOADED, EventType.ZOOM_CHANGED, EventType.REPAINT); - } - - @Override - public void processMessage(final EventType eventType, Object... params) { - // SwingUtilities.invokeLater(new Runnable() { - // - // @Override - // public void run() { - // LOG.debug("event: " + eventType); - switch (eventType) { - case PROJECT_LOADED: - refreshSize(); - if ((Boolean) params[1]) { - // Scroll to the center. - Rectangle visibleRect = canvasPanel.getVisibleRect(); - visibleRect.setLocation((canvasPanel.getWidth() - visibleRect.width) / 2, - (canvasPanel.getHeight() - visibleRect.height) / 2); - canvasPanel.scrollRectToVisible(visibleRect); - canvasPanel.revalidate(); - } - break; - case ZOOM_CHANGED: - Rectangle visibleRect = canvasPanel.getVisibleRect(); - refreshSize(); - // Try to set the visible area to be centered with the previous - // one. - double zoomFactor = (Double) params[0] / zoomLevel; - visibleRect.setBounds((int) (visibleRect.x * zoomFactor), - (int) (visibleRect.y * zoomFactor), visibleRect.width, visibleRect.height); - canvasPanel.scrollRectToVisible(visibleRect); - canvasPanel.revalidate(); - - zoomLevel = (Double) params[0]; - break; - case REPAINT: - canvasPanel.repaint(); - break; - } - // } - // }); - } - - private void refreshSize() { - Dimension d = plugInPort.getCanvasDimensions(true); - canvasPanel.setSize(d); - canvasPanel.setPreferredSize(d); - getScrollPane().setZoomLevel(plugInPort.getZoomLevel()); - } - - /** - * Causes ruler scroll pane to refresh by sending a fake mouse moved message - * to the canvasPanel. - */ - public void refresh() { - MouseEvent event = new MouseEvent(canvasPanel, MouseEvent.MOUSE_MOVED, System - .currentTimeMillis(), 0, 1, 1,// canvasPanel.getWidth() / 2, - // canvasPanel.getHeight() / 2, - 0, false); - canvasPanel.dispatchEvent(event); - } - - @Override - public void lostOwnership(Clipboard clipboard, Transferable contents) { - // TODO Auto-generated method stub - - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasSourceListener.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasSourceListener.java deleted file mode 100644 index 61a98185..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasSourceListener.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Point; -import java.awt.dnd.DragSourceDragEvent; -import java.awt.dnd.DragSourceDropEvent; -import java.awt.dnd.DragSourceEvent; -import java.awt.dnd.DragSourceListener; - -import org.diylc.common.IPlugInPort; - - -/** - * {@link DragSourceListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class CanvasSourceListener implements DragSourceListener { - - private IPlugInPort presenter; - - public CanvasSourceListener(IPlugInPort presenter) { - super(); - this.presenter = presenter; - } - - @Override - public void dragDropEnd(DragSourceDropEvent dsde) { - presenter.dragEnded(null); - } - - @Override - public void dragEnter(DragSourceDragEvent dsde) { - } - - @Override - public void dragExit(DragSourceEvent dse) { - } - - @Override - public void dragOver(DragSourceDragEvent dsde) { - Point p = dsde.getDragSourceContext().getComponent().getMousePosition(); - if (p != null) { - dsde.getDragSourceContext().getComponent().firePropertyChange("dragPoint", p.x, p.y); - } - } - - @Override - public void dropActionChanged(DragSourceDragEvent dsde) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasTargetListener.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasTargetListener.java deleted file mode 100644 index a96f6273..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasTargetListener.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Point; -import java.awt.dnd.DnDConstants; -import java.awt.dnd.DropTargetDragEvent; -import java.awt.dnd.DropTargetDropEvent; -import java.awt.dnd.DropTargetEvent; -import java.awt.dnd.DropTargetListener; - -import org.diylc.common.IPlugInPort; - - -/** - * {@link DropTargetListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class CanvasTargetListener implements DropTargetListener { - - private IPlugInPort presenter; - - // Cached values - private Point currentPoint = null; - private boolean lastAccept; - - public CanvasTargetListener(IPlugInPort presenter) { - super(); - this.presenter = presenter; - } - - @Override - public void dragEnter(DropTargetDragEvent dtde) { - } - - @Override - public void dragExit(DropTargetEvent dte) { - } - - @Override - public void dragOver(DropTargetDragEvent dtde) { - // If dragOver was previously called for this location use cached value. - if (dtde.getLocation().equals(currentPoint)) { - if (lastAccept) { - dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); - } else { - dtde.rejectDrag(); - } - return; - } - try { - // Transferable t = dtde.getTransferable(); - // if - // (t.isDataFlavorSupported(SelectionTransferable.selectionFlavor)) - // { - // if (currentPoint != null) { - // List selection = (List) t - // .getTransferData(SelectionTransferable.selectionFlavor); - // Point startPoint = (Point) t - // .getTransferData(PointTransferable.pointFlavor); - // presenter.selectionMoved(dtde.getLocation().x - // - currentPoint.x, dtde.getLocation().y - // - currentPoint.y); - // } - // } else if - // (t.isDataFlavorSupported(PointTransferable.pointFlavor)) { - // Point startPoint = (Point) t - // .getTransferData(PointTransferable.pointFlavor); - // Point endPoint = dtde.getLocation(); - // presenter.setSelectionRect(Utils.createRectangle(startPoint, - // endPoint)); - // } - currentPoint = dtde.getLocation(); - if (presenter.dragOver(currentPoint)) { - dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); - lastAccept = true; - } else { - dtde.rejectDrag(); - lastAccept = false; - } - } catch (Exception e) { - e.printStackTrace(); - dtde.rejectDrag(); - lastAccept = false; - } - } - - @Override - public void drop(DropTargetDropEvent dtde) { - presenter.dragEnded(dtde.getLocation()); - } - - @Override - public void dropActionChanged(DropTargetDragEvent dtde) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/EmptyTransferable.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/EmptyTransferable.java deleted file mode 100644 index ccddb7b1..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/EmptyTransferable.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; - -public class EmptyTransferable implements Transferable { - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - throw new UnsupportedFlavorException(flavor); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] {}; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return false; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/PointTransferable.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/PointTransferable.java deleted file mode 100644 index 7c854f82..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/PointTransferable.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Point; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; - -public class PointTransferable implements Transferable { - - public static final DataFlavor pointFlavor = new DataFlavor(Point.class, "Java Point"); - - private Point startPoint; - - public PointTransferable(Point startPoint) { - super(); - this.startPoint = startPoint; - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - if (flavor.equals(pointFlavor)) { - return startPoint; - } - throw new UnsupportedFlavorException(flavor); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] { pointFlavor }; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return flavor.equals(pointFlavor); - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/SelectionTransferable.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/SelectionTransferable.java deleted file mode 100644 index 5901d2fc..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/SelectionTransferable.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Point; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; -import java.util.List; - -import org.diylc.core.IDIYComponent; - - -public class SelectionTransferable implements Transferable { - - public static final DataFlavor selectionFlavor = new DataFlavor(List.class, - "Component Selection"); - - private Point startPoint; - private List> selection; - - public SelectionTransferable(List> selection, Point startPoint) { - super(); - this.selection = selection; - this.startPoint = startPoint; - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - if (flavor.equals(selectionFlavor)) { - return selection; - } - if (flavor.equals(PointTransferable.pointFlavor)) { - return startPoint; - } - throw new UnsupportedFlavorException(flavor); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] { selectionFlavor, PointTransferable.pointFlavor }; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return flavor.equals(selectionFlavor) || flavor.equals(selectionFlavor); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/config/ConfigPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/config/ConfigPlugin.java deleted file mode 100644 index d12360df..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/config/ConfigPlugin.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.diylc.swing.plugins.config; - -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.EnumSet; - -import org.apache.log4j.Logger; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.Theme; -import org.diylc.images.IconLoader; -import org.diylc.swing.ActionFactory; -import org.diylc.swing.ISwingUI; - -import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.io.xml.DomDriver; - -/** - * Controls configuration menu. - * - * @author Branislav Stojkovic - */ -public class ConfigPlugin implements IPlugIn { - - private static final Logger LOG = Logger.getLogger(ConfigPlugin.class); - - private static final String CONFIG_MENU = "Config"; - private static final String THEME_MENU = "Theme"; - - private ISwingUI swingUI; - - public ConfigPlugin(ISwingUI swingUI) { - super(); - this.swingUI = swingUI; - } - - @Override - public void connect(IPlugInPort plugInPort) { - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Anti-Aliasing", IPlugInPort.ANTI_ALIASING_KEY, true), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Auto-Create Pads", IPlugInPort.AUTO_PADS_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Auto-Edit Mode", IPlugInPort.AUTO_EDIT_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Continuous Creation", IPlugInPort.CONTINUOUS_CREATION_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Export Grid", IPlugInPort.EXPORT_GRID_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Hi-Quality Rendering", IPlugInPort.HI_QUALITY_RENDER_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Mouse Wheel Zoom", IPlugInPort.WHEEL_ZOOM_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Outline Mode", IPlugInPort.OUTLINE_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Snap to Grid", IPlugInPort.SNAP_TO_GRID_KEY, true), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Sticky Points", IPlugInPort.STICKY_POINTS_KEY, true), CONFIG_MENU); - - File themeDir = new File("themes"); - if (themeDir.exists()) { - XStream xStream = new XStream(new DomDriver()); - swingUI.injectSubmenu(THEME_MENU, IconLoader.Pens.getIcon(), CONFIG_MENU); - for (File file : themeDir.listFiles()) { - if (file.getName().toLowerCase().endsWith(".xml")) { - try { - InputStream in = new FileInputStream(file); - Theme theme = (Theme) xStream.fromXML(in); - LOG.debug("Found theme: " + theme.getName()); - swingUI.injectMenuAction(ActionFactory.getInstance().createThemeAction( - plugInPort, theme), THEME_MENU); - } catch (Exception e) { - LOG.error("Could not load theme file " + file.getName(), e); - } - } - } - } - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.noneOf(EventType.class); - } - - @Override - public void processMessage(EventType eventType, Object... params) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/edit/ComponentTransferable.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/edit/ComponentTransferable.java deleted file mode 100644 index e5506739..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/edit/ComponentTransferable.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.diylc.swing.plugins.edit; - -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.diylc.core.IDIYComponent; - -/** - * Represents component selection as a {@link List} of {@link IDIYComponent} - * objects. Implements {@link Transferable}, so it is suitable for clipboard - * usage. - * - * @author Branislav Stojkovic - */ -public class ComponentTransferable extends ArrayList> implements Transferable { - - private static final long serialVersionUID = 1L; - - public static final DataFlavor listFlavor = new DataFlavor(ComponentTransferable.class, "application/diylc"); - - public ComponentTransferable() { - super(); - } - - public ComponentTransferable(Collection> selectedComponents) { - super(selectedComponents); - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - if (flavor.equals(listFlavor)) { - return this; - } - throw new UnsupportedFlavorException(flavor); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] { listFlavor }; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return flavor.equals(listFlavor); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java deleted file mode 100644 index 9be4addb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java +++ /dev/null @@ -1,224 +0,0 @@ -package org.diylc.swing.plugins.edit; - -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.datatransfer.FlavorEvent; -import java.awt.datatransfer.FlavorListener; -import java.awt.datatransfer.Transferable; -import java.util.EnumSet; - -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.Project; -import org.diylc.images.IconLoader; -import org.diylc.swing.ActionFactory; -import org.diylc.swing.ISwingUI; - -import com.diyfever.gui.undo.IUndoListener; -import com.diyfever.gui.undo.UndoHandler; - -public class EditMenuPlugin implements IPlugIn, ClipboardOwner { - - private static final String EDIT_TITLE = "Edit"; - private static final String RENUMBER_TITLE = "Renumber Selection"; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - private Clipboard clipboard; - - private ActionFactory.CutAction cutAction; - private ActionFactory.CopyAction copyAction; - private ActionFactory.PasteAction pasteAction; - private ActionFactory.EditSelectionAction editSelectionAction; - private ActionFactory.DeleteSelectionAction deleteSelectionAction; - private ActionFactory.GroupAction groupAction; - private ActionFactory.UngroupAction ungroupAction; - private ActionFactory.SendToBackAction sendToBackAction; - private ActionFactory.BringToFrontAction bringToFrontAction; - private ActionFactory.RenumberAction renumberXAxisAction; - private ActionFactory.RenumberAction renumberYAxisAction; - - private UndoHandler undoHandler; - - public EditMenuPlugin(ISwingUI swingUI) { - this.swingUI = swingUI; - // SecurityManager securityManager = System.getSecurityManager(); - // if (securityManager != null) { - // try { - // securityManager.checkSystemClipboardAccess(); - // } catch (Exception e) { - // e.printStackTrace(); - // } - // } - clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - undoHandler = new UndoHandler(new IUndoListener() { - - @Override - public void actionPerformed(Project currentState) { - plugInPort.loadProject(currentState, false); - } - }); - clipboard.addFlavorListener(new FlavorListener() { - - @Override - public void flavorsChanged(FlavorEvent e) { - refreshActions(); - } - }); - } - - public ActionFactory.CutAction getCutAction() { - if (cutAction == null) { - cutAction = ActionFactory.getInstance().createCutAction(plugInPort, clipboard, this); - } - return cutAction; - } - - public ActionFactory.CopyAction getCopyAction() { - if (copyAction == null) { - copyAction = ActionFactory.getInstance().createCopyAction(plugInPort, clipboard, this); - } - return copyAction; - } - - public ActionFactory.PasteAction getPasteAction() { - if (pasteAction == null) { - pasteAction = ActionFactory.getInstance().createPasteAction(plugInPort, clipboard); - } - return pasteAction; - } - - public ActionFactory.EditSelectionAction getEditSelectionAction() { - if (editSelectionAction == null) { - editSelectionAction = ActionFactory.getInstance().createEditSelectionAction(plugInPort); - } - return editSelectionAction; - } - - public ActionFactory.DeleteSelectionAction getDeleteSelectionAction() { - if (deleteSelectionAction == null) { - deleteSelectionAction = ActionFactory.getInstance().createDeleteSelectionAction( - plugInPort); - } - return deleteSelectionAction; - } - - public ActionFactory.GroupAction getGroupAction() { - if (groupAction == null) { - groupAction = ActionFactory.getInstance().createGroupAction(plugInPort); - } - return groupAction; - } - - public ActionFactory.UngroupAction getUngroupAction() { - if (ungroupAction == null) { - ungroupAction = ActionFactory.getInstance().createUngroupAction(plugInPort); - } - return ungroupAction; - } - - public ActionFactory.SendToBackAction getSendToBackAction() { - if (sendToBackAction == null) { - sendToBackAction = ActionFactory.getInstance().createSendToBackAction(plugInPort); - } - return sendToBackAction; - } - - public ActionFactory.BringToFrontAction getBringToFrontAction() { - if (bringToFrontAction == null) { - bringToFrontAction = ActionFactory.getInstance().createBringToFrontAction(plugInPort); - } - return bringToFrontAction; - } - - public ActionFactory.RenumberAction getRenumberXAxisAction() { - if (renumberXAxisAction == null) { - renumberXAxisAction = ActionFactory.getInstance() - .createRenumberAction(plugInPort, true); - } - return renumberXAxisAction; - } - - public ActionFactory.RenumberAction getRenumberYAxisAction() { - if (renumberYAxisAction == null) { - renumberYAxisAction = ActionFactory.getInstance().createRenumberAction(plugInPort, - false); - } - return renumberYAxisAction; - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - - ActionFactory actionFactory = ActionFactory.getInstance(); - - swingUI.injectMenuAction(undoHandler.getUndoAction(), EDIT_TITLE); - swingUI.injectMenuAction(undoHandler.getRedoAction(), EDIT_TITLE); - swingUI.injectMenuAction(null, EDIT_TITLE); - swingUI.injectMenuAction(getCutAction(), EDIT_TITLE); - swingUI.injectMenuAction(getCopyAction(), EDIT_TITLE); - swingUI.injectMenuAction(getPasteAction(), EDIT_TITLE); - swingUI.injectMenuAction(null, EDIT_TITLE); - swingUI.injectMenuAction(actionFactory.createSelectAllAction(plugInPort), EDIT_TITLE); - swingUI.injectMenuAction(getEditSelectionAction(), EDIT_TITLE); - swingUI.injectMenuAction(getDeleteSelectionAction(), EDIT_TITLE); - swingUI.injectMenuAction(getGroupAction(), EDIT_TITLE); - swingUI.injectMenuAction(getUngroupAction(), EDIT_TITLE); - swingUI.injectMenuAction(getSendToBackAction(), EDIT_TITLE); - swingUI.injectMenuAction(getBringToFrontAction(), EDIT_TITLE); - swingUI.injectMenuAction(null, EDIT_TITLE); - swingUI.injectSubmenu(RENUMBER_TITLE, IconLoader.Sort.getIcon(), EDIT_TITLE); - swingUI.injectMenuAction(getRenumberXAxisAction(), RENUMBER_TITLE); - swingUI.injectMenuAction(getRenumberYAxisAction(), RENUMBER_TITLE); - swingUI.injectMenuAction(null, EDIT_TITLE); - swingUI.injectMenuAction(actionFactory.createEditProjectAction(plugInPort), EDIT_TITLE); - - refreshActions(); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.SELECTION_CHANGED, EventType.PROJECT_MODIFIED); - } - - @Override - public void processMessage(EventType eventType, Object... params) { - switch (eventType) { - case SELECTION_CHANGED: - refreshActions(); - break; - case PROJECT_MODIFIED: - undoHandler.stateChanged((Project) params[0], (Project) params[1], (String) params[2]); - break; - } - } - - private void refreshActions() { - boolean enabled = !plugInPort.getSelectedComponents().isEmpty(); - getCutAction().setEnabled(enabled); - getCopyAction().setEnabled(enabled); - try { - getPasteAction().setEnabled( - clipboard.isDataFlavorAvailable(ComponentTransferable.listFlavor)); - } catch (Exception e) { - getPasteAction().setEnabled(false); - } - getEditSelectionAction().setEnabled(enabled); - getDeleteSelectionAction().setEnabled(enabled); - getGroupAction().setEnabled(enabled); - getUngroupAction().setEnabled(enabled); - getSendToBackAction().setEnabled(enabled); - getBringToFrontAction().setEnabled(enabled); - } - - // ClipboardOwner - - @Override - public void lostOwnership(Clipboard clipboard, Transferable contents) { - refreshActions(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomDialog.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomDialog.java deleted file mode 100644 index b3b51d4c..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomDialog.java +++ /dev/null @@ -1,180 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.awt.BorderLayout; -import java.awt.event.ActionEvent; -import java.io.File; -import java.io.IOException; -import java.util.Arrays; -import java.util.List; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JButton; -import javax.swing.JDialog; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; - -import org.diylc.images.IconLoader; -import org.diylc.swing.gui.DialogFactory; - -import com.diyfever.gui.export.TableExporter; -import com.diyfever.gui.objecttable.ObjectListTable; - -public class BomDialog extends JDialog { - - private static final long serialVersionUID = 1L; - - private ObjectListTable table; - private JPanel toolbar; - - public BomDialog(JFrame parent, List bom) { - super(parent, "Bill of Materials"); - setContentPane(createMainPanel()); - getTable().setData(bom); - pack(); - setLocationRelativeTo(parent); - } - - @Override - public void setVisible(boolean b) { - super.setVisible(b); - if (b) { - getTable().autoFit(Arrays.asList(3)); - } - } - - private JPanel createMainPanel() { - JPanel mainPanel = new JPanel(); - mainPanel.setLayout(new BorderLayout()); - mainPanel.add(getToolbar(), BorderLayout.NORTH); - mainPanel.add(new JScrollPane(getTable()), BorderLayout.CENTER); - return mainPanel; - } - - private ObjectListTable getTable() { - if (table == null) { - try { - table = new ObjectListTable(BomEntry.class, new String[] { "getName", - "getValue", "getQuantity", "getNotes/setNotes" }, null); - } catch (SecurityException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } - } - return table; - } - - private JPanel getToolbar() { - if (toolbar == null) { - toolbar = new JPanel(); - toolbar.add(new JButton(new SaveToExcelAction())); - toolbar.add(new JButton(new SaveToCSVAction())); - toolbar.add(new JButton(new SaveToPNGAction())); - toolbar.add(new JButton(new SaveToHTMLAction())); - } - return toolbar; - } - - class SaveToExcelAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public SaveToExcelAction() { - super(); - putValue(Action.NAME, "Save to Excel"); - putValue(Action.SMALL_ICON, IconLoader.Excel.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.EXCEL.getFilter(), null, - FileFilterEnum.EXCEL.getExtensions()[0], null); - if (file != null) { - try { - TableExporter.getInstance().exportToExcel(getTable(), file); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } - - class SaveToCSVAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public SaveToCSVAction() { - super(); - putValue(Action.NAME, "Save to CSV"); - putValue(Action.SMALL_ICON, IconLoader.CSV.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - File file = DialogFactory.getInstance().showSaveDialog(FileFilterEnum.CSV.getFilter(), - null, FileFilterEnum.CSV.getExtensions()[0], null); - if (file != null) { - try { - TableExporter.getInstance().exportToCSV(getTable(), file); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } - - class SaveToHTMLAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public SaveToHTMLAction() { - super(); - putValue(Action.NAME, "Save to HTML"); - putValue(Action.SMALL_ICON, IconLoader.HTML.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - File file = DialogFactory.getInstance().showSaveDialog(FileFilterEnum.HTML.getFilter(), - null, FileFilterEnum.HTML.getExtensions()[0], null); - if (file != null) { - try { - TableExporter.getInstance().exportToHTML(getTable(), file); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } - - class SaveToPNGAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public SaveToPNGAction() { - super(); - putValue(Action.NAME, "Save to PNG"); - putValue(Action.SMALL_ICON, IconLoader.Image.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - File file = DialogFactory.getInstance().showSaveDialog(FileFilterEnum.PNG.getFilter(), - null, FileFilterEnum.PNG.getExtensions()[0], null); - if (file != null) { - try { - TableExporter.getInstance().exportToPNG(getTable(), file); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomEntry.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomEntry.java deleted file mode 100644 index 550a21d0..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomEntry.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.diylc.swing.plugins.file; - -public class BomEntry { - - private String name; - private String value; - private Integer quantity; - private String notes; - - public BomEntry(String name, String value, int quantity) { - super(); - this.name = name; - this.value = value; - this.quantity = quantity; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public Integer getQuantity() { - return quantity; - } - - public void setQuantity(Integer quantity) { - this.quantity = quantity; - } - - public String getNotes() { - return notes; - } - - public void setNotes(String notes) { - this.notes = notes; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((notes == null) ? 0 : notes.hashCode()); - result = prime * result + quantity; - result = prime * result + ((value == null) ? 0 : value.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BomEntry other = (BomEntry) obj; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (notes == null) { - if (other.notes != null) - return false; - } else if (!notes.equals(other.notes)) - return false; - if (quantity != other.quantity) - return false; - if (value == null) { - if (other.value != null) - return false; - } else if (!value.equals(other.value)) - return false; - return true; - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomMaker.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomMaker.java deleted file mode 100644 index 1c3d7d73..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomMaker.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.diylc.core.IDIYComponent; - -public class BomMaker { - - private static BomMaker instance; - - public static BomMaker getInstance() { - if (instance == null) { - instance = new BomMaker(); - } - return instance; - } - - private BomMaker() { - } - - public List createBom(List> components) { - Map entryMap = new HashMap(); - for (IDIYComponent component : components) { - String name = component.getName(); - String value = component.getValue() == null ? null : component.getValue().toString(); - if ((name != null) && (value != null)) { - String key = name + "|" + value; - if (entryMap.containsKey(key)) { - BomEntry entry = entryMap.get(key); - entry.setQuantity(entry.getQuantity() + 1); - } else { - entryMap.put(key, new BomEntry(name, value, 1)); - } - } - } - List bom = new ArrayList(entryMap.values()); - Collections.sort(bom, new Comparator() { - - @Override - public int compare(BomEntry o1, BomEntry o2) { - int compare = o1.getName().compareToIgnoreCase(o2.getName()); - if (compare != 0) { - return compare; - } - return o1.getValue().compareToIgnoreCase(o2.getValue()); - } - }); - return bom; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/FileFilterEnum.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/FileFilterEnum.java deleted file mode 100644 index 508ad906..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/FileFilterEnum.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.io.File; - -import javax.swing.filechooser.FileFilter; - -public enum FileFilterEnum { - - PNG("PNG Images (*.png)", "png"), PDF("PDF Files (*.pdf)", "pdf"), DIY( - "DIY Project Files (*.diy)", "diy"), EXCEL("Excel Workbooks (*.xls)", "xls"), CSV( - "Comma Separated Files (*.csv)", "csv"), HTML("HTML Files (*.html)", "html"), IMAGES( - "Image Files (*.png, *.jpg, *.gif)", "png", "jpg", "gif"); - - FileFilter filter; - String[] extensions; - - private FileFilterEnum(final String description, final String... extensions) { - this.extensions = extensions; - filter = new FileFilter() { - - @Override - public boolean accept(File f) { - if (f.isDirectory()) { - return true; - } - String fileExt = f.getName(); - fileExt = fileExt.substring(fileExt.lastIndexOf('.') + 1).toLowerCase(); - for (String ext : extensions) { - if (ext.equals(fileExt)) { - return true; - } - } - return false; - } - - @Override - public String getDescription() { - return description; - } - }; - } - - public FileFilter getFilter() { - return filter; - } - - public String[] getExtensions() { - return extensions; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/FileMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/FileMenuPlugin.java deleted file mode 100644 index aacd1d81..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/FileMenuPlugin.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.util.EnumSet; - -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.images.IconLoader; -import org.diylc.swing.ActionFactory; -import org.diylc.swing.ISwingUI; - -/** - * Entry point class for File management utilities. - * - * @author Branislav Stojkovic - */ -public class FileMenuPlugin implements IPlugIn { - - private static final String FILE_TITLE = "File"; - private static final String TRACE_MASK_TITLE = "Trace Mask"; - - private ProjectDrawingProvider drawingProvider; - private TraceMaskDrawingProvider traceMaskDrawingProvider; - - private ISwingUI swingUI; - - public FileMenuPlugin(ISwingUI swingUI) { - super(); - this.swingUI = swingUI; - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.drawingProvider = new ProjectDrawingProvider(plugInPort, false, true); - this.traceMaskDrawingProvider = new TraceMaskDrawingProvider(plugInPort); - - ActionFactory actionFactory = ActionFactory.getInstance(); - swingUI.injectMenuAction(actionFactory.createNewAction(plugInPort), FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createOpenAction(plugInPort, swingUI), FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createSaveAction(plugInPort, swingUI), FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createSaveAsAction(plugInPort, swingUI), FILE_TITLE); - swingUI.injectMenuAction(null, FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createExportPDFAction(drawingProvider, swingUI), - FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createExportPNGAction(drawingProvider, swingUI), - FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createPrintAction(drawingProvider), FILE_TITLE); - swingUI.injectSubmenu(TRACE_MASK_TITLE, IconLoader.TraceMask.getIcon(), FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createExportPDFAction(traceMaskDrawingProvider, - swingUI), TRACE_MASK_TITLE); - swingUI.injectMenuAction(actionFactory.createExportPNGAction(traceMaskDrawingProvider, - swingUI), TRACE_MASK_TITLE); - swingUI.injectMenuAction(actionFactory.createPrintAction(traceMaskDrawingProvider), - TRACE_MASK_TITLE); - swingUI.injectMenuAction(actionFactory.createBomAction(plugInPort), FILE_TITLE); - swingUI.injectMenuAction(null, FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createExitAction(plugInPort), FILE_TITLE); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return null; - } - - @Override - public void processMessage(EventType eventType, Object... params) { - // Do nothing. - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java deleted file mode 100644 index 6290a124..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.util.EnumSet; - -import org.diylc.common.DrawOption; -import org.diylc.common.IPlugInPort; - -import com.diyfever.gui.IDrawingProvider; -import com.diyfever.gui.miscutils.ConfigurationManager; - -/** - * {@link IDrawingProvider} implementation that uses {@link IPlugInPort} to draw - * a project onto the canvas. - * - * @author Branislav Stojkovic - */ -public class ProjectDrawingProvider implements IDrawingProvider { - - private IPlugInPort plugInPort; - private boolean useZoom; - private boolean showGridWhenNeeded; - - public ProjectDrawingProvider(IPlugInPort plugInPort, boolean useZoom, - boolean showGridWhenNeeded) { - super(); - this.plugInPort = plugInPort; - this.useZoom = useZoom; - this.showGridWhenNeeded = showGridWhenNeeded; - } - - @Override - public void draw(Graphics g) { - EnumSet drawOptions = EnumSet.of(DrawOption.ANTIALIASING); - if (useZoom) { - drawOptions.add(DrawOption.ZOOM); - } - if (showGridWhenNeeded - && ConfigurationManager.getInstance().readBoolean(IPlugInPort.EXPORT_GRID_KEY, - false)) { - drawOptions.add(DrawOption.GRID); - } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.OUTLINE_KEY, false)) { - drawOptions.add(DrawOption.OUTLINE_MODE); - } - plugInPort.draw((Graphics2D) g, drawOptions, null); - } - - @Override - public Dimension getSize() { - return plugInPort.getCanvasDimensions(useZoom); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/ProjectPreview.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/ProjectPreview.java deleted file mode 100644 index d5476264..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/ProjectPreview.java +++ /dev/null @@ -1,163 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.File; -import java.io.FileInputStream; -import java.util.EnumSet; -import java.util.List; -import java.util.Set; - -import javax.swing.JComponent; -import javax.swing.JFileChooser; -import javax.swing.JLabel; -import javax.swing.JPanel; - -import org.diylc.common.DrawOption; -import org.diylc.common.IPlugInPort; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IView; -import org.diylc.core.Project; -import org.diylc.presenter.Presenter; - -import com.diyfever.gui.IFileChooserAccessory; -import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.io.xml.DomDriver; - -/** - * {@link JComponent} that shows preview of the selected project in - * {@link JFileChooser}. It's hooked onto {@link JFileChooser} as - * {@link PropertyChangeListener} and refreshes when file is selected. - * - * @author Branislav Stojkovic - */ -public class ProjectPreview extends JPanel implements PropertyChangeListener, IFileChooserAccessory { - - private static final long serialVersionUID = 1L; - - private IPlugInPort presenter; - private XStream xStream; - private Project emptyProject; - private RenderComponent renderComponent; - private JLabel nameLabel; - - public ProjectPreview() { - super(); - - setPreferredSize(new Dimension(140, 128)); - presenter = new Presenter(new IView() { - - @Override - public int showConfirmDialog(String message, String title, int optionType, - int messageType) { - return 0; - } - - @Override - public void showMessage(String message, String title, int messageType) { - } - - @Override - public boolean editProperties(List properties, Set defaultedProperties) { - return false; - } - }); - xStream = new XStream(new DomDriver()); - - emptyProject = new Project(); - emptyProject.setTitle(""); - - renderComponent = new RenderComponent(); - nameLabel = new JLabel(); - - // setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - add(renderComponent); - add(nameLabel); - } - - // PropertyChangeListener - - @Override - public void propertyChange(PropertyChangeEvent evt) { - boolean update = false; - String prop = evt.getPropertyName(); - - Project selectedProject = emptyProject; - if (JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(prop)) { - update = true; - } else if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(prop)) { - File selectedFile = (File) evt.getNewValue(); - try { - FileInputStream in = new FileInputStream(selectedFile); - selectedProject = (Project) xStream.fromXML(in); - in.close(); - } catch (Exception e) { - } - update = true; - } - - nameLabel.setText(selectedProject.getTitle()); - presenter.loadProject(selectedProject, true); - - if (update) { - if (renderComponent.isShowing()) { - renderComponent.repaint(); - } - } - } - - class RenderComponent extends JComponent { - - private static final long serialVersionUID = 1L; - - public RenderComponent() { - setPreferredSize(new Dimension(128, 96)); - // setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4)); - } - - @Override - public void paint(Graphics g) { - super.paint(g); - - Graphics2D g2d = (Graphics2D) g; - Dimension d = presenter.getCanvasDimensions(false); - // System.out.println(d); - Rectangle rect = getBounds(); - // System.out.println(rect); - - double projectRatio = d.getWidth() / d.getHeight(); - double actualRatio = rect.getWidth() / rect.getHeight(); - double zoomRatio; - if (projectRatio > actualRatio) { - zoomRatio = rect.getWidth() / d.getWidth(); - } else { - zoomRatio = rect.getHeight() / d.getHeight(); - } - // d.setSize(d.getWidth() * zoomRatio, d.getHeight() * zoomRatio); - // int x = (int) (rect.getWidth() - d.getWidth() * zoomRatio) / 2; - // int y = (int) (rect.getHeight() - d.getHeight() * zoomRatio) / 2; - - // System.out.println(x + "," + y); - - // g2d.translate(x, y); - g2d.scale(zoomRatio, zoomRatio); - presenter.draw(g2d, EnumSet.noneOf(DrawOption.class), null); - - g2d.setColor(Color.black); - g2d.drawRect(0, 0, d.width - (int) (1 / zoomRatio), d.height - (int) (1 / zoomRatio)); - } - } - - // IFileChooserAccessory - - @Override - public void install(JFileChooser fileChooser) { - fileChooser.setAccessory(this); - fileChooser.addPropertyChangeListener(this); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java deleted file mode 100644 index 06cb6aae..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.util.EnumSet; - -import org.diylc.common.DrawOption; -import org.diylc.common.IComponentFiler; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; -import org.diylc.presenter.ComponentZOrderFiler; - -import com.diyfever.gui.IDrawingProvider; - -/** - * {@link IDrawingProvider} implementation that uses {@link IPlugInPort} to draw - * a project onto the canvas. - * - * @author Branislav Stojkovic - */ -public class TraceMaskDrawingProvider implements IDrawingProvider { - - private IPlugInPort plugInPort; - private IComponentFiler filter; - - public TraceMaskDrawingProvider(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - this.filter = new ComponentZOrderFiler(IDIYComponent.TRACE); - } - - @Override - public void draw(Graphics g) { - plugInPort.draw((Graphics2D) g, EnumSet.of(DrawOption.ANTIALIASING), - this.filter); - } - - @Override - public Dimension getSize() { - return plugInPort.getCanvasDimensions(false); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java deleted file mode 100644 index 3fb764c9..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.diylc.swing.plugins.help; - -import java.awt.event.ActionEvent; -import java.util.EnumSet; - -import javax.swing.AbstractAction; -import javax.swing.Icon; -import javax.swing.JOptionPane; - -import org.apache.log4j.Logger; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -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.LinkLabel; -import com.diyfever.gui.miscutils.Utils; - -/** - * Entry point class for help-related utilities. - * - * @author Branislav Stojkovic - */ -public class HelpMenuPlugin implements IPlugIn { - - private static final String HELP_TITLE = "Help"; - - public static String MANUAL_URL = "http://code.google.com/p/diy-layout-creator/wiki/Manual"; - public static String FAQ_URL = "http://code.google.com/p/diy-layout-creator/wiki/FAQ"; - public static String COMPONENT_URL = "http://code.google.com/p/diy-layout-creator/wiki/ComponentAPI"; - public static String PLUGIN_URL = "http://code.google.com/p/diy-layout-creator/wiki/PluginAPI"; - public static String BUG_URL = "http://code.google.com/p/diy-layout-creator/issues/entry"; - public static String DONATE_URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=25161"; - - private IPlugInPort plugInPort; - 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 - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - } - - @Override - public EnumSet getSubscribedEventTypes() { - return null; - } - - @Override - public void processMessage(EventType eventType, Object... params) { - } - - private AboutDialog getAboutDialog() { - if (aboutDialog == null) { - aboutDialog = DialogFactory.getInstance().createAboutDialog("DIY Layout Creator", - IconLoader.IconLarge.getIcon(), - plugInPort.getCurrentVersionNumber().toString(), "Branislav Stojkovic", - "diylc.org", "bancika@gmail.com", ""); - } - return aboutDialog; - } - - class AboutAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public AboutAction() { - super(); - putValue(AbstractAction.NAME, "About"); - putValue(AbstractAction.SMALL_ICON, IconLoader.About.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - getAboutDialog().setVisible(true); - } - } - - class NavigateURLAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private String url; - - public NavigateURLAction(String name, Icon icon, String url) { - super(); - this.url = url; - putValue(AbstractAction.NAME, name); - putValue(AbstractAction.SMALL_ICON, icon); - } - - @Override - public void actionPerformed(ActionEvent e) { - try { - Utils.openURL(url); - } catch (Exception e1) { - Logger.getLogger(LinkLabel.class).error("Could not launch default browser", e1); - } - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/layers/LayersMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/layers/LayersMenuPlugin.java deleted file mode 100644 index bf9b314a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/layers/LayersMenuPlugin.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.diylc.swing.plugins.layers; - -import java.awt.event.ActionEvent; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.swing.AbstractAction; -import javax.swing.Action; - -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IView; -import org.diylc.swing.ISwingUI; - -public class LayersMenuPlugin implements IPlugIn { - - private static final String LOCK_LAYERS_TITLE = "Lock Layers"; - - private IPlugInPort plugInPort; - private Map lockActionMap; - - public LayersMenuPlugin(ISwingUI swingUI) { - lockActionMap = new HashMap(); - for (Layer layer : Layer.values()) { - final int zOrder = layer.getZOrder(); - AbstractAction action = new AbstractAction(layer.getTitle()) { - - private static final long serialVersionUID = 1L; - - @Override - public void actionPerformed(ActionEvent e) { - LayersMenuPlugin.this.plugInPort.setLayerLocked(zOrder, - (Boolean) getValue(Action.SELECTED_KEY)); - } - }; - action.putValue(IView.CHECK_BOX_MENU_ITEM, true); - lockActionMap.put(layer, action); - swingUI.injectMenuAction(action, LOCK_LAYERS_TITLE); - } - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.LAYER_STATE_CHANGED); - } - - @SuppressWarnings("unchecked") - @Override - public void processMessage(EventType eventType, Object... params) { - if (eventType == EventType.LAYER_STATE_CHANGED) { - Set lockedLayers = (Set) params[0]; - for (Layer layer : Layer.values()) { - lockActionMap.get(layer).putValue(Action.SELECTED_KEY, - lockedLayers.contains(layer.getZOrder())); - } - } - } - - static enum Layer { - CHASSIS("Chassis", IDIYComponent.CHASSIS), BOARD("Board", IDIYComponent.BOARD), TRACE( - "Trace", IDIYComponent.TRACE), COMPONENT("Component", IDIYComponent.COMPONENT), TEXT( - "Text", IDIYComponent.TEXT); - - String title; - int zOrder; - - private Layer(String title, int order) { - this.title = title; - zOrder = order; - } - - public String getTitle() { - return title; - } - - public int getZOrder() { - return zOrder; - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/OnlineManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/OnlineManager.java deleted file mode 100644 index cd988389..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/OnlineManager.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.diylc.swing.plugins.online; - -import java.awt.event.ActionEvent; -import java.util.EnumSet; - -import javax.swing.AbstractAction; -import javax.swing.SwingWorker; - -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.images.IconLoader; -import org.diylc.swing.gui.DialogFactory; -import org.diylc.swing.plugins.online.presenter.LibraryPresenter; -import org.diylc.swing.plugins.online.view.LoginDialog; -import org.diylc.swing.plugins.online.view.NewUserDialog; -import org.diylc.swing.plugins.online.view.UploadDialog; - -import com.diyfever.gui.ProgressDialog; - -public class OnlineManager implements IPlugIn { - - private static final String ONLINE_TITLE = "Online"; - - private IPlugInPort plugInPort; - private LibraryPresenter libraryPresenter; - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - this.libraryPresenter = new LibraryPresenter(); - - initialize(); - -// plugInPort.injectMenuAction(new LibraryAction(), ONLINE_TITLE); -// plugInPort.injectMenuAction(null, ONLINE_TITLE); -// plugInPort.injectMenuAction(new LoginAction(), ONLINE_TITLE); -// plugInPort.injectMenuAction(new CreateAccountAction(), ONLINE_TITLE); -// plugInPort.injectMenuAction(null, ONLINE_TITLE); -// plugInPort.injectMenuAction(new UploadAction(), ONLINE_TITLE); -// plugInPort.injectMenuAction(new ManageProjectsAction(), ONLINE_TITLE); - } - - private void initialize() { - SwingWorker worker = new SwingWorker() { - - @Override - protected Void doInBackground() throws Exception { - libraryPresenter.connectDb(); - return null; - } - - @Override - protected void done() { - if (libraryPresenter.isLoggedIn()) { - - } - } - }; - worker.execute(); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return null; - } - - @Override - public void processMessage(EventType eventType, Object... params) { - } - - class LibraryAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public LibraryAction() { - super(); - putValue(AbstractAction.NAME, "Browse Library"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Chest.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - } - } - - class LoginAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public LoginAction() { - super(); - putValue(AbstractAction.NAME, "Log in"); - putValue(AbstractAction.SMALL_ICON, IconLoader.IdCard.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LoginDialog dialog = DialogFactory.getInstance().createLoginDialog(); - dialog.setVisible(true); - } - } - - class CreateAccountAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public CreateAccountAction() { - super(); - putValue(AbstractAction.NAME, "Create New Account"); - putValue(AbstractAction.SMALL_ICON, IconLoader.IdCardAdd.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - NewUserDialog dialog = DialogFactory.getInstance().createNewUserDialog(); - dialog.setVisible(true); - } - } - - class UploadAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public UploadAction() { - super(); - putValue(AbstractAction.NAME, "Upload Project"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Upload.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - UploadDialog dialog = DialogFactory.getInstance().createUploadDialog(); - dialog.setVisible(true); - } - } - - class ManageProjectsAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public ManageProjectsAction() { - super(); - putValue(AbstractAction.NAME, "Manage Projects"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Wrench.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - ProgressDialog dialog = DialogFactory.getInstance().createProgressDialog("Test", - new String[] {}, "Some text", false); - dialog.setVisible(true); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/Test.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/Test.java deleted file mode 100644 index aee1e52b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/Test.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.diylc.swing.plugins.online; - -import org.apache.log4j.BasicConfigurator; -import org.diylc.swing.plugins.online.presenter.LibraryPresenter; - - -public class Test { - - /** - * @param args - * @throws Exception - */ - public static void main(String[] args) throws Exception { - BasicConfigurator.configure(); - LibraryPresenter pres = new LibraryPresenter(); - // pres.createUser("bancika", "pwd", "bancika@gmail.com"); - System.out.println(pres.fetchCategories()); - pres.login("bancika", "pwd"); - int id = pres.fetchMyProjectRows().get(0).getId(); - // InputStream stream = pres.downloadProjectContent(id); - // byte[] buf = new byte[100]; - // int len = stream.read(buf); - System.out.println(pres.downloadProjectContent(id)); - // System.out.println(pres.hashPassword("bancikabancikabancikabancikabancika")); - pres.dispose(); - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/model/ProjectEntity.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/model/ProjectEntity.java deleted file mode 100644 index 228307fa..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/model/ProjectEntity.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.diylc.swing.plugins.online.model; - -import java.awt.event.ActionEvent; -import java.io.Serializable; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JOptionPane; - -public class ProjectEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - private int id; - private String name; - private String description; - private String owner; - private String category; - - public ProjectEntity() { - super(); - } - - public ProjectEntity(int id, String name, String description, String owner, String category) { - super(); - this.id = id; - this.name = name; - this.description = description; - this.owner = owner; - this.category = category; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getOwner() { - return owner; - } - - public void setOwner(String owner) { - this.owner = owner; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public Action getDownload() { - - Action a = new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - JOptionPane.showMessageDialog(null, name); - } - }; - a.putValue(AbstractAction.NAME, "Download"); - return a; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((category == null) ? 0 : category.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + id; - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((owner == null) ? 0 : owner.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ProjectEntity other = (ProjectEntity) obj; - if (category == null) { - if (other.category != null) - return false; - } else if (!category.equals(other.category)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (id != other.id) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (owner == null) { - if (other.owner != null) - return false; - } else if (!owner.equals(other.owner)) - return false; - return true; - } - - @Override - public String toString() { - return name; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java deleted file mode 100644 index 412fabea..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -public class AlreadyExistsException extends Exception { - - private static final long serialVersionUID = 1L; - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java deleted file mode 100644 index e6acd8a4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java +++ /dev/null @@ -1,177 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.diylc.swing.plugins.online.model.ProjectEntity; - - -public class LibraryPresenter { - - private final static Logger LOG = Logger.getLogger(LibraryPresenter.class); - - private static final String DB_HOST = "diy-fever.com"; - private static final String DB_PORT = "3306"; - private static final String DB_USER = "diylc-app"; - private static final String DB_PASS = "zuf7RuS8"; - - private static final String CATEGORY_SQL = "SELECT * FROM diylc.category WHERE 1=1"; - private static final String USER_SQL = "SELECT * FROM diylc.user WHERE name = \"%s\""; - private static final String CREATE_USER_SQL = "INSERT INTO diylc.user (name, password, email) VALUES (\"%s\", \"%s\", \"%s\")"; - private static final String MY_PROJECTS_SQL = "SELECT project_id, name, category_id, description FROM diylc.project WHERE owner_user_id = %s"; - private static final String PROJECT_SQL = "SELECT content FROM diylc.project WHERE project_id = %s"; - private static final String UPLOAD_PROJECT_SQL = "INSERT INTO diylc.project (name, description, content, category_id, owner_user_id) VALUES (\"%s\", \"%s\", \"%s\", %s, %s)"; - private static final String UPDATE_PROJECT_SQL = "UPDATE diylc.project SET name = \"%s\", description = \"%s\", content = \"%s\", category_id = %s WHERE project_id = %s"; - - private MySqlDBManager dbManager; - private MessageDigest messageDigest; - private Integer currentUserId; - - public LibraryPresenter() { - dbManager = new MySqlDBManager(DB_HOST, DB_PORT, DB_USER, DB_PASS); - try { - messageDigest = MessageDigest.getInstance("MD5"); - } catch (NoSuchAlgorithmException e) { - LOG.error("Could not initialize MD5, algorithm not found."); - } - } - - public boolean connectDb() { - try { - dbManager.connectDB(); - return true; - } catch (Exception e) { - LOG.error("Could not connect to the database: " + e.getMessage()); - return false; - } - } - - public void createUser(String userName, String password, String email) throws SQLException, - NotConnectedException, AlreadyExistsException { - LOG.info("Creating user: " + userName); - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - throw new AlreadyExistsException(); - } - dbManager.updateDB(String.format(CREATE_USER_SQL, userName, hashPassword(password), - email)); - resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - LOG.info("Logged in as \"" + userName + "\""); - currentUserId = resultSet.getInt("user_id"); - } - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public boolean login(String userName, String password) throws SQLException, - NotConnectedException { - LOG.info("Logging in as: " + userName); - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - String dbPassword = resultSet.getString("password"); - String hashPassword = hashPassword(password); - if (dbPassword.equals(hashPassword)) { - LOG.info("Logged in as \"" + userName + "\""); - currentUserId = resultSet.getInt("user_id"); - } else { - LOG.info("User name and password do not match."); - } - } - return false; - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public Map fetchCategories() throws SQLException, NotConnectedException { - LOG.info("Fetching categories"); - if (dbManager.isConnected()) { - Map categories = new HashMap(); - ResultSet resultSet = dbManager.getResultSet(CATEGORY_SQL); - while (resultSet.next()) { - categories.put(resultSet.getInt("category_id"), resultSet.getString("name")); - } - return categories; - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public List fetchMyProjectRows() throws NotLoggedInException, - NotConnectedException, SQLException { - if (dbManager.isConnected()) { - if (isLoggedIn()) { - Map categories = fetchCategories(); - List projects = new ArrayList(); - ResultSet resultSet = dbManager.getResultSet(String.format(MY_PROJECTS_SQL, - currentUserId)); - while (resultSet.next()) { - projects.add(new ProjectEntity(resultSet.getInt("project_id"), resultSet - .getString("name"), resultSet.getString("description"), "", categories - .get(resultSet.getInt("category_id")))); - } - return projects; - } else { - LOG.error("Not logged in"); - throw new NotLoggedInException(); - } - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public String downloadProjectContent(int projectId) throws NotConnectedException, - NotExistsException, SQLException { - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(PROJECT_SQL, projectId)); - if (resultSet.next()) { - return resultSet.getString("content"); - } - throw new NotExistsException("Project with id = " + projectId + " does not exist."); - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public List fetchProjectRows(String searchCriteria) { - return null; - } - - public boolean isLoggedIn() { - return currentUserId != null; - } - - public String hashPassword(String password) { - messageDigest.reset(); - byte[] bytes = messageDigest.digest(password.getBytes()); - String md5 = ""; - for (byte b : bytes) { - String str = Integer.toHexString(b); - if (str.length() == 1) { - str = "0" + str; - } - md5 += str.substring(str.length() - 2); - } - return md5; - } - - public void dispose() { - dbManager.closeConnection(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java deleted file mode 100644 index 186ba407..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -import java.sql.Connection; -import java.sql.Driver; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -import org.apache.log4j.Logger; - -public class MySqlDBManager { - - private final static Logger LOG = Logger.getLogger(MySqlDBManager.class); - - protected Connection connection; - protected Statement statement; - protected ResultSet resultSet; - protected String url; - protected String user; - protected String pass; - protected boolean connected; - - public MySqlDBManager(String url, String user, String pass) { - this.url = url; - this.user = user; - this.pass = pass; - this.connected = false; - } - - public MySqlDBManager(String host, String port, String userName, String password) { - this(String.format("jdbc:mysql://%s%s", host, port.trim().equals("") ? "" : (":" + port)), - userName, password); - } - - public void connectDB() throws Exception { - if (!connected) { - Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance(); - DriverManager.registerDriver(driver); - String finalUrl = String.format("%s?user=%s&password=%s", url, user, pass); - LOG.info("Trying to connect to: " + url); - connection = DriverManager.getConnection(finalUrl); - statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_READ_ONLY); - connected = true; - } - } - - public boolean isConnected() { - return connected; - } - - public void closeConnection() { - LOG.info("Closing connection."); - try { - if (resultSet != null) { - resultSet.close(); - } - if (statement != null) { - statement.close(); - } - if (connection != null) { - connection.close(); - } - connected = false; - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public ResultSet getResultSet(String query) throws SQLException { - LOG.info("Executing query: " + query); - resultSet = statement.executeQuery(query); - return resultSet; - } - - public Connection getConnection() { - return connection; - } - - public int updateDB(String query) throws SQLException { - LOG.info("Executing query: " + query); - statement.execute(query); - return statement.getUpdateCount(); - } -} \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotConnectedException.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotConnectedException.java deleted file mode 100644 index 4752625e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotConnectedException.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -public class NotConnectedException extends Exception { - - private static final long serialVersionUID = 1L; - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotExistsException.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotExistsException.java deleted file mode 100644 index 169dcc37..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotExistsException.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -public class NotExistsException extends Exception { - - private static final long serialVersionUID = 1L; - - public NotExistsException(String message) { - super(message); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotLoggedInException.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotLoggedInException.java deleted file mode 100644 index aba9b870..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/presenter/NotLoggedInException.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -public class NotLoggedInException extends Exception { - - private static final long serialVersionUID = 1L; - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/LibraryFrame.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/LibraryFrame.java deleted file mode 100644 index 89f2b839..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/LibraryFrame.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.diylc.swing.plugins.online.view; - -import javax.swing.JFrame; - -public class LibraryFrame extends JFrame { - - private static final long serialVersionUID = 1L; - - public LibraryFrame() { - super("Online Library"); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/LoginDialog.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/LoginDialog.java deleted file mode 100644 index 12c56f1a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/LoginDialog.java +++ /dev/null @@ -1,135 +0,0 @@ -package org.diylc.swing.plugins.online.view; - -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; - -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JPasswordField; -import javax.swing.JTextField; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; - -import com.diyfever.gui.ButtonDialog; - -public class LoginDialog extends ButtonDialog { - - private static final long serialVersionUID = 1L; - - private JPanel mainPanel; - - private JTextField userNameField; - private JPasswordField passwordField; - - private String userName; - private String password; - - public LoginDialog(JFrame owner) { - super(owner, "Login", new String[] { OK, CANCEL }); - setMinimumSize(new Dimension(240, 32)); - layoutGui(); - refreshState(); - } - - public String getUserName() { - return userName; - } - - public String getPassword() { - return password; - } - - @Override - protected JComponent getMainComponent() { - if (mainPanel == null) { - mainPanel = new JPanel(new GridBagLayout()); - mainPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.anchor = GridBagConstraints.LINE_START; - gbc.fill = GridBagConstraints.NONE; - gbc.insets = new Insets(2, 2, 2, 2); - - gbc.gridx = 0; - - gbc.gridy = 0; - mainPanel.add(new JLabel("User Name:"), gbc); - - gbc.gridy = 1; - mainPanel.add(new JLabel("Password:"), gbc); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1; - - gbc.gridy = 0; - mainPanel.add(getUserNameField(), gbc); - - gbc.gridy = 1; - mainPanel.add(getPasswordField(), gbc); - } - return mainPanel; - } - - private void refreshState() { - this.userName = getUserNameField().getText(); - this.password = new String(getPasswordField().getPassword()); - - JButton okButton = getButton(OK); - okButton.setEnabled((this.userName.length() > 0) && (this.password.length() > 0)); - } - - private JTextField getUserNameField() { - if (userNameField == null) { - userNameField = new JTextField(); - userNameField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return userNameField; - } - - private JPasswordField getPasswordField() { - if (passwordField == null) { - passwordField = new JPasswordField(); - passwordField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return passwordField; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/NewUserDialog.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/NewUserDialog.java deleted file mode 100644 index 1f914071..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/NewUserDialog.java +++ /dev/null @@ -1,210 +0,0 @@ -package org.diylc.swing.plugins.online.view; - -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; - -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JPasswordField; -import javax.swing.JTextField; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; - -import com.diyfever.gui.ButtonDialog; - -public class NewUserDialog extends ButtonDialog { - - private static final long serialVersionUID = 1L; - - private JPanel mainPanel; - - private JTextField userNameField; - private JPasswordField passwordField; - private JPasswordField confirmPasswordField; - private JTextField emailField; - - private String userName; - private String password; - private String email; - - public NewUserDialog(JFrame owner) { - super(owner, "New Account", new String[] { OK, CANCEL }); - setMinimumSize(new Dimension(240, 32)); - layoutGui(); - refreshState(); - userNameField.setText(System.getProperty("user.name")); - } - - public String getUserName() { - return userName; - } - - public String getPassword() { - return password; - } - - public String getEmail() { - return email; - } - - @Override - protected JComponent getMainComponent() { - if (mainPanel == null) { - mainPanel = new JPanel(new GridBagLayout()); - mainPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.anchor = GridBagConstraints.LINE_START; - gbc.fill = GridBagConstraints.NONE; - gbc.insets = new Insets(2, 2, 2, 2); - - gbc.gridx = 0; - - gbc.gridy = 0; - mainPanel.add(new JLabel("User Name:"), gbc); - - gbc.gridy = 1; - mainPanel.add(new JLabel("Password:"), gbc); - - gbc.gridy = 2; - mainPanel.add(new JLabel("Confirm Password:"), gbc); - - gbc.gridy = 3; - mainPanel.add(new JLabel("eMail:"), gbc); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1; - - gbc.gridy = 0; - mainPanel.add(getUserNameField(), gbc); - - gbc.gridy = 1; - mainPanel.add(getPasswordField(), gbc); - - gbc.gridy = 2; - mainPanel.add(getConfirmPasswordField(), gbc); - - gbc.gridy = 3; - mainPanel.add(getEmailField(), gbc); - } - return mainPanel; - } - - private void refreshState() { - this.userName = getUserNameField().getText(); - String password = new String(getPasswordField().getPassword()); - String confirmPassword = new String(getConfirmPasswordField().getPassword()); - if (password.equals(confirmPassword)) { - this.password = password; - } else { - this.password = null; - } - this.email = getEmailField().getText(); - JButton okButton = getButton(OK); - okButton.setEnabled((this.userName.length() > 0) && (this.password != null) - && (this.password.length() > 0)); - } - - private JTextField getUserNameField() { - if (userNameField == null) { - userNameField = new JTextField(); - userNameField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return userNameField; - } - - private JPasswordField getPasswordField() { - if (passwordField == null) { - passwordField = new JPasswordField(); - passwordField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return passwordField; - } - - private JPasswordField getConfirmPasswordField() { - if (confirmPasswordField == null) { - confirmPasswordField = new JPasswordField(); - confirmPasswordField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return confirmPasswordField; - } - - private JTextField getEmailField() { - if (emailField == null) { - emailField = new JTextField(); - emailField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return emailField; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/UploadDialog.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/UploadDialog.java deleted file mode 100644 index 5c1249c2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/UploadDialog.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.diylc.swing.plugins.online.view; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; - -import javax.swing.BorderFactory; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.UIManager; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import com.diyfever.gui.ButtonDialog; - -public class UploadDialog extends ButtonDialog { - - private static final long serialVersionUID = 1L; - - private static final String BULLET = "   • "; - private static final String TERMS_HTML = "Terms of Service

" - + BULLET - + "Online Library is provided free of charge for DIY Layout Creator users.
" - + BULLET - + "Only finished and verified projects may be uploaded to the library. Online Library is not a repository for unfinished projects and temprary work.
" - + BULLET - + "Projects uploaded to the library may be reviewed, modified or deleted by the administrator without notice.
" - + BULLET - + "Once uploaded, project becomes avaialble to all other users. Anyone may use the project, modify it and upload modified version. When modifying an existing projects credit for the original author must be left.
" - + BULLET - + "You can not use Online Library to advertise products or services.
" - + BULLET - + "Users that do not follow these terms may be banned from the server, with or without notice.
" - + BULLET + "Administrator is not responsible for library contents.
" + ""; - - private JPanel mainPanel; - private JLabel termsLabel; - private JCheckBox agreeBox; - - public UploadDialog(JFrame owner) { - super(owner, "Upload", new String[] { OK, CANCEL }); - layoutGui(); - refreshState(); - } - - @Override - protected JComponent getMainComponent() { - if (mainPanel == null) { - mainPanel = new JPanel(new GridBagLayout()); - mainPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.anchor = GridBagConstraints.LINE_START; - gbc.fill = GridBagConstraints.BOTH; - gbc.weightx = 1; - gbc.weighty = 1; - gbc.insets = new Insets(2, 2, 2, 2); - - gbc.gridx = 0; - gbc.gridy = 0; - mainPanel.add(getTermsLabel(), gbc); - - gbc.gridy = 1; - gbc.anchor = GridBagConstraints.CENTER; - gbc.fill = GridBagConstraints.NONE; - gbc.weightx = 0; - gbc.weighty = 0; - mainPanel.add(getAgreeBox(), gbc); - } - return mainPanel; - } - - private void refreshState() { - getButton(OK).setEnabled(getAgreeBox().isSelected()); - } - - private JCheckBox getAgreeBox() { - if (agreeBox == null) { - agreeBox = new JCheckBox("I agree to these terms"); - agreeBox.addChangeListener(new ChangeListener() { - - @Override - public void stateChanged(ChangeEvent e) { - refreshState(); - } - }); - } - return agreeBox; - } - - private JLabel getTermsLabel() { - if (termsLabel == null) { - termsLabel = new JLabel(); - termsLabel.setOpaque(true); - termsLabel.setBackground(UIManager.getColor("ToolTip.background")); - termsLabel.setBorder(BorderFactory.createCompoundBorder(BorderFactory - .createEtchedBorder(), BorderFactory.createEmptyBorder(2, 2, 2, 2))); - termsLabel.setText(TERMS_HTML); - } - return termsLabel; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/statusbar/StatusBar.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/statusbar/StatusBar.java deleted file mode 100644 index c2ac05e4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/statusbar/StatusBar.java +++ /dev/null @@ -1,301 +0,0 @@ -package org.diylc.swing.plugins.statusbar; - -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Point; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.geom.Point2D; -import java.text.DecimalFormat; -import java.text.Format; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - -import javax.swing.BorderFactory; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.SwingUtilities; - -import org.apache.log4j.Logger; -import org.diylc.common.BadPositionException; -import org.diylc.common.ComponentType; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; -import org.diylc.images.IconLoader; -import org.diylc.presenter.Presenter; -import org.diylc.swing.ISwingUI; - -import com.diyfever.gui.MemoryBar; -import com.diyfever.gui.miscutils.ConfigurationManager; -import com.diyfever.gui.miscutils.PercentageListCellRenderer; -import com.diyfever.gui.miscutils.Utils; -import com.diyfever.gui.update.UpdateLabel; - -public class StatusBar extends JPanel implements IPlugIn { - - 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"; - private static final Format sizeFormat = new DecimalFormat("0.##"); - - private JComboBox zoomBox; - private UpdateLabel updateLabel; - private MemoryBar memoryPanel; - private JLabel statusLabel; - private JLabel sizeLabel; - - private IPlugInPort plugInPort; - - // State variables - private ComponentType componentSlot; - private Point controlPointSlot; - private List componentNamesUnderCursor; - private List selectedComponentNames; - private List stuckComponentNames; - private String statusMessage; - - public StatusBar(ISwingUI swingUI) { - super(); - - setLayout(new GridBagLayout()); - - try { - swingUI.injectGUIComponent(this, SwingUtilities.BOTTOM); - } catch (BadPositionException e) { - LOG.error("Could not install status bar", e); - } - } - - private JComboBox getZoomBox() { - if (zoomBox == null) { - zoomBox = new JComboBox(plugInPort.getAvailableZoomLevels()); - zoomBox.setSelectedItem(plugInPort.getZoomLevel()); - zoomBox.setFocusable(false); - zoomBox.setRenderer(new PercentageListCellRenderer()); - zoomBox.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - plugInPort.setZoomLevel((Double) zoomBox.getSelectedItem()); - } - }); - } - return zoomBox; - } - - private UpdateLabel getUpdateLabel() { - if (updateLabel == null) { - updateLabel = new UpdateLabel(plugInPort.getCurrentVersionNumber(), UPDATE_URL); - // updateLabel.setBorder(BorderFactory.createCompoundBorder( - // BorderFactory.createEtchedBorder(), BorderFactory - // .createEmptyBorder(2, 4, 2, 4))); - updateLabel.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 4)); - } - return updateLabel; - } - - private MemoryBar getMemoryPanel() { - if (memoryPanel == null) { - memoryPanel = new MemoryBar(false); - } - return memoryPanel; - } - - private JLabel getStatusLabel() { - if (statusLabel == null) { - statusLabel = new JLabel(); - statusLabel.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0)); - } - return statusLabel; - } - - public JLabel getSizeLabel() { - if (sizeLabel == null) { - sizeLabel = new JLabel(IconLoader.Size.getIcon()); - sizeLabel.setFocusable(true); - sizeLabel.setToolTipText("Click to calculate selection size"); - sizeLabel.addMouseListener(new MouseAdapter() { - - @Override - public void mouseClicked(MouseEvent e) { - Point2D size = plugInPort.calculateSelectionDimension(); - boolean metric = ConfigurationManager.getInstance().readBoolean( - Presenter.METRIC_KEY, true); - String text; - if (size == null) { - text = "Selection is empty."; - } else { - text = "Selection size: " + sizeFormat.format(size.getX()) + " x " - + sizeFormat.format(size.getY()) + (metric ? " cm" : " in"); - } - JOptionPane.showMessageDialog(SwingUtilities.getRootPane(StatusBar.this), text, - "Information", JOptionPane.INFORMATION_MESSAGE); - } - }); - } - return sizeLabel; - } - - private void layoutComponents() { - GridBagConstraints gbc = new GridBagConstraints(); - gbc.gridx = 0; - gbc.gridy = 0; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1; - add(getStatusLabel(), gbc); - - JPanel zoomPanel = new JPanel(new BorderLayout()); - zoomPanel.add(new JLabel("Zoom: "), BorderLayout.WEST); - zoomPanel.add(getZoomBox(), BorderLayout.CENTER); - // zoomPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory - // .createEtchedBorder(), BorderFactory.createEmptyBorder(2, 4, 2, - // 4))); - zoomPanel.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 4)); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.BOTH; - gbc.weightx = 0; - add(zoomPanel, gbc); - - gbc.gridx = 2; - add(getSizeLabel(), gbc); - - gbc.gridx = 3; - add(getUpdateLabel(), gbc); - - gbc.gridx = 4; - gbc.fill = GridBagConstraints.NONE; - add(getMemoryPanel(), gbc); - - gbc.gridx = 5; - add(new JPanel(), gbc); - } - - // IPlugIn - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - - layoutComponents(); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.ZOOM_CHANGED, EventType.SLOT_CHANGED, - EventType.AVAILABLE_CTRL_POINTS_CHANGED, EventType.SELECTION_CHANGED, - EventType.STATUS_MESSAGE_CHANGED); - } - - @SuppressWarnings("unchecked") - @Override - public void processMessage(EventType eventType, Object... params) { - switch (eventType) { - case ZOOM_CHANGED: - if (!params[0].equals(getZoomBox().getSelectedItem())) { - final Double zoom = (Double) params[0]; - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - getZoomBox().setSelectedItem(zoom); - } - }); - } - break; - case SELECTION_CHANGED: - List> selection = (List>) params[0]; - Collection> stuckComponents = (Collection>) params[1]; - Collection componentNames = new HashSet(); - for (IDIYComponent component : selection) { - componentNames.add("" + component.getName() + ""); - } - this.selectedComponentNames = new ArrayList(componentNames); - Collections.sort(this.selectedComponentNames); - this.stuckComponentNames = new ArrayList(); - for (IDIYComponent component : stuckComponents) { - this.stuckComponentNames.add("" + component.getName() - + ""); - } - this.stuckComponentNames.removeAll(this.selectedComponentNames); - Collections.sort(this.stuckComponentNames); - refreshStatusText(); - break; - case SLOT_CHANGED: - componentSlot = (ComponentType) params[0]; - controlPointSlot = (Point) params[1]; - refreshStatusText(); - break; - case AVAILABLE_CTRL_POINTS_CHANGED: - componentNamesUnderCursor = new ArrayList(); - for (IDIYComponent component : ((Map, Integer>) params[0]).keySet()) { - componentNamesUnderCursor.add("" + component.getName() - + ""); - } - Collections.sort(componentNamesUnderCursor); - refreshStatusText(); - break; - case STATUS_MESSAGE_CHANGED: - statusMessage = (String) params[0]; - } - } - - private void refreshStatusText() { - String statusText = this.statusMessage; - if (componentSlot == null) { - if (componentNamesUnderCursor != null && !componentNamesUnderCursor.isEmpty()) { - String formattedNames = Utils.toCommaString(componentNamesUnderCursor); - statusText = "Drag control point(s) of " + formattedNames + ""; - } else if (selectedComponentNames != null && !selectedComponentNames.isEmpty()) { - StringBuilder builder = new StringBuilder(); - builder.append(Utils.toCommaString(selectedComponentNames)); - if (!stuckComponentNames.isEmpty()) { - builder.append(" (hold Ctrl and drag to unstuck from "); - builder.append(Utils.toCommaString(stuckComponentNames)); - builder.append(")"); - } - statusText = "Selection: " + builder.toString() + ""; - } - } else { - switch (componentSlot.getCreationMethod()) { - case POINT_BY_POINT: - String count; - if (controlPointSlot == null) { - count = "first"; - } else { - count = "second"; - } - statusText = "Click on the canvas to set the " + count - + " control point of a new " + componentSlot.getName() - + " or press Esc to cancel"; - break; - case SINGLE_CLICK: - statusText = "Click on the canvas to create a new " - + componentSlot.getName() + " or press Esc to cancel"; - break; - } - } - final String finalStatus = statusText; - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - getStatusLabel().setText(finalStatus); - } - }); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentButton.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentButton.java deleted file mode 100644 index e913051d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentButton.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.awt.Insets; -import java.awt.dnd.DnDConstants; -import java.awt.dnd.DragSource; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.util.ArrayList; -import java.util.List; - -import javax.swing.JButton; - -import org.diylc.common.ComponentType; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; - -/** - * {@link JButton} that displays component type icon and instantiates the - * component when clicked. - * - * @author Branislav Stojkovic - */ -class ComponentButton extends JButton { - - private static final long serialVersionUID = 1L; - - public static int MARGIN = 2; - - private IPlugInPort plugInPort; - private ComponentType componentType; - - public ComponentButton(final IPlugInPort plugInPort, final ComponentType componentType) { - super(componentType.getIcon()); - this.plugInPort = plugInPort; - this.componentType = componentType; - - setMargin(new Insets(MARGIN, MARGIN, MARGIN, MARGIN)); - - setToolTipText("" + componentType.getName() + "
" - + componentType.getDescription() + "
Author: " + componentType.getAuthor() - + "

Double click to select all components of this type" - + ""); - // initializeDnD(); - addMouseListener(new MouseAdapter() { - - @Override - public void mouseClicked(MouseEvent e) { - if (e.getClickCount() == 1) { - plugInPort.setNewComponentTypeSlot(componentType); - } else { - List> components = plugInPort.getCurrentProject().getComponents(); - List> newSelection = new ArrayList>(); - for (IDIYComponent component : components) { - if (componentType.getInstanceClass().equals(component.getClass())) { - newSelection.add(component); - } - } - plugInPort.updateSelection(newSelection); - plugInPort.setNewComponentTypeSlot(null); - plugInPort.refresh(); - } - } - }); -// addActionListener(new ActionListener() { -// -// @Override -// public void actionPerformed(ActionEvent e) { -// // plugInPort.setCursorIcon(componentType.getIcon()); -// plugInPort.setNewComponentTypeSlot(componentType); -// // try { -// // plugInPort.instantiateComponent(componentType -// // .getComponentInstanceClass(), null); -// // } catch (Exception e1) { -// // e1.printStackTrace(); -// // } -// } -// }); - addKeyListener(new KeyAdapter() { - - @Override - public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_DELETE) { - plugInPort.deleteSelectedComponents(); - } - } - }); - // addKeyListener(new KeyAdapter() { - // - // @Override - // public void keyPressed(KeyEvent e) { - // if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { - // plugInPort.setNewComponentSlot(null); - // } - // } - // }); - } - - private void initializeDnD() { - // Initialize drag source recognizer. - DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(this, - DnDConstants.ACTION_MOVE, - new ToolboxGestureListener(plugInPort, componentType.getInstanceClass().getName())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java deleted file mode 100644 index b1b6f1db..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java +++ /dev/null @@ -1,169 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Container; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JPanel; -import javax.swing.JTabbedPane; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import org.apache.log4j.Logger; -import org.diylc.common.ComponentType; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; -import org.diylc.presenter.ComparatorFactory; -import org.diylc.presenter.ComponentProcessor; -import org.diylc.presenter.Presenter; - -import com.diyfever.gui.miscutils.ConfigurationManager; -import com.diyfever.gui.miscutils.IConfigListener; - -/** - * Tabbed pane that shows all available components categorized into tabs. - * - * @author Branislav Stojkovic - */ -class ComponentTabbedPane extends JTabbedPane { - - private static final long serialVersionUID = 1L; - - private static final Logger LOG = Logger.getLogger(ComponentTabbedPane.class); - - public static int SCROLL_STEP = Presenter.ICON_SIZE + ComponentButton.MARGIN * 2 + 2; - - private final IPlugInPort plugInPort; - - public ComponentTabbedPane(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - addTab("Recently Used", createRecentComponentsPanel()); - Map> componentTypes = plugInPort.getComponentTypes(); - List categories = new ArrayList(componentTypes.keySet()); - Collections.sort(categories); - for (String category : categories) { - JPanel panel = createTab((componentTypes.get(category))); - addTab(category, panel); - } - addChangeListener(new ChangeListener() { - - @Override - public void stateChanged(ChangeEvent e) { - ComponentTabbedPane.this.plugInPort.setNewComponentTypeSlot(null); - } - }); - } - - private JPanel createTab(List componentTypes) { - JPanel panel = new JPanel(new BorderLayout()); - // final JScrollPane scrollPane = - // createComponentScrollBar(componentTypes); - panel.setOpaque(false); - panel.add(createComponentPanel(componentTypes), BorderLayout.CENTER); - // JButton leftButton = new JButton("<"); - // leftButton.addActionListener(new ActionListener() { - // - // @Override - // public void actionPerformed(ActionEvent e) { - // Rectangle rect = scrollPane.getVisibleRect(); - // if (rect.x > SCROLL_STEP) { - // rect.translate(-SCROLL_STEP, 0); - // } else { - // rect.translate(-rect.x, 0); - // } - // } - // }); - // leftButton.setMargin(new Insets(0, 2, 0, 2)); - // JButton rightButton = new JButton(">"); - // rightButton.addActionListener(new ActionListener() { - // - // @Override - // public void actionPerformed(ActionEvent e) { - // Rectangle rect = scrollPane.getVisibleRect(); - // if (rect.x + rect.width < scrollPane.getViewport().getSize().width - - // SCROLL_STEP) { - // rect.translate(SCROLL_STEP, 0); - // } else { - // rect.translate(scrollPane.getViewport().getSize().width - rect.x - - // rect.width, - // 0); - // } - // } - // }); - // rightButton.setMargin(new Insets(0, 2, 0, 2)); - // panel.add(leftButton, BorderLayout.WEST); - // panel.add(scrollPane); - // panel.add(rightButton, BorderLayout.EAST); - return panel; - } - - // private JScrollPane createComponentScrollBar(List - // componentTypes) { - // JScrollPane scrollPane = new - // JScrollPane(createComponentPanel(componentTypes)); - // scrollPane.setOpaque(false); - // scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - // scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); - // return scrollPane; - // } - - private Component createComponentPanel(List componentTypes) { - Container toolbar = new Container(); - Collections.sort(componentTypes, ComparatorFactory.getInstance() - .getComponentTypeComparator()); - toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.X_AXIS)); - for (ComponentType componentType : componentTypes) { - JButton button = new ComponentButton(plugInPort, componentType); - toolbar.add(button); - } - - return toolbar; - } - - private Component createRecentComponentsPanel() { - JPanel panel = new JPanel(new BorderLayout()); - panel.setOpaque(false); - - final Container toolbar = new Container(); - toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.X_AXIS)); - refreshRecentComponentsToolbar(toolbar, (List) ConfigurationManager.getInstance() - .readObject(IPlugInPort.RECENT_COMPONENTS_KEY, new ArrayList())); - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.RECENT_COMPONENTS_KEY, - new IConfigListener() { - - @Override - public void valueChanged(String key, Object value) { - refreshRecentComponentsToolbar(toolbar, (List) value); - toolbar.invalidate(); - } - }); - - panel.add(toolbar, BorderLayout.CENTER); - - return panel; - } - - private void refreshRecentComponentsToolbar(Container toolbar, - List recentComponentClassList) { - toolbar.removeAll(); - for (String componentClassName : recentComponentClassList) { - ComponentType componentType; - try { - componentType = ComponentProcessor.getInstance().extractComponentTypeFrom( - (Class>) Class.forName(componentClassName)); - JButton button = new ComponentButton(plugInPort, componentType); - toolbar.add(button); - } catch (ClassNotFoundException e) { - LOG.error("Could not create recent component button for " + componentClassName, e); - } - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolBox.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolBox.java deleted file mode 100644 index e8c02b59..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolBox.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.util.EnumSet; - -import javax.swing.SwingConstants; - -import org.apache.log4j.Logger; -import org.diylc.common.BadPositionException; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.swing.ISwingUI; -import org.diylc.swing.plugins.statusbar.StatusBar; - - -public class ToolBox implements IPlugIn { - - private static final Logger LOG = Logger.getLogger(StatusBar.class); - - private ISwingUI swingUI; - private IPlugInPort plugInPort; - - private ComponentTabbedPane componentTabbedPane; - - public ToolBox(ISwingUI swingUI) { - this.swingUI = swingUI; - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - try { - swingUI.injectGUIComponent(getComponentTabbedPane(), SwingConstants.TOP); - } catch (BadPositionException e) { - LOG.error("Could not install the toolbox", e); - } - } - - public ComponentTabbedPane getComponentTabbedPane() { - if (componentTabbedPane == null) { - componentTabbedPane = new ComponentTabbedPane(plugInPort); - } - return componentTabbedPane; - } - - @Override - public EnumSet getSubscribedEventTypes() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void processMessage(EventType eventType, Object... params) { - // TODO Auto-generated method stub - - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolboxGestureListener.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolboxGestureListener.java deleted file mode 100644 index 35e08a1d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolboxGestureListener.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.awt.Cursor; -import java.awt.datatransfer.StringSelection; -import java.awt.dnd.DragGestureEvent; -import java.awt.dnd.DragGestureListener; - -import org.diylc.common.IPlugInPort; - - -/** - * {@link DragGestureListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class ToolboxGestureListener implements DragGestureListener { - - private IPlugInPort presenter; - private String className; - - public ToolboxGestureListener(IPlugInPort presenter, String className) { - super(); - this.presenter = presenter; - this.className = className; - } - - @Override - public void dragGestureRecognized(DragGestureEvent dge) { -// presenter.dragStarted(dge.getDragOrigin()); - dge.startDrag(Cursor.getDefaultCursor(), new StringSelection(className), - new ToolboxSourceListener(presenter)); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolboxSourceListener.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolboxSourceListener.java deleted file mode 100644 index 2dd25419..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolboxSourceListener.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.awt.dnd.DragSourceDragEvent; -import java.awt.dnd.DragSourceDropEvent; -import java.awt.dnd.DragSourceEvent; -import java.awt.dnd.DragSourceListener; - -import javax.swing.JComponent; - -import org.diylc.common.IPlugInPort; - - -/** - * {@link DragSourceListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class ToolboxSourceListener implements DragSourceListener { - - private IPlugInPort presenter; - - public ToolboxSourceListener(IPlugInPort presenter) { - super(); - this.presenter = presenter; - } - - @Override - public void dragDropEnd(DragSourceDropEvent dsde) { - ((JComponent) dsde.getDragSourceContext().getComponent()).revalidate(); - } - - @Override - public void dragEnter(DragSourceDragEvent dsde) { - } - - @Override - public void dragExit(DragSourceEvent dse) { - } - - @Override - public void dragOver(DragSourceDragEvent dsde) { - } - - @Override - public void dropActionChanged(DragSourceDragEvent dsde) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/TableTest.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/TableTest.java deleted file mode 100644 index d7755c7e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/TableTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.diylc; - -import java.util.ArrayList; -import java.util.List; - -import javax.swing.Icon; -import javax.swing.JFrame; -import javax.swing.JScrollPane; - -import org.apache.log4j.BasicConfigurator; -import org.diylc.swing.plugins.online.model.ProjectEntity; - -import com.diyfever.gui.objecttable.IActionProcessor; -import com.diyfever.gui.objecttable.ObjectListTable; - -public class TableTest { - - /** - * @param args - * @throws Exception - */ - public static void main(String[] args) throws Exception { - BasicConfigurator.configure(); - - List projects = new ArrayList(); - projects.add(new ProjectEntity(1, "first", "some text", "bane", "none")); - projects.add(new ProjectEntity(2, "second", "anoter text", "bisera", "none")); - - ObjectListTable t = new ObjectListTable(ProjectEntity.class, - new String[] { "getName", "getDescription", "getCategory", "getOwner", - "action:Download" }, new IActionProcessor() { - - @Override - public void actionExecuted(ProjectEntity value, String actionColumnName) { - System.out.println("row clicked: " + actionColumnName + " - " + value); - } - - @Override - public Icon getActionIcon(String actionColumnName) { - return null; - } - - @Override - public String getActionLabel(String actionColumnName) { - return "get me"; - } - }); - t.setData(projects); - JFrame f = new JFrame(); - f.add(new JScrollPane(t)); - f.pack(); - f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - f.setVisible(true); - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/components/MockDIYComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/components/MockDIYComponent.java deleted file mode 100644 index 7752c5bd..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/components/MockDIYComponent.java +++ /dev/null @@ -1,146 +0,0 @@ -package org.diylc.components; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Mock", author = "bancika", category = "Sample", instanceNamePrefix = "M", description = "test", zOrder = IDIYComponent.COMPONENT) -public class MockDIYComponent implements IDIYComponent { - - private static final long serialVersionUID = 1L; - - private String testField = "Hello World"; - private Capacitance c = new Capacitance(100d, CapacitanceUnit.uF); - private Resistance r = new Resistance(123d, ResistanceUnit.K); - private Size s = new Size(1d, SizeUnit.cm); - private Color color = Color.green; - private Point leftTopCorner = new Point(0, 0); - private String name = "something"; - - public MockDIYComponent(String testField, Capacitance c, Resistance r, Size s, Color color, - Point leftTopCorner) { - super(); - this.testField = testField; - this.c = c; - this.r = r; - this.s = s; - this.color = color; - this.leftTopCorner = leftTopCorner; - } - - public MockDIYComponent() { - super(); - } - - @Override - public boolean canControlPointOverlap(int index) { - return false; - } - - @EditableProperty - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @Override - public Point getControlPoint(int index) { - return leftTopCorner; - } - - @Override - public void setControlPoint(Point point, int index) { - leftTopCorner.setLocation(point); - } - - @EditableProperty(name = "Test Field") - public String getTestField() { - return testField; - } - - public void setTestField(String testField) { - this.testField = testField; - } - - @EditableProperty(defaultable = true) - public Capacitance getValue() { - return c; - } - - public void setValue(Capacitance c) { - this.c = c; - } - - @EditableProperty(defaultable = true) - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - @EditableProperty - public Resistance getR() { - return r; - } - - // Setter is commented out, ClassProcessor should ignore this property. - // public void setR(Resistance r) { - // this.r = r; - // } - - // No annotation, so this property should be ignored. - public Size getS() { - return s; - } - - public void setS(Size s) { - this.s = s; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - g2d.setColor(componentState.equals(ComponentState.SELECTED) ? color : color.darker()); - g2d.fillRect(leftTopCorner.x, leftTopCorner.y, 200, 50); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.drawString("X", 10, 10); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/plugins/file/BomMakerTest.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/plugins/file/BomMakerTest.java deleted file mode 100644 index 854698ec..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/plugins/file/BomMakerTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.diylc.plugins.file; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.ArrayList; -import java.util.List; - -import org.diylc.components.MockDIYComponent; -import org.diylc.core.IDIYComponent; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.swing.plugins.file.BomEntry; -import org.diylc.swing.plugins.file.BomMaker; -import org.junit.Test; - -public class BomMakerTest { - - @Test - public void testCreateBom() { - List> components = new ArrayList>(); - MockDIYComponent c1 = new MockDIYComponent(); - c1.setValue(new Capacitance(3d, CapacitanceUnit.pF)); - components.add(c1); - components.add(new MockDIYComponent()); - components.add(new MockDIYComponent()); - List bom = BomMaker.getInstance().createBom(components); - assertNotNull(bom); - assertEquals(2, bom.size()); - BomEntry entry1 = bom.get(0); - assertEquals("something", entry1.getName()); - assertEquals(2, (int) entry1.getQuantity()); - BomEntry entry2 = bom.get(1); - assertEquals("something", entry2.getName()); - assertEquals(1, (int) entry2.getQuantity()); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml deleted file mode 100644 index dc66cb2d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ /dev/null @@ -1,373 +0,0 @@ - - - - - 3 - 0 - 4 - - 2011-01-27 21:00:00.000 CET - - - - BUG_FIX - Copy/paste between two instances of the application - - - BUG_FIX - Parsing numerical values in countries that use comma as decimal separator - - - BUG_FIX - Dragging sticky points affects selectability of objects - - - BUG_FIX - Click is sometimes not registered while adding a new component - - - BUG_FIX - Fixed NPE when using default values - - - IMPROVEMENT - Allow shape control points of curves to overlap - - - IMPROVEMENT - Added DIL IC first pin indentation - - - IMPROVEMENT - Added transparency to the potentiometer - - - IMPROVEMENT - Reduced number of layers - - - IMPROVEMENT - Import from v1 files can now read label and electrolytic capacitor components and trace/pad colors - - - IMPROVEMENT - Added worker thread for longer file operation, so GUI doesn't freeze - - - NEW_FEATURE - Added right click menu on the canvas - - - NEW_FEATURE - Added "send to back" and "bring to front" options - - - NEW_FEATURE - Added label component - - - NEW_FEATURE - Added image component - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - - 3 - 0 - 5 - - 2011-01-30 20:00:00.000 CET - - - - BUG_FIX - Curved trace does not show control points - - - BUG_FIX - Potentiometer draws wrong at 180 degrees - - - IMPROVEMENT - Reset component selection when tab is changed - - - IMPROVEMENT - Resistor can show color bands - - - IMPROVEMENT - Electrolytic capacitor has a new icon and new looks - - - IMPROVEMENT - Solder pad can be square - - - IMPROVEMENT - Added keyboard shortcuts to some menu options - - - IMPROVEMENT - V1 file importer can recognize hookup wire and transistors - - - NEW_FEATURE - Added support for creating and loading templates - - - NEW_FEATURE - Added TO-92 transistor - - - NEW_FEATURE - Added TO-220 transistor - - - NEW_FEATURE - Added LED - - - NEW_FEATURE - Added axial electrolytic capacitor - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 0 - 6 - - 2011-02-07 20:00:00.000 CET - - - - BUG_FIX - Copy/paste doesn't work for some components (potentiometer, transistor, etc) - - - BUG_FIX - Resistor color codes are sometimes wrong - - - IMPROVEMENT - Resistors can specify power handling - - - IMPROVEMENT - Capacitors can specify voltage handling - - - IMPROVEMENT - Fixed lead alignment issue - - - IMPROVEMENT - Better scaling, grid lines are more precise - - - IMPROVEMENT - Improved performance - - - NEW_FEATURE - Added resistor schematic symbol - - - NEW_FEATURE - Added capacitor schematic symbol - - - NEW_FEATURE - Added eyelet/turret component - - - NEW_FEATURE - Added Marshall/Trainwreck style boards - - - NEW_FEATURE - Added few types of trimmers - - - NEW_FEATURE - Configurable rendering quality to improve speed - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 0 - 7 - - 2011-02-27 20:00:00.000 CET - - - - BUG_FIX - Resistor and capacitor symbols are not clickable - - - BUG_FIX - Boards sometimes render holes/pads on the edge - - - BUG_FIX - Download link doesn't work on Mac - - - BUG_FIX - Ruler ticks don't always match with the grid - - - BUG_FIX - Micro symbol doesn't get exported to PDF - - - IMPROVEMENT - DIL IC now has more pin options - - - IMPROVEMENT - Send to Back/Bring to Front are more flexible and renamed to match what they do - - - NEW_FEATURE - Auto-save project and restore if app crashes - - - NEW_FEATURE - Added support for themes - - - NEW_FEATURE - Added tube socket - - - NEW_FEATURE - Sticky points may be turned off - - - NEW_FEATURE - Snap to Grid may be turned off - - - NEW_FEATURE - Auto-create solder pads - - - NEW_FEATURE - Auto-edit mode - - - NEW_FEATURE - Continuous component creation - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 0 - 8 - - 2011-03-03 20:00:00.000 CET - - - - BUG_FIX - Sometimes it's not possible to click on a component, especially when layout is large - - - IMPROVEMENT - Curved traces and wires can have 2, 3 and 4 control points - - - NEW_FEATURE - Switchable wheel zoom - - - NEW_FEATURE - Automatic standing resistors, capacitors and diodes - - - NEW_FEATURE - Vertical vero board - - - NEW_FEATURE - Label has editable font - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 0 - 9 - - 2011-08-28 20:00:00.000 CET - - - - BUG_FIX - Auto-created solder pads aren't assigned with default settings and name - - - IMPROVEMENT - Component edit dialog allows changing property values even when they are not the same. Boxes are marked yellow to designate multi-valued state. - - - IMPROVEMENT - Component edit dialog should show mutual properties when components of different types are selected (e.g. curved trace and straight trace width) - - - IMPROVEMENT - Ctrl+click should not clear selection when clicked on the canvas - - - IMPROVEMENT - Increased PNG export resolution - - - IMPROVEMENT - Auto-increment component names when copy-pasting - - - IMPROVEMENT - Do not attempt to write auto-save files if user does not have permissions to create files - - - IMPROVEMENT - Allow zero ohm resistors - - - NEW_FEATURE - Outline mode that resembles PCB silkscreen - - - NEW_FEATURE - Double click on a component button in the toolbar selects all components of that type - - - NEW_FEATURE - Renumber selected components by X or Y axis - - - NEW_FEATURE - Recently used components in the toolbar for easy navigation - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/.classpath b/ diy-layout-creator --username bancika@gmail.com/Library/.classpath deleted file mode 100644 index 1685d3ac..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/.classpath +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/.project b/ diy-layout-creator --username bancika@gmail.com/Library/.project deleted file mode 100644 index 18f823d0..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - Library - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/build.xml b/ diy-layout-creator --username bancika@gmail.com/Library/build.xml deleted file mode 100644 index bd2075b4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/build.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - Compile with JDK ${java.runtime.version} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/lib/bancika-gui-framework.jar b/ diy-layout-creator --username bancika@gmail.com/Library/lib/bancika-gui-framework.jar deleted file mode 100644 index 1ccbbb07..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/Library/lib/bancika-gui-framework.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar b/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar deleted file mode 100644 index 0782abf3..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/lib/log4j-1.2.15.jar b/ diy-layout-creator --username bancika@gmail.com/Library/lib/log4j-1.2.15.jar deleted file mode 100644 index c930a6ab..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/Library/lib/log4j-1.2.15.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/lib/xstream-1.3.1.jar b/ diy-layout-creator --username bancika@gmail.com/Library/lib/xstream-1.3.1.jar deleted file mode 100644 index 4ef4219c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/Library/lib/xstream-1.3.1.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java deleted file mode 100644 index f645c5b5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java +++ /dev/null @@ -1,124 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -public abstract class AbstractBoard extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color BOARD_COLOR = Color.decode("#F8EBB3"); - public static Color BORDER_COLOR = BOARD_COLOR.darker(); - public static Size DEFAULT_WIDTH = new Size(1.5d, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1.2d, SizeUnit.in); - - protected String value = ""; - protected Point[] controlPoints = new Point[] { - new Point(0, 0), - new Point((int) DEFAULT_WIDTH.convertToPixels(), (int) DEFAULT_HEIGHT.convertToPixels()) }; - protected Point firstPoint = new Point(); - protected Point secondPoint = new Point(); - - protected Color boardColor = BOARD_COLOR; - protected Color borderColor = BORDER_COLOR; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project, - IDrawingObserver drawingObserver) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(boardColor); - g2d.fillRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - - firstPoint.y); - g2d.setComposite(oldComposite); - } - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); - g2d.drawRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - - firstPoint.y); - // Do not track any changes that follow because the whole board has been - // tracked so far. - drawingObserver.stopTracking(); - } - - @EditableProperty(name = "Color") - public Color getBoardColor() { - return boardColor; - } - - public void setBoardColor(Color boardColor) { - this.boardColor = boardColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - firstPoint.setLocation(Math.min(controlPoints[0].x, controlPoints[1].x), Math.min( - controlPoints[0].y, controlPoints[1].y)); - secondPoint.setLocation(Math.max(controlPoints[0].x, controlPoints[1].x), Math.max( - controlPoints[0].y, controlPoints[1].y)); - } - - @EditableProperty - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/BlankBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/BlankBoard.java deleted file mode 100644 index 8fd4958e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/BlankBoard.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.Graphics2D; - -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; - -@ComponentDescriptor(name = "Blank Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Blank circuit board") -public class BlankBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java deleted file mode 100644 index cf7185a0..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Eyelet Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated board with eyelets") -public class EyeletBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - public static Color BOARD_COLOR = Color.decode("#CCFFCC"); - public static Color BORDER_COLOR = BOARD_COLOR.darker(); - public static Color EYELET_COLOR = Color.decode("#C3E4ED"); - - public static Size SPACING = new Size(0.5d, SizeUnit.in); - public static Size EYELET_SIZE = new Size(0.2d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.1d, SizeUnit.in); - - // private Area copperArea; - protected Size spacing = SPACING; - protected Color eyeletColor = EYELET_COLOR; - - public EyeletBoard() { - super(); - this.boardColor = BOARD_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape clip = g2d.getClip(); - if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, secondPoint.y) - && !clip.contains(secondPoint.x, firstPoint.y)) { - return; - } - super.draw(g2d, componentState, outlineMode, project, drawingObserver); - if (componentState != ComponentState.DRAGGING) { - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - Point p = new Point(firstPoint); - int diameter = getClosestOdd((int) EYELET_SIZE.convertToPixels()); - int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - int spacing = (int) this.spacing.convertToPixels(); - - while (p.y < secondPoint.y - spacing) { - p.x = firstPoint.x; - p.y += spacing; - while (p.x < secondPoint.x - spacing - diameter) { - p.x += spacing; - g2d.setColor(eyeletColor); - g2d.fillOval(p.x - diameter / 2, p.y - diameter / 2, diameter, diameter); - g2d.setColor(eyeletColor.darker()); - g2d.drawOval(p.x - diameter / 2, p.y - diameter / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - g2d.setColor(eyeletColor.darker()); - g2d.drawOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - } - } - } - - @EditableProperty(name = "Eyelet color") - public Color getEyeletColor() { - return eyeletColor; - } - - public void setEyeletColor(Color padColor) { - this.eyeletColor = padColor; - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - g2d.setColor(EYELET_COLOR); - g2d.fillOval(width / 4, width / 4, width / 2, width / 2); - g2d.setColor(EYELET_COLOR.darker()); - g2d.drawOval(width / 4, width / 4, width / 2, width / 2); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 2 - 2, width / 2 - 2, 5, 5); - g2d.setColor(EYELET_COLOR.darker()); - g2d.drawOval(width / 2 - 2, width / 2 - 2, 5, 5); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/MarshallPerfBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/MarshallPerfBoard.java deleted file mode 100644 index fc67654a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/MarshallPerfBoard.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Marshall Style Perf Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated board as found on some Marshall and Trainwreck amps") -public class MarshallPerfBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - public static Color BOARD_COLOR = Color.decode("#CD8500"); - public static Color BORDER_COLOR = BOARD_COLOR.darker(); - public static Size SPACING = new Size(3 / 8d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(1 / 8d, SizeUnit.in); - - // private Area copperArea; - protected Size spacing = SPACING; - - public MarshallPerfBoard() { - super(); - this.boardColor = BOARD_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape clip = g2d.getClip(); - if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, secondPoint.y) - && !clip.contains(secondPoint.x, firstPoint.y)) { - return; - } - super.draw(g2d, componentState, outlineMode, project, drawingObserver); - if (componentState != ComponentState.DRAGGING) { - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - Point p = new Point(firstPoint); - int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - int spacing = (int) this.spacing.convertToPixels(); - - while (p.y < secondPoint.y - spacing) { - p.x = firstPoint.x; - p.y += spacing; - while (p.x < secondPoint.x - spacing - holeDiameter) { - p.x += spacing; - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - g2d.setColor(borderColor); - g2d.drawOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - } - } - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 3 - 2, width / 3 - 2, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(width / 3 - 2, width / 3 - 2, 5, 5); - - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(2 * width / 3 - 2, width / 3 - 2, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(2 * width / 3 - 2, width / 3 - 2, 5, 5); - - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 3 - 2, 2 * width / 3 - 2, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(width / 3 - 2, 2 * width / 3 - 2, 5, 5); - - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(2 * width / 3 - 2, 2 * width / 3 - 2, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(2 * width / 3 - 2, 2 * width / 3 - 2, 5, 5); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java deleted file mode 100644 index 31321ea5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Perf Board w/ Pads", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated board with solder pads") -public class PerfBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - public static Color COPPER_COLOR = Color.decode("#DA8A67"); - - public static Size SPACING = new Size(0.1d, SizeUnit.in); - public static Size PAD_SIZE = new Size(0.08d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.7d, SizeUnit.mm); - - // private Area copperArea; - protected Size spacing = SPACING; - protected Color padColor = COPPER_COLOR; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape clip = g2d.getClip(); - if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, secondPoint.y) - && !clip.contains(secondPoint.x, firstPoint.y)) { - return; - } - super.draw(g2d, componentState, outlineMode, project, drawingObserver); - if (componentState != ComponentState.DRAGGING) { - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - Point p = new Point(firstPoint); - int diameter = getClosestOdd((int) PAD_SIZE.convertToPixels()); - int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - int spacing = (int) this.spacing.convertToPixels(); - - while (p.y < secondPoint.y - spacing) { - p.x = firstPoint.x; - p.y += spacing; - while (p.x < secondPoint.x - spacing - diameter) { - p.x += spacing; - g2d.setColor(padColor); - g2d.fillOval(p.x - diameter / 2, p.y - diameter / 2, diameter, diameter); - g2d.setColor(padColor.darker()); - g2d.drawOval(p.x - diameter / 2, p.y - diameter / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - g2d.setColor(padColor.darker()); - g2d.drawOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - } - } - } - - @EditableProperty(name = "Pad color") - public Color getPadColor() { - return padColor; - } - - public void setPadColor(Color padColor) { - this.padColor = padColor; - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - g2d.setColor(COPPER_COLOR); - g2d.fillOval(width / 4, width / 4, width / 2, width / 2); - g2d.setColor(COPPER_COLOR.darker()); - g2d.drawOval(width / 4, width / 4, width / 2, width / 2); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 2 - 2, width / 2 - 2, 5, 5); - g2d.setColor(COPPER_COLOR.darker()); - g2d.drawOval(width / 2 - 2, width / 2 - 2, 5, 5); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java deleted file mode 100644 index e1b3b15f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java +++ /dev/null @@ -1,142 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.common.OrientationHV; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Vero Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated FR4 board with copper strips connecting all holes in a row") -public class VeroBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - public static Color STRIP_COLOR = Color.decode("#DA8A67"); - public static Color BORDER_COLOR = BOARD_COLOR.darker(); - - public static Size SPACING = new Size(0.1d, SizeUnit.in); - public static Size STRIP_SIZE = new Size(0.07d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.7d, SizeUnit.mm); - - protected Size spacing = SPACING; - protected Color stripColor = STRIP_COLOR; - protected OrientationHV orientation = OrientationHV.HORIZONTAL; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape clip = g2d.getClip(); - if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, secondPoint.y) - && !clip.contains(secondPoint.x, firstPoint.y)) { - return; - } - super.draw(g2d, componentState, outlineMode, project, drawingObserver); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - Point p = new Point(firstPoint); - int stripSize = getClosestOdd((int) STRIP_SIZE.convertToPixels()); - int holeSize = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - int spacing = (int) this.spacing.convertToPixels(); - - if (orientation == OrientationHV.HORIZONTAL) { - while (p.y < secondPoint.y - spacing) { - p.x = firstPoint.x; - p.y += spacing; - g2d.setColor(stripColor); - g2d.fillRect(p.x + spacing / 2, p.y - stripSize / 2, secondPoint.x - spacing - - p.x, stripSize); - g2d.setColor(stripColor.darker()); - g2d.drawRect(p.x + spacing / 2, p.y - stripSize / 2, secondPoint.x - spacing - - p.x, stripSize); - while (p.x < secondPoint.x - spacing - holeSize) { - p.x += spacing; - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeSize / 2, p.y - holeSize / 2, holeSize, holeSize); - g2d.setColor(stripColor.darker()); - g2d.drawOval(p.x - holeSize / 2, p.y - holeSize / 2, holeSize, holeSize); - } - } - } else { - while (p.x < secondPoint.x - spacing) { - p.x += spacing; - p.y = firstPoint.y; - g2d.setColor(stripColor); - g2d.fillRect(p.x - stripSize / 2, p.y + spacing / 2, stripSize, secondPoint.y - - spacing - p.y); - g2d.setColor(stripColor.darker()); - g2d.drawRect(p.x - stripSize / 2, p.y + spacing / 2, stripSize, secondPoint.y - - spacing - p.y); - while (p.y < secondPoint.y - spacing - holeSize) { - p.y += spacing; - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeSize / 2, p.y - holeSize / 2, holeSize, holeSize); - g2d.setColor(stripColor.darker()); - g2d.drawOval(p.x - holeSize / 2, p.y - holeSize / 2, holeSize, holeSize); - } - } - } - g2d.setComposite(oldComposite); - } - } - - @EditableProperty(name = "Strip color") - public Color getStripColor() { - return stripColor; - } - - public void setStripColor(Color padColor) { - this.stripColor = padColor; - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - } - - @EditableProperty - public OrientationHV getOrientation() { - return orientation; - } - - public void setOrientation(OrientationHV orientation) { - this.orientation = orientation; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - g2d.setColor(STRIP_COLOR); - g2d.fillRect(4, width / 4, width - 8, width / 2); - g2d.setColor(STRIP_COLOR.darker()); - g2d.drawRect(4, width / 4, width - 8, width / 2); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 3 - 2, width / 2 - 2, 5, 5); - g2d.fillOval(2 * width / 3 - 2, width / 2 - 2, 5, 5); - g2d.setColor(STRIP_COLOR.darker()); - g2d.drawOval(width / 3 - 2, width / 2 - 2, 5, 5); - g2d.drawOval(2 * width / 3 - 2, width / 2 - 2, 5, 5); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/AWG.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/AWG.java deleted file mode 100644 index d1edc701..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/AWG.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.diylc.components.connectivity; - -public enum AWG { - - _8, _10, _12, _14, _16, _18, _20, _22, _24, _26, _28, _30; - - @Override - public String toString() { - return "#" + name().replace("_", ""); - } - - public int getValue() { - return Integer.parseInt(name().replace("_", "")); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java deleted file mode 100644 index 428e4a00..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Copper Trace", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "Trace", description = "Straight copper trace", zOrder = IDIYComponent.TRACE) -public class CopperTrace extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size THICKNESS = new Size(1d, SizeUnit.mm); - public static Color COLOR = Color.black; - - private Color leadColor = COLOR; - private Size thickness = THICKNESS; - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(3)); - g2d.setColor(COLOR); - g2d.drawLine(1, height - 2, width - 2, 1); - } - - @Override - protected Color getLeadColor(ComponentState componentState) { - return componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : leadColor; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @EditableProperty(name = "Color") - public Color getLeadColor() { - return leadColor; - } - - public void setLeadColor(Color leadColor) { - this.leadColor = leadColor; - } - - @EditableProperty(name = "Width") - public Size getThickness() { - return thickness; - } - - public void setThickness(Size thickness) { - this.thickness = thickness; - } - - @Override - protected int getLeadThickness() { - return (int) getThickness().convertToPixels(); - } - - @Override - protected boolean shouldShadeLeads() { - return false; - } - - public Color getBodyColor() { - return super.getBodyColor(); - } - - @Override - public Color getBorderColor() { - return super.getBorderColor(); - } - - @Override - public Byte getAlpha() { - return super.getAlpha(); - } - - @Override - public Size getLength() { - return super.getLength(); - } - - @Override - public Size getWidth() { - return super.getWidth(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @Override - protected Shape getBodyShape() { - return null; - } - - @Override - protected Size getDefaultWidth() { - return null; - } - - @Override - protected Size getDefaultLength() { - return null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CurvedTrace.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CurvedTrace.java deleted file mode 100644 index 7d580ba8..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CurvedTrace.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.geom.CubicCurve2D; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractCurvedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Curved Trace", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "Trace", description = "Curved copper trace with two control points", zOrder = IDIYComponent.TRACE) -public class CurvedTrace extends AbstractCurvedComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.black; - public static Size SIZE = new Size(1d, SizeUnit.mm); - - protected Size size = SIZE; - - @Override - protected Color getDefaultColor() { - return COLOR; - } - - @Override - protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) { - int thickness = (int) size.convertToPixels(); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness)); - Color curveColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color; - g2d.setColor(curveColor); - g2d.draw(curve); - } - - @EditableProperty(name = "Width") - public Size getThickness() { - return size; - } - - public void setThickness(Size size) { - this.size = size; - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @Override - public Byte getAlpha() { - return super.getAlpha(); - } - - @Override - public void setAlpha(Byte alpha) { - super.setAlpha(alpha); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java deleted file mode 100644 index 71103a93..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Eyelet.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Eyelet", category = "Connectivity", author = "Branislav Stojkovic", description = "Eyelet or turret terminal", instanceNamePrefix = "Eyelet", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1) -public class Eyelet extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static Size SIZE = new Size(0.2d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.1d, SizeUnit.in); - public static Color COLOR = Color.decode("#C3E4ED"); - - private Size size = SIZE; - private Size holeSize = HOLE_SIZE; - private Color color = COLOR; - private Point point = new Point(0, 0); - private String value = ""; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int diameter = getClosestOdd((int) size.convertToPixels()); - int holeDiameter = getClosestOdd((int) holeSize.convertToPixels()); - g2d.setColor(color); - g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker()); - g2d.drawOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter, - holeDiameter); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker()); - g2d.drawOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int diameter = getClosestOdd(width / 2); - int holeDiameter = 5; - g2d.setColor(COLOR); - g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); - g2d.setColor(COLOR.darker()); - g2d.drawOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, - holeDiameter); - g2d.setColor(COLOR.darker()); - g2d.drawOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, - holeDiameter); - } - - @EditableProperty - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @EditableProperty(name = "Hole size") - public Size getHoleSize() { - return holeSize; - } - - public void setHoleSize(Size holeSize) { - this.holeSize = holeSize; - } - - @Override - public String getName() { - return super.getName(); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(name = "Color") - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - @Override - @EditableProperty - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/HookupWire.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/HookupWire.java deleted file mode 100644 index aa9832e1..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/HookupWire.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.geom.CubicCurve2D; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractCurvedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Hookup Wire", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "W", description = "Flexible wire with two control points", zOrder = IDIYComponent.COMPONENT) -public class HookupWire extends AbstractCurvedComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.green; - public static double INSULATION_THICKNESS_PCT = 0.3; - - protected AWG gauge = AWG._22; - - @Override - protected Color getDefaultColor() { - return COLOR; - } - - @Override - protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) { - int thickness = (int) (Math.pow(Math.E, -1.12436 - 0.11594 * gauge.getValue()) - * Constants.PIXELS_PER_INCH * (1 + 2 * INSULATION_THICKNESS_PCT)); - Color curveColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker(); - g2d.setColor(curveColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness)); - g2d.draw(curve); - if (componentState == ComponentState.NORMAL) { - g2d.setColor(color); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness - 2)); - g2d.draw(curve); - } - } - - @EditableProperty(name = "AWG") - public AWG getGauge() { - return gauge; - } - - public void setGauge(AWG gauge) { - this.gauge = gauge; - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Jumper.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Jumper.java deleted file mode 100644 index b39fa2cb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Jumper.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; - -@ComponentDescriptor(name = "Jumper", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "J", description = "", zOrder = IDIYComponent.COMPONENT) -public class Jumper extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.blue; - - private Color color = COLOR; - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(3)); - g2d.setColor(COLOR.darker()); - g2d.drawLine(1, height - 2, width - 2, 1); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(COLOR); - g2d.drawLine(1, height - 2, width - 2, 1); - } - - @Override - public Color getLeadColor(ComponentState componentState) { - return componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - public Color getBodyColor() { - return super.getBodyColor(); - } - - @Override - public Color getBorderColor() { - return super.getBorderColor(); - } - - @Override - public Byte getAlpha() { - return super.getAlpha(); - } - - @Override - public Size getLength() { - return super.getLength(); - } - - @Override - public Size getWidth() { - return super.getWidth(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @Override - protected Shape getBodyShape() { - return null; - } - - @Override - protected Size getDefaultWidth() { - return null; - } - - @Override - protected Size getDefaultLength() { - return null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java deleted file mode 100644 index 19492074..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Solder Pad", category = "Connectivity", author = "Branislav Stojkovic", description = "test", instanceNamePrefix = "Pad", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1) -public class SolderPad extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static Size SIZE = new Size(0.09d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.8d, SizeUnit.mm); - public static Color COLOR = Color.black; - - private Size size = SIZE; - private Color color = COLOR; - private Point point = new Point(0, 0); - private Type type = Type.ROUND; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int diameter = getClosestOdd((int) size.convertToPixels()); - int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color); - if (type == Type.ROUND) { - g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); - } else { - g2d.fillRect(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); - } - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int diameter = getClosestOdd(width / 2); - int holeDiameter = 5; - g2d.setColor(COLOR); - g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, - holeDiameter); - } - - @EditableProperty - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @Override - public String getName() { - return super.getName(); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(name = "Color") - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - @EditableProperty - public Type getType() { - return type; - } - - public void setType(Type type) { - this.type = type; - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - static enum Type { - ROUND, SQUARE; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase(); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java deleted file mode 100644 index 69b17433..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/TraceCut.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Trace Cut", category = "Connectivity", author = "Branislav Stojkovic", description = "Designates the place where a trace on the vero board needs to be cut", instanceNamePrefix = "Cut", stretchable = false, zOrder = IDIYComponent.BOARD + 1) -public class TraceCut extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static Size SIZE = new Size(0.07d, SizeUnit.in); - public static Color FILL_COLOR = Color.white; - public static Color BORDER_COLOR = Color.red; - public static Color SELECTION_COLOR = Color.blue; - - private Size size = SIZE; - private Color fillColor = FILL_COLOR; - private Color borderColor = BORDER_COLOR; - - protected Point point = new Point(0, 0); - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int size = getClosestOdd((int) this.size.convertToPixels()); - int dotDiameter = size - 6; - g2d.setColor(fillColor); - g2d.fillRect(point.x - size / 2, point.y - size / 2, size, size); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawRect(point.x - size / 2, point.y - size / 2, size, size); - g2d - .fillOval(point.x - dotDiameter / 2, point.y - dotDiameter / 2, dotDiameter, - dotDiameter); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int size = 16; - int dotDiameter = size / 4 * 2; - g2d.setColor(FILL_COLOR); - g2d.fillRect((width - size) / 2, (height - size) / 2, size, size); - g2d.setColor(BORDER_COLOR); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawRect((width - size) / 2, (height - size) / 2, size, size); - g2d.fillOval((width - dotDiameter) / 2, (height - dotDiameter) / 2, dotDiameter, - dotDiameter); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @EditableProperty - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @EditableProperty(name = "Fill") - public Color getFillColor() { - return fillColor; - } - - public void setFillColor(Color fillColor) { - this.fillColor = fillColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @Override - public String getName() { - return super.getName(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java deleted file mode 100644 index 1010136e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java +++ /dev/null @@ -1,270 +0,0 @@ -package org.diylc.components.electromechanical; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -@ComponentDescriptor(name = "Mini Toggle Switch", category = "Electromechanical", author = "Branislav Stojkovic", description = "Panel mounted mini toggle switch", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "SW") -public class MiniToggleSwitch extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Size SPACING = new Size(0.2d, SizeUnit.in); - private static Size MARGIN = new Size(0.08d, SizeUnit.in); - private static Size CIRCLE_SIZE = new Size(0.09d, SizeUnit.in); - private static Size LUG_WIDTH = new Size(0.060d, SizeUnit.in); - private static Size LUG_HEIGHT = new Size(0.03d, SizeUnit.in); - - private static Color BODY_COLOR = Color.decode("#3299CC"); - private static Color BORDER_COLOR = BODY_COLOR.darker(); - private static Color CIRCLE_COLOR = Color.red; - private static Color LUG_COLOR = Color.decode("#00B2EE"); - - protected Point[] controlPoints = new Point[] { new Point(0, 0) }; - transient protected RoundRectangle2D body; - protected String name; - protected ToggleSwitchType switchType = ToggleSwitchType.DPDT; - - public MiniToggleSwitch() { - super(); - updateControlPoints(); - } - - private void updateControlPoints() { - Point firstPoint = controlPoints[0]; - int spacing = (int) SPACING.convertToPixels(); - switch (switchType) { - case SPST: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing) }; - break; - case SPDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing) }; - break; - case DPDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + spacing, firstPoint.y), - new Point(firstPoint.x + spacing, firstPoint.y + spacing), - new Point(firstPoint.x + spacing, firstPoint.y + 2 * spacing) }; - break; - case _3PDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + spacing, firstPoint.y), - new Point(firstPoint.x + spacing, firstPoint.y + spacing), - new Point(firstPoint.x + spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + 2 * spacing) }; - break; - case _4PDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + spacing, firstPoint.y), - new Point(firstPoint.x + spacing, firstPoint.y + spacing), - new Point(firstPoint.x + spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 3 * spacing, firstPoint.y), - new Point(firstPoint.x + 3 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 3 * spacing, firstPoint.y + 2 * spacing) }; - break; - case _5PDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + spacing, firstPoint.y), - new Point(firstPoint.x + spacing, firstPoint.y + spacing), - new Point(firstPoint.x + spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 3 * spacing, firstPoint.y), - new Point(firstPoint.x + 3 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 3 * spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 4 * spacing, firstPoint.y), - new Point(firstPoint.x + 4 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 4 * spacing, firstPoint.y + 2 * spacing) }; - break; - } - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - // Reset body shape. - body = null; - } - - @EditableProperty - @Override - public String getName() { - return name; - } - - @Override - public void setName(String name) { - this.name = name; - } - - @EditableProperty(name = "Type") - @Override - public ToggleSwitchType getValue() { - return switchType; - } - - @Override - public void setValue(ToggleSwitchType value) { - this.switchType = value; - updateControlPoints(); - // Reset body shape. - body = null; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - Shape body = getBody(); - // Draw body if available. - if (body != null) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - g2d.fill(body); - g2d.setComposite(oldComposite); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : BORDER_COLOR; - } - g2d.setColor(finalBorderColor); - g2d.draw(body); - } - // Do not track these changes because the whole switch has been tracked - // so far. - drawingObserver.stopTracking(); - // Draw lugs. - if (!outlineMode) { - int circleDiameter = getClosestOdd((int) CIRCLE_SIZE.convertToPixels()); - int lugWidth = getClosestOdd((int) LUG_WIDTH.convertToPixels()); - int lugHeight = getClosestOdd((int) LUG_HEIGHT.convertToPixels()); - for (Point p : controlPoints) { - g2d.setColor(CIRCLE_COLOR); - g2d.fillOval(p.x - circleDiameter / 2, p.y - circleDiameter / 2, circleDiameter, - circleDiameter); - g2d.setColor(LUG_COLOR); - g2d.fillRect(p.x - lugWidth / 2, p.y - lugHeight / 2, lugWidth, lugHeight); - } - } - } - - public RoundRectangle2D getBody() { - if (body == null) { - Point firstPoint = controlPoints[0]; - int margin = (int) MARGIN.convertToPixels(); - int spacing = (int) SPACING.convertToPixels(); - switch (switchType) { - case SPST: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, - 2 * margin, 2 * margin + spacing, margin, margin); - break; - case SPDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, - 2 * margin, 2 * margin + 2 * spacing, margin, margin); - break; - case DPDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, 2 - * margin + spacing, 2 * margin + 2 * spacing, margin, margin); - break; - case _3PDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, 2 - * margin + 2 * spacing, 2 * margin + 2 * spacing, margin, margin); - break; - case _4PDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, 2 - * margin + 3 * spacing, 2 * margin + 2 * spacing, margin, margin); - break; - case _5PDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, 2 - * margin + 4 * spacing, 2 * margin + 2 * spacing, margin, margin); - break; - } - } - return body; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int circleSize = 5 * width / 32; - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect(width / 4, 1, width / 2, height - 2, circleSize, circleSize); - g2d.setColor(BORDER_COLOR); - g2d.drawRoundRect(width / 4, 1, width / 2, height - 2, circleSize, circleSize); - g2d.setColor(CIRCLE_COLOR); - for (int i = 1; i <= 3; i++) { - g2d.fillOval(width / 2 - circleSize / 2, i * height / 4 - 3, circleSize, circleSize); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/ToggleSwitchType.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/ToggleSwitchType.java deleted file mode 100644 index 6a9e0c2e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/ToggleSwitchType.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.components.electromechanical; - -public enum ToggleSwitchType { - - SPST, SPDT, DPDT, _3PDT, _4PDT, _5PDT; - - @Override - public String toString() { - return name().replace("_", ""); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/BOM.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/BOM.java deleted file mode 100644 index adbf03b0..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/BOM.java +++ /dev/null @@ -1,170 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.Color; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.geom.Rectangle2D; -import java.util.Iterator; -import java.util.List; - -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.swing.plugins.file.BomEntry; -import org.diylc.swing.plugins.file.BomMaker; - -@ComponentDescriptor(name = "Bill of Materials", author = "Branislav Stojkovic", category = "Misc", description = "", instanceNamePrefix = "BOM", zOrder = IDIYComponent.TEXT, stretchable = false) -public class BOM extends AbstractComponent { - - public static Size DEFAULT_SIZE = new Size(10d, SizeUnit.cm); - public static Size SPACING = new Size(0.1d, SizeUnit.in); - public static Color COLOR = Color.black; - public static String DEFAULT_TEXT = "No components to show in the Bill of Materials"; - - private static final long serialVersionUID = 1L; - private Size size = DEFAULT_SIZE; - - private Point point = new Point(0, 0); - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - List bom = BomMaker.getInstance().createBom(project.getComponents()); - // Cleanup entries that do not have a value set. - Iterator iterator = bom.iterator(); - while (iterator.hasNext()) { - BomEntry entry = iterator.next(); - if (entry.getValue() == null || entry.getName().toLowerCase().contains("bom")) { - iterator.remove(); - } - } - g2d.setFont(LABEL_FONT); - g2d.setColor(componentState == ComponentState.DRAGGING - || componentState == ComponentState.SELECTED ? SELECTION_COLOR : COLOR); - // Determine maximum name length and maximum value length to calculate - // number of columns. - FontMetrics fontMetrics = g2d.getFontMetrics(); - int maxNameWidth = 0; - int maxValueWidth = 0; - int maxHeight = 0; - for (BomEntry entry : bom) { - Rectangle2D stringBounds = fontMetrics.getStringBounds(entry.getName(), g2d); - if (stringBounds.getWidth() > maxNameWidth) { - maxNameWidth = (int) stringBounds.getWidth(); - } - if (stringBounds.getHeight() > maxHeight) { - maxHeight = (int) stringBounds.getHeight(); - } - stringBounds = fontMetrics.getStringBounds(entry.getValue().toString(), g2d); - if (stringBounds.getWidth() > maxValueWidth) { - maxValueWidth = (int) stringBounds.getWidth(); - } - if (stringBounds.getHeight() > maxHeight) { - maxHeight = (int) stringBounds.getHeight(); - } - } - // Calculate maximum entry size. - int maxEntrySize = maxNameWidth + maxValueWidth + 2 * (int) SPACING.convertToPixels(); - int columnCount = (int) size.convertToPixels() / maxEntrySize; - int columnWidth = (int) size.convertToPixels() / columnCount; - int entriesPerColumn = (int) Math.ceil(1.d * bom.size() / columnCount); - if (entriesPerColumn == 0) { - g2d.drawString(DEFAULT_TEXT, point.x, point.y); - return; - } - for (int i = 0; i < bom.size(); i++) { - int columnIndex = i / entriesPerColumn; - int rowIndex = i % entriesPerColumn; - int x = point.x + columnIndex * columnWidth; - int y = point.y + rowIndex * maxHeight; - g2d.drawString(bom.get(i).getName(), x, y); - x += maxNameWidth + SPACING.convertToPixels(); - g2d.drawString(bom.get(i).getValue().toString(), x, y); - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(Color.white); - g2d.fillRect(width / 8, 0, 6 * width / 8, height - 1); - g2d.setColor(Color.black); - g2d.drawRect(width / 8, 0, 6 * width / 8, height - 1); - g2d.setFont(LABEL_FONT.deriveFont(1f * 9 * width / 32).deriveFont(Font.PLAIN)); - - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds("BOM", g2d); - - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - - // Center text horizontally and vertically. - int x = (width - textWidth) / 2 + 1; - int y = textHeight + 2; - - g2d.drawString("BOM", x, y); - - g2d.setFont(g2d.getFont().deriveFont(1f * 5 * width / 32)); - - fontMetrics = g2d.getFontMetrics(); - rect = fontMetrics.getStringBounds("resistors", g2d); - x = (width - textWidth) / 2 + 1; - y = height / 2 + 2; - g2d.drawString("resistors", x, y); - y += rect.getHeight() - 1; - g2d.drawString("tubes", x, y); - y += rect.getHeight() - 1; - g2d.drawString("diodes", x, y); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(name = "Width") - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/IconImageConverter.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/IconImageConverter.java deleted file mode 100644 index 6df78527..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/IconImageConverter.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.Image; -import java.awt.Toolkit; -import java.awt.image.BufferedImage; -import java.awt.image.ColorModel; -import java.awt.image.ImageObserver; -import java.awt.image.MemoryImageSource; -import java.awt.image.PixelGrabber; -import java.io.File; -import java.io.IOException; - -import javax.imageio.ImageIO; -import javax.swing.ImageIcon; - -import org.apache.log4j.Logger; - -import com.thoughtworks.xstream.converters.Converter; -import com.thoughtworks.xstream.converters.MarshallingContext; -import com.thoughtworks.xstream.converters.UnmarshallingContext; -import com.thoughtworks.xstream.io.HierarchicalStreamReader; -import com.thoughtworks.xstream.io.HierarchicalStreamWriter; - -public class IconImageConverter implements Converter { - - private static final Logger LOG = Logger.getLogger(IconImageConverter.class); - - @Override - public void marshal(Object object, HierarchicalStreamWriter writer, MarshallingContext context) { - ImageIcon image = (ImageIcon) object; - int width = image.getIconWidth(); - int height = image.getIconHeight(); - int[] pixels = new int[width * height]; - - if (image != null) { - try { - PixelGrabber pg = new PixelGrabber(image.getImage(), 0, 0, width, height, pixels, - 0, width); - pg.grabPixels(); - if ((pg.getStatus() & ImageObserver.ABORT) != 0) { - LOG.error("Failed to load image contents"); - } - } catch (InterruptedException e) { - LOG.error("Image load interrupted"); - } - } - LOG.debug("Writing image to file: " + width + "x" + height); - writer.addAttribute("width", Integer.toString(width)); - writer.addAttribute("height", Integer.toString(height)); - StringBuilder dataBuilder = new StringBuilder(); - int n = 0; - for (int pixel : pixels) { - dataBuilder.append(Integer.toString(pixel, 16)); - dataBuilder.append(","); - n++; - if (n % 16 == 0) { - dataBuilder.append("\n"); - } - } - writer.addAttribute("data", dataBuilder.toString()); - } - - @Override - public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { - int width = Integer.parseInt(reader.getAttribute("width")); - int height = Integer.parseInt(reader.getAttribute("height")); - LOG.debug("Reading image from file: " + width + "x" + height); - int[] pixels = new int[width * height]; - String data = reader.getAttribute("data").replace("\n", ""); - String[] splitData = data.split(","); - for (int i = 0; i < Math.min(splitData.length, pixels.length); i++) { - if (!splitData[i].trim().isEmpty()) { - try { - pixels[i] = Integer.parseInt(splitData[i].trim(), 16); - } catch (Exception e) { - pixels[i] = 0; - } - } - } - - Toolkit toolkit = Toolkit.getDefaultToolkit(); - ColorModel colorModel = ColorModel.getRGBdefault(); - Image image = toolkit.createImage(new MemoryImageSource(width, height, colorModel, pixels, - 0, width)); - - BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - bimg.setRGB(0, 0, width, height, pixels, 0, width); - File outputfile = new File("c:\\saved.png"); - try { - ImageIO.write(bimg, "png", outputfile); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return new ImageIcon(image); - } - - @Override - public boolean canConvert(Class clazz) { - return ImageIcon.class.isAssignableFrom(clazz); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/Image.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/Image.java deleted file mode 100644 index 0bdd32e6..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/Image.java +++ /dev/null @@ -1,131 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.AlphaComposite; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import javax.swing.ImageIcon; - -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -import com.thoughtworks.xstream.annotations.XStreamConverter; - -@ComponentDescriptor(name = "Image", author = "Branislav Stojkovic", category = "Misc", description = "User defined image", instanceNamePrefix = "Img", zOrder = IDIYComponent.TEXT, stretchable = false) -public class Image extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - public static String DEFAULT_TEXT = "Double click to edit text"; - private static ImageIcon ICON; - private static byte DEFAULT_SCALE = 50; - - static { - String name = "image.png"; - java.net.URL imgURL = Image.class.getResource(name); - if (imgURL != null) { - ICON = new ImageIcon(imgURL, name); - } - } - - private Point point = new Point(0, 0); - @XStreamConverter(IconImageConverter.class) - private ImageIcon image = ICON; - private byte scale = 50; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - double s = 1d * scale / DEFAULT_SCALE; - Point endPoint = new Point((int) (image.getIconWidth() * s), - (int) (image.getIconHeight() * s)); - Shape clip = g2d.getClip(); - if (!clip.contains(point) && !clip.contains(endPoint) - && !clip.contains(point.x, endPoint.y) && !clip.contains(endPoint.x, point.y)) { - return; - } - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - - g2d.scale(s, s); - g2d.drawImage(image.getImage(), (int) (point.x / s), (int) (point.y / s), null); - if (componentState == ComponentState.SELECTED) { - g2d.setComposite(oldComposite); - g2d.scale(1 / s, 1 / s); - g2d.setColor(SELECTION_COLOR); - g2d.drawRect(point.x, point.y, endPoint.x, endPoint.y); - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.drawImage(ICON.getImage(), point.x, point.y, null); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(defaultable = false) - public ImageIcon getImage() { - return image; - } - - public void setImage(ImageIcon image) { - this.image = image; - } - - @EditableProperty(defaultable = false) - public byte getScale() { - return scale; - } - - public void setScale(byte scale) { - this.scale = scale; - } - - @Override - public String getName() { - return super.getName(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/Label.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/Label.java deleted file mode 100644 index 7e7bb802..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/Label.java +++ /dev/null @@ -1,202 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.Color; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.geom.Rectangle2D; - -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -@ComponentDescriptor(name = "Label", author = "Branislav Stojkovic", category = "Misc", description = "User defined label", instanceNamePrefix = "L", zOrder = IDIYComponent.TEXT, stretchable = false) -public class Label extends AbstractComponent { - - public static String DEFAULT_TEXT = "Double click to edit text"; - - private static final long serialVersionUID = 1L; - - private Point point = new Point(0, 0); - private String text = DEFAULT_TEXT; - private Font font = LABEL_FONT; - private Color color = LABEL_COLOR; - private boolean center = true; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - g2d.setColor(componentState == ComponentState.SELECTED ? LABEL_COLOR_SELECTED : color); - g2d.setFont(font); - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds(text, g2d); - - int textHeight = (int) rect.getHeight(); - int textWidth = (int) rect.getWidth(); - - int x; - int y; - if (center) { - // Center text horizontally and vertically - x = point.x - textWidth / 2; - y = point.y - textHeight / 2 + fontMetrics.getAscent(); - } else { - x = point.x; - y = point.y - textHeight; - } - - g2d.drawString(text, x, y); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(LABEL_COLOR); - g2d.setFont(LABEL_FONT.deriveFont(13f * width / 32).deriveFont(Font.PLAIN)); - - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds("Abc", g2d); - - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - - // Center text horizontally and vertically. - int x = (width - textWidth) / 2 + 1; - int y = (height - textHeight) / 2 + fontMetrics.getAscent(); - - g2d.drawString("Abc", x, y); - } - - @EditableProperty - public Font getFont() { - return font; - } - - public void setFont(Font font) { - this.font = font; - } - - // Bold and italic fields are named to be alphabetically after Font. This is - // important! - - @EditableProperty(name = "Font Bold") - public boolean getBold() { - return font.isBold(); - } - - public void setBold(boolean bold) { - if (bold) { - if (font.isItalic()) { - font = font.deriveFont(Font.BOLD + Font.ITALIC); - } else { - font = font.deriveFont(Font.BOLD); - } - } else { - if (font.isItalic()) { - font = font.deriveFont(Font.ITALIC); - } else { - font = font.deriveFont(Font.PLAIN); - } - } - } - - @EditableProperty(name = "Font Italic") - public boolean getItalic() { - return font.isItalic(); - } - - public void setItalic(boolean italic) { - if (italic) { - if (font.isBold()) { - font = font.deriveFont(Font.BOLD + Font.ITALIC); - } else { - font = font.deriveFont(Font.ITALIC); - } - } else { - if (font.isBold()) { - font = font.deriveFont(Font.BOLD); - } else { - font = font.deriveFont(Font.PLAIN); - } - } - } - - @EditableProperty(name = "Font Size") - public int getFontSize() { - return font.getSize(); - } - - public void setFontSize(int size) { - font = font.deriveFont((float) size); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(defaultable = false) - public String getText() { - return text; - } - - public void setText(String text) { - this.text = text; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - public boolean getCenter() { - return center; - } - - public void setCenter(boolean center) { - this.center = center; - } - - @Override - public String getName() { - return super.getName(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/image.png b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/image.png deleted file mode 100644 index b663869f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/image.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AbstractPotentiometer.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AbstractPotentiometer.java deleted file mode 100644 index b6151fbb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AbstractPotentiometer.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Point; - -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; - -public abstract class AbstractPotentiometer extends - AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - protected Point[] controlPoints; - - protected Resistance resistance = new Resistance(100d, ResistanceUnit.K); - protected Orientation orientation = Orientation.DEFAULT; - protected Taper taper = Taper.LIN; - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @EditableProperty - public Resistance getResistance() { - return resistance; - } - - public void setResistance(Resistance resistance) { - this.resistance = resistance; - } - - @Override - public PotentiometerValue getValue() { - return new PotentiometerValue(resistance, taper); - } - - @Override - public void setValue(PotentiometerValue value) { - this.resistance = value.getResistance(); - this.taper = value.getTaper(); - } - - @EditableProperty - public Taper getTaper() { - return taper; - } - - public void setTaper(Taper taper) { - this.taper = taper; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java deleted file mode 100644 index 71472d91..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java +++ /dev/null @@ -1,149 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -@ComponentDescriptor(name = "Electrolytic Capacitor (axial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Axial electrolytic capacitor, similar to Sprague Atom, F&T, etc", zOrder = IDIYComponent.COMPONENT) -public class AxialElectrolyticCapacitor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#EAADEA"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - public static Color MARKER_COLOR = Color.gray; - public static Color TICK_COLOR = Color.white; - - private Capacitance value = new Capacitance(1d, CapacitanceUnit.uF); - private Voltage voltage = Voltage._63V; - - private Color markerColor = MARKER_COLOR; - private Color tickColor = TICK_COLOR; - private boolean polarized = true; - - public AxialElectrolyticCapacitor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @EditableProperty - public Voltage getVoltage() { - return voltage; - } - - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(4, height / 2 - 3, width - 8, 6); - g2d.setColor(MARKER_COLOR); - g2d.fillRect(width - 9, height / 2 - 3, 5, 6); - g2d.setColor(TICK_COLOR); - g2d.drawLine(width - 6, height / 2 - 1, width - 6, height / 2 + 1); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(4, height / 2 - 3, width - 8, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @EditableProperty(name = "Marker") - public Color getMarkerColor() { - return markerColor; - } - - public void setMarkerColor(Color coverColor) { - this.markerColor = coverColor; - } - - @EditableProperty(name = "Tick") - public Color getTickColor() { - return tickColor; - } - - public void setTickColor(Color tickColor) { - this.tickColor = tickColor; - } - - @EditableProperty(name = "Polarized") - public boolean getPolarized() { - return polarized; - } - - public void setPolarized(boolean polarized) { - this.polarized = polarized; - } - - @Override - protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels())); - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - if (polarized) { - int width = getClosestOdd(getWidth().convertToPixels()); - int markerLength = (int) (getLength().convertToPixels() * 0.2); - if (!outlineMode) { - g2d.setColor(markerColor); - g2d.fillRect((int) getLength().convertToPixels() - markerLength, 0, markerLength, - width); - } - Color finalTickColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalTickColor = theme.getOutlineColor(); - } else { - finalTickColor = tickColor; - } - g2d.setColor(finalTickColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.drawLine((int) getLength().convertToPixels() - markerLength / 2, - (int) (width / 2 - width * 0.15), (int) getLength().convertToPixels() - - markerLength / 2, (int) (width / 2 + width * 0.15)); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialFilmCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialFilmCapacitor.java deleted file mode 100644 index 9b75f089..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialFilmCapacitor.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Film Capacitor (axial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Axial film capacitor, similar to Mallory 150s", zOrder = IDIYComponent.COMPONENT) -public class AxialFilmCapacitor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#FFE303"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private Capacitance value = new Capacitance(22d, CapacitanceUnit.nF); - private Voltage voltage = Voltage._63V; - - public AxialFilmCapacitor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - protected boolean supportsStandingMode() { - return true; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @EditableProperty - public Voltage getVoltage() { - return voltage; - } - - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(4, height / 2 - 3, width - 8, 6); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(4, height / 2 - 3, width - 8, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @Override - protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/CapacitorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/CapacitorSymbol.java deleted file mode 100644 index a1a7f6ce..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/CapacitorSymbol.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.GeneralPath; - -import org.diylc.components.AbstractSchematicLeadedSymbol; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Capacitor (schematic symbol)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Capacitor schematic symbol with an optional polarity sign", zOrder = IDIYComponent.COMPONENT) -public class CapacitorSymbol extends AbstractSchematicLeadedSymbol { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_LENGTH = new Size(0.05, SizeUnit.in); - public static Size DEFAULT_WIDTH = new Size(0.15, SizeUnit.in); - - private Capacitance value = new Capacitance(22d, CapacitanceUnit.nF); - private Voltage voltage = Voltage._63V; - private boolean polarized = false; - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @EditableProperty - public Voltage getVoltage() { - return voltage; - } - - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - @EditableProperty - public boolean getPolarized() { - return polarized; - } - - public void setPolarized(boolean polarized) { - this.polarized = polarized; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, 13, height / 2); - g2d.drawLine(width - 13, height / 2, width, height / 2); - g2d.setColor(COLOR); - g2d.drawLine(14, height / 2 - 6, 14, height / 2 + 6); - g2d.drawLine(width - 14, height / 2 - 6, width - 14, height / 2 + 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_WIDTH; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_LENGTH; - } - - @Override - protected Shape getBodyShape() { - GeneralPath polyline = new GeneralPath(); - double length = getLength().convertToPixels(); - double width = getWidth().convertToPixels(); - polyline.moveTo(0, 0); - polyline.lineTo(0, width); - polyline.moveTo(length, 0); - polyline.lineTo(length, width); - return polyline; - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - if (polarized) { - // Draw + sign. - g2d.setColor(getBorderColor()); - int plusSize = getClosestOdd(getWidth().convertToPixels() / 4); - int x = -plusSize; - int y = plusSize; - g2d.drawLine(x - plusSize / 2, y, x + plusSize / 2, y); - g2d.drawLine(x, y - plusSize / 2, x, y + plusSize / 2); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerPanel.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerPanel.java deleted file mode 100644 index cc84a5c2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerPanel.java +++ /dev/null @@ -1,279 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Potentiometer (panel mount)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.SINGLE_CLICK, instanceNamePrefix = "VR", description = "Panel mount potentiometer with solder lugs", zOrder = IDIYComponent.COMPONENT, stretchable = false) -public class PotentiometerPanel extends AbstractPotentiometer { - - private static final long serialVersionUID = 1L; - - protected static Size BODY_DIAMETER = new Size(1d, SizeUnit.in); - protected static Size SPACING = new Size(0.3d, SizeUnit.in); - protected static Size LUG_DIAMETER = new Size(0.15d, SizeUnit.in); - protected static Color BODY_COLOR = Color.gray.brighter(); - protected static Color BORDER_COLOR = Color.gray; - - protected Size bodyDiameter = BODY_DIAMETER; - protected Size spacing = SPACING; - protected Size lugDiameter = LUG_DIAMETER; - protected Color bodyColor = BODY_COLOR; - protected Color borderColor = BORDER_COLOR; - // Array of 7 elements: 3 lug connectors, 1 pot body and 3 lugs - transient protected Area[] body = null; - - public PotentiometerPanel() { - controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - updateControlPoints(); - } - - protected void updateControlPoints() { - int spacing = (int) this.spacing.convertToPixels(); - switch (orientation) { - case DEFAULT: - controlPoints[1].setLocation(controlPoints[0].x + spacing, controlPoints[0].y); - controlPoints[2].setLocation(controlPoints[0].x + 2 * spacing, controlPoints[0].y); - break; - case _90: - controlPoints[1].setLocation(controlPoints[0].x, controlPoints[0].y + spacing); - controlPoints[2].setLocation(controlPoints[0].x, controlPoints[0].y + 2 * spacing); - break; - case _180: - controlPoints[1].setLocation(controlPoints[0].x - spacing, controlPoints[0].y); - controlPoints[2].setLocation(controlPoints[0].x - 2 * spacing, controlPoints[0].y); - break; - case _270: - controlPoints[1].setLocation(controlPoints[0].x, controlPoints[0].y - spacing); - controlPoints[2].setLocation(controlPoints[0].x, controlPoints[0].y - 2 * spacing); - break; - default: - break; - } - } - - public Area[] getBody() { - int spacing = (int) this.spacing.convertToPixels(); - int diameter = getClosestOdd(bodyDiameter.convertToPixels()); - if (body == null) { - body = new Area[7]; - - // Add lugs. - int lugDiameter = getClosestOdd(this.lugDiameter.convertToPixels()); - int holeDiameter = getClosestOdd(this.lugDiameter.convertToPixels() / 2); - for (int i = 0; i < 3; i++) { - Area area = new Area(new Ellipse2D.Double(controlPoints[i].x - lugDiameter / 2, - controlPoints[i].y - lugDiameter / 2, lugDiameter, lugDiameter)); - body[4 + i] = area; - } - - switch (orientation) { - case DEFAULT: - body[3] = new Area(new Ellipse2D.Double( - controlPoints[0].x + spacing - diameter / 2, controlPoints[0].y - spacing - / 2 - diameter, diameter, diameter)); - for (int i = 0; i < 3; i++) { - body[i] = new Area(new Rectangle2D.Double( - controlPoints[i].x - holeDiameter / 2, controlPoints[i].y - - (spacing + diameter) / 2, holeDiameter, - (spacing + diameter) / 2)); - } - break; - case _90: - body[3] = new Area(new Ellipse2D.Double(controlPoints[0].x + spacing / 2, - controlPoints[0].y + spacing - diameter / 2, diameter, diameter)); - for (int i = 0; i < 3; i++) { - body[i] = new Area(new Rectangle2D.Double(controlPoints[i].x, - controlPoints[i].y - holeDiameter / 2, (spacing + diameter) / 2, - holeDiameter)); - } - break; - case _180: - body[3] = new Area(new Ellipse2D.Double( - controlPoints[0].x - spacing - diameter / 2, controlPoints[0].y + spacing - / 2, diameter, diameter)); - for (int i = 0; i < 3; i++) { - body[i] = new Area(new Rectangle2D.Double( - controlPoints[i].x - holeDiameter / 2, controlPoints[i].y, - holeDiameter, (spacing + diameter) / 2)); - } - break; - case _270: - body[3] = new Area(new Ellipse2D.Double( - controlPoints[0].x - spacing / 2 - diameter, controlPoints[0].y - spacing - - diameter / 2, diameter, diameter)); - for (int i = 0; i < 3; i++) { - body[i] = new Area(new Rectangle2D.Double(controlPoints[i].x - - (spacing + diameter) / 2, controlPoints[i].y - holeDiameter / 2, - (spacing + diameter) / 2, holeDiameter)); - } - break; - default: - break; - } - for (int i = 0; i < 3; i++) { - for (int j = 3; j < 7; j++) { - body[i].subtract(body[j]); - } - } - // Make holes in the lugs. - for (int i = 0; i < 3; i++) { - body[4 + i].subtract(new Area(new Ellipse2D.Double(controlPoints[i].x - - holeDiameter / 2, controlPoints[i].y - holeDiameter / 2, holeDiameter, - holeDiameter))); - } - } - return body; - } - - @Override - public void setControlPoint(Point point, int index) { - super.setControlPoint(point, index); - body = null; - } - - @Override - public void setOrientation(Orientation orientation) { - super.setOrientation(orientation); - updateControlPoints(); - body = null; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - for (Area shape : getBody()) { - if (shape != null) { - g2d.setColor(bodyColor); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.fill(shape); - g2d.setComposite(oldComposite); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : borderColor); - g2d.draw(shape); - } - } - // Draw caption. - g2d.setFont(LABEL_FONT); - g2d - .setColor(componentState == ComponentState.SELECTED ? LABEL_COLOR_SELECTED - : LABEL_COLOR); - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D bodyRect = getBody()[3].getBounds2D(); - Rectangle2D rect = fontMetrics.getStringBounds(getName(), g2d); - - int textHeight = (int) rect.getHeight(); - int textWidth = (int) rect.getWidth(); - int panelHeight = (int) bodyRect.getHeight(); - int panelWidth = (int) bodyRect.getWidth(); - - int x = (panelWidth - textWidth) / 2; - int y = panelHeight / 2 - textHeight + fontMetrics.getAscent(); - - g2d.drawString(getName(), (int) (bodyRect.getX() + x), (int) (bodyRect.getY() + y)); - - // Draw value. - rect = fontMetrics.getStringBounds(getValue().toString(), g2d); - - textHeight = (int) rect.getHeight(); - textWidth = (int) rect.getWidth(); - - x = (panelWidth - textWidth) / 2; - y = panelHeight / 2 + fontMetrics.getAscent(); - - g2d.drawString(getValue().toString(), (int) (bodyRect.getX() + x), - (int) (bodyRect.getY() + y)); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 4 * width / 32; - int spacing = width / 3 - 1; - g2d.setColor(BORDER_COLOR); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2 * width / 32)); - g2d.drawLine(width / 2 - spacing, height / 2, width / 2 - spacing, height - margin); - g2d.drawLine(width / 2 + spacing, height / 2, width / 2 + spacing, height - margin); - g2d.drawLine(width / 2, height / 2, width / 2, height - margin); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(4 * width / 32)); - g2d.drawLine(width / 2 - spacing, height - margin, width / 2 - spacing, height - margin); - g2d.drawLine(width / 2 + spacing, height - margin, width / 2 + spacing, height - margin); - g2d.drawLine(width / 2, height - margin, width / 2, height - margin); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(BODY_COLOR); - g2d.fillOval(margin, margin / 2, width - 2 * margin, height - 2 * margin); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(margin, margin / 2, width - 2 * margin, height - 2 * margin); - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - updateControlPoints(); - body = null; - } - - @EditableProperty(name = "Diameter") - public Size getBodyDiameter() { - return bodyDiameter; - } - - public void setBodyDiameter(Size bodyDiameter) { - this.bodyDiameter = bodyDiameter; - } - - @EditableProperty(name = "Lug size") - public Size getLugDiameter() { - return lugDiameter; - } - - public void setLugDiameter(Size lugDiameter) { - this.lugDiameter = lugDiameter; - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerValue.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerValue.java deleted file mode 100644 index 26f3caee..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerValue.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.diylc.components.passive; - -import org.diylc.core.measures.Resistance; - -public class PotentiometerValue { - - private Resistance resistance; - private Taper taper; - - public PotentiometerValue(Resistance resistance, Taper taper) { - super(); - this.resistance = resistance; - this.taper = taper; - } - - public Resistance getResistance() { - return resistance; - } - - public Taper getTaper() { - return taper; - } - - @Override - public String toString() { - return resistance.toString() + " " + taper.toString(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Power.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Power.java deleted file mode 100644 index 18f6d77c..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Power.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.diylc.components.passive; - -public enum Power { - - EIGHT("1/8W"), QUARTER("1/4W"), HALF("1/2W"), ONE("1W"), TWO("2W"), FIVE("5W"), TEN("10W"), FIFTY( - "50W"), HUNDRED("100W"); - - String label; - - Power(String label) { - this.label = label; - } - - @Override - public String toString() { - return label; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java deleted file mode 100644 index 876a800d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Ellipse2D; - -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Ceramic Capacitor (radial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Standard radial ceramic capacitor", zOrder = IDIYComponent.COMPONENT) -public class RadialCeramicDiskCapacitor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#F0E68C"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private Capacitance value = new Capacitance(470d, CapacitanceUnit.pF); - private Voltage voltage = Voltage._63V; - - public RadialCeramicDiskCapacitor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @EditableProperty - public Voltage getVoltage() { - return voltage; - } - - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillOval(4, height / 2 - 3, width - 8, 6); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(4, height / 2 - 3, width - 8, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @Override - protected Shape getBodyShape() { - return new Ellipse2D.Double(0f, 0f, getLength().convertToPixels(), getClosestOdd(getWidth() - .convertToPixels())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialElectrolytic.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialElectrolytic.java deleted file mode 100644 index 901a587f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialElectrolytic.java +++ /dev/null @@ -1,184 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -@ComponentDescriptor(name = "Electrolytic Capacitor", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Vertical mounted electrolytic capacitor, polarized or bipolar", zOrder = IDIYComponent.COMPONENT) -public class RadialElectrolytic extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_SIZE = new Size(1d / 2, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#EAADEA"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - public static Color MARKER_COLOR = Color.gray; - public static Color TICK_COLOR = Color.white; - - private Capacitance value = new Capacitance(1d, CapacitanceUnit.uF); - private Voltage voltage = Voltage._63V; - - private Color markerColor = MARKER_COLOR; - private Color tickColor = TICK_COLOR; - private boolean polarized = true; - - public RadialElectrolytic() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @EditableProperty - public Voltage getVoltage() { - return voltage; - } - - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BODY_COLOR); - int margin = 3; - Ellipse2D body = new Ellipse2D.Double(margin, margin, getClosestOdd(width - 2 * margin), - getClosestOdd(width - 2 * margin)); - g2d.fill(body); - Area marker = new Area(body); - marker.subtract(new Area(new Rectangle2D.Double(margin, margin, width - 4 * margin, - getClosestOdd(width - 2 * margin)))); - g2d.setColor(MARKER_COLOR); - g2d.fill(marker); - g2d.setColor(TICK_COLOR); - g2d.drawLine(width - 2 * margin, height / 2 - 2, width - 2 * margin, height / 2 + 2); - g2d.setColor(BORDER_COLOR); - g2d.draw(body); - // g2d.setColor(COVER_COLOR.darker()); - // g2d.drawLine(innerMargin + 2, innerMargin + 2, width - innerMargin - - // 2, width - innerMargin - // - 2); - // g2d.drawLine(innerMargin + 2, width - innerMargin - 2, width - - // innerMargin - 2, - // innerMargin + 2); - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - if (polarized) { - int totalDiameter = getClosestOdd(getLength().convertToPixels()); - if (!outlineMode) { - Area area = new Area(getBodyShape()); - area.subtract(new Area(new Rectangle2D.Double(0, 0, totalDiameter * 0.8, - totalDiameter))); - g2d.setColor(markerColor); - g2d.fill(area); - } - Color finalTickColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalTickColor = theme.getOutlineColor(); - } else { - finalTickColor = tickColor; - } - g2d.setColor(finalTickColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.drawLine((int) (totalDiameter * 0.9), totalDiameter / 2 - - (int) (totalDiameter * 0.05), (int) (totalDiameter * 0.9), totalDiameter / 2 - + (int) (totalDiameter * 0.05)); - } - // int coverDiameter = getClosestOdd(totalDiameter * 3 / 4); - // g2d.setColor(coverColor); - // int position = (totalDiameter - coverDiameter) / 2; - // g2d.fillOval(position, position, coverDiameter, coverDiameter); - // g2d.setColor(coverColor.darker()); - // g2d.drawLine(position + coverDiameter / 5, position + coverDiameter / - // 5, position + 4 - // * coverDiameter / 5, position + 4 * coverDiameter / 5); - // g2d.drawLine(position + coverDiameter / 5, position + 4 * - // coverDiameter / 5, position + 4 - // * coverDiameter / 5, position + coverDiameter / 5); - } - - @Override - protected Size getDefaultWidth() { - return null; - } - - @Override - public Size getWidth() { - return super.getWidth(); - } - - @Override - protected Size getDefaultLength() { - // We'll reuse width property to set the diameter. - return DEFAULT_SIZE; - } - - @EditableProperty(name = "Diameter") - @Override - public Size getLength() { - return super.getLength(); - } - - @EditableProperty(name = "Marker") - public Color getMarkerColor() { - return markerColor; - } - - public void setMarkerColor(Color coverColor) { - this.markerColor = coverColor; - } - - @EditableProperty(name = "Tick") - public Color getTickColor() { - return tickColor; - } - - public void setTickColor(Color tickColor) { - this.tickColor = tickColor; - } - - @EditableProperty(name = "Polarized") - public boolean getPolarized() { - return polarized; - } - - public void setPolarized(boolean polarized) { - this.polarized = polarized; - } - - @Override - protected Shape getBodyShape() { - return new Ellipse2D.Double(0f, 0f, getClosestOdd(getLength().convertToPixels()), - getClosestOdd(getLength().convertToPixels())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialFilmCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialFilmCapacitor.java deleted file mode 100644 index 044b7f14..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialFilmCapacitor.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Film Capacitor (radial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Radial film capacitor, similar to Sprague Orange Drop", zOrder = IDIYComponent.COMPONENT) -public class RadialFilmCapacitor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 4, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#FF8000"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private Capacitance value = new Capacitance(123d, CapacitanceUnit.nF); - private Voltage voltage = Voltage._63V; - - public RadialFilmCapacitor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @EditableProperty - public Voltage getVoltage() { - return voltage; - } - - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect(4, height / 2 - 3, width - 8, 6, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawRoundRect(4, height / 2 - 3, width - 8, 6, 5, 5); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @Override - protected Shape getBodyShape() { - double radius = getWidth().convertToPixels() * 0.7; - return new RoundRectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels()), radius, radius); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java deleted file mode 100644 index d47e14af..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.ObjectCache; -import org.diylc.common.ResistorColorCode; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.annotations.PositiveMeasureValidator; -import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Resistor", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "R", description = "test", zOrder = IDIYComponent.COMPONENT) -public class Resistor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#82CFFD"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private Resistance value = new Resistance(123d, ResistanceUnit.K); - private Power power = Power.HALF; - private ResistorColorCode colorCode = ResistorColorCode._5_BAND; - - public Resistor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - protected boolean supportsStandingMode() { - return true; - } - - @EditableProperty(validatorClass = PositiveMeasureValidator.class) - public Resistance getValue() { - return value; - } - - public void setValue(Resistance value) { - this.value = value; - } - - @EditableProperty - public Power getPower() { - return power; - } - - public void setPower(Power power) { - this.power = power; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(4, height / 2 - 3, width - 8, 6); - g2d.setColor(Color.red); - g2d.drawLine(7, height / 2 - 3, 7, height / 2 + 3); - g2d.setColor(Color.orange); - g2d.drawLine(11, height / 2 - 3, 11, height / 2 + 3); - g2d.setColor(Color.black); - g2d.drawLine(15, height / 2 - 3, 15, height / 2 + 3); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(4, height / 2 - 3, width - 8, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @EditableProperty(name = "Color code") - public ResistorColorCode getColorCode() { - return colorCode; - } - - public void setColorCode(ResistorColorCode colorCode) { - this.colorCode = colorCode; - } - - @Override - protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels())); - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - // int width = getWidth().convertToPixels(); - if (colorCode == ResistorColorCode.NONE || outlineMode) { - return; - } - int height = getClosestOdd(getWidth().convertToPixels()); - Color[] bands = value.getColorCode(colorCode); - int x = 4; - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - for (int i = 0; i < bands.length; i++) { - g2d.setColor(bands[i]); - g2d.drawLine(x, 1, x, height - 1); - x += 5; - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ResistorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ResistorSymbol.java deleted file mode 100644 index 32c2aa0c..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ResistorSymbol.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.GeneralPath; - -import org.diylc.components.AbstractSchematicLeadedSymbol; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Resistor (schematic symbol)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "R", description = "", zOrder = IDIYComponent.COMPONENT) -public class ResistorSymbol extends AbstractSchematicLeadedSymbol { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_LENGTH = new Size(0.3, SizeUnit.in); - public static Size DEFAULT_WIDTH = new Size(0.08, SizeUnit.in); - - private Resistance value = new Resistance(100d, ResistanceUnit.K); - private Power power = Power.HALF; - - @EditableProperty - public Resistance getValue() { - return value; - } - - public void setValue(Resistance value) { - this.value = value; - } - - @EditableProperty - public Power getPower() { - return power; - } - - public void setPower(Power power) { - this.power = power; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, 4, height / 2); - g2d.drawLine(width - 4, height / 2, width, height / 2); - g2d.setColor(COLOR); - g2d.drawPolyline(new int[] { 4, 6, 10, 14, 18, 22, 26, 28 }, new int[] { height / 2, - height / 2 + 2, height / 2 - 2, height / 2 + 2, height / 2 - 2, height / 2 + 2, - height / 2 - 2, height / 2 }, 8); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_WIDTH; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_LENGTH; - } - - @Override - protected Shape getBodyShape() { - GeneralPath polyline = new GeneralPath(); - double length = getLength().convertToPixels(); - double width = getWidth().convertToPixels(); - polyline.moveTo(0, width / 2); - polyline.lineTo(length / 16, width); - polyline.lineTo(3 * length / 16, 0); - polyline.lineTo(5 * length / 16, width); - polyline.lineTo(7 * length / 16, 0); - polyline.lineTo(9 * length / 16, width); - polyline.lineTo(11 * length / 16, 0); - polyline.lineTo(13 * length / 16, width); - polyline.lineTo(15 * length / 16, 0); - polyline.lineTo(length, width / 2); - return polyline; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ResistorValue.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ResistorValue.java deleted file mode 100644 index 4fbe5c80..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ResistorValue.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.diylc.components.passive; - -import org.diylc.core.measures.Resistance; - -public class ResistorValue { - - private Resistance resistance; - private Power power; - - public ResistorValue(Resistance resistance, Power power) { - super(); - this.resistance = resistance; - this.power = power; - } - - public Resistance getResistance() { - return resistance; - } - - public Power getPower() { - return power; - } - - @Override - public String toString() { - return resistance.toString() + power.toString(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Taper.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Taper.java deleted file mode 100644 index 5dcd8f93..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Taper.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.diylc.components.passive; - -public enum Taper { - - LIN, LOG, REV_LOG, W, S; - - @Override - public String toString() { - return name().substring(0, 1).toUpperCase() - + name().substring(1).toLowerCase().replace("_", " "); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/TrimmerPotentiometer.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/TrimmerPotentiometer.java deleted file mode 100644 index f117ccf7..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/TrimmerPotentiometer.java +++ /dev/null @@ -1,375 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Trimmer Potentiometer", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.SINGLE_CLICK, instanceNamePrefix = "VR", description = "Various types of board mounted trimmer potentiometers", zOrder = IDIYComponent.COMPONENT, stretchable = false) -public class TrimmerPotentiometer extends AbstractPotentiometer { - - private static final long serialVersionUID = 1L; - - protected static Size FLAT_BODY_SIZE = new Size(9.5d, SizeUnit.mm); - protected static Size FLAT_SHAFT_SIZE = new Size(4d, SizeUnit.mm); - protected static Size VERTICAL_BODY_LENGTH = new Size(9.5d, SizeUnit.mm); - protected static Size VERTICAL_BODY_WIDTH = new Size(4.5d, SizeUnit.mm); - protected static Size SPACING = new Size(0.1d, SizeUnit.in); - private static Color BODY_COLOR = Color.decode("#FFFFE0"); - private static Color BORDER_COLOR = Color.decode("#8E8E38"); - private static Color SHAFT_COLOR = Color.decode("#FFFFE0"); - private static Color SHAFT_BORDER_COLOR = Color.decode("#8E8E38"); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Size PIN_SIZE = new Size(0.03d, SizeUnit.in); - - protected Color bodyColor = BODY_COLOR; - protected Color borderColor = BORDER_COLOR; - // Array of 7 elements: 3 lug connectors, 1 pot body and 3 lugs - transient protected Shape[] body = null; - - protected TrimmerType type = TrimmerType.FLAT_SMALL; - - public TrimmerPotentiometer() { - controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - updateControlPoints(); - } - - protected void updateControlPoints() { - int spacing = (int) SPACING.convertToPixels(); - int dx1 = 0; - int dy1 = 0; - int dx2 = 0; - int dy2 = 0; - switch (orientation) { - case DEFAULT: - switch (type) { - case FLAT_SMALL: - dx1 = 2 * spacing; - dy1 = spacing; - dx2 = 0; - dy2 = 2 * spacing; - break; - case FLAT_LARGE: - dx1 = 4 * spacing; - dy1 = spacing; - dx2 = 0; - dy2 = 2 * spacing; - break; - case VERTICAL_INLINE: - dx1 = 0; - dy1 = spacing; - dx2 = 0; - dy2 = 2 * spacing; - break; - case VERTICAL_OFFSET: - dx1 = spacing; - dy1 = spacing; - dx2 = 0; - dy2 = 2 * spacing; - break; - } - break; - case _90: - switch (type) { - case FLAT_SMALL: - dx1 = -spacing; - dy1 = 2 * spacing; - dx2 = -2 * spacing; - dy2 = 0; - break; - case FLAT_LARGE: - dx1 = -spacing; - dy1 = 4 * spacing; - dx2 = -2 * spacing; - dy2 = 0; - break; - case VERTICAL_INLINE: - dx1 = -spacing; - dy1 = 0; - dx2 = -2 * spacing; - dy2 = 0; - break; - case VERTICAL_OFFSET: - dx1 = -spacing; - dy1 = spacing; - dx2 = -2 * spacing; - dy2 = 0; - break; - } - break; - case _180: - switch (type) { - case FLAT_SMALL: - dx1 = -2 * spacing; - dy1 = -spacing; - dx2 = 0; - dy2 = -2 * spacing; - break; - case FLAT_LARGE: - dx1 = -4 * spacing; - dy1 = -spacing; - dx2 = 0; - dy2 = -2 * spacing; - break; - case VERTICAL_INLINE: - dx1 = 0; - dy1 = -spacing; - dx2 = 0; - dy2 = -2 * spacing; - break; - case VERTICAL_OFFSET: - dx1 = -spacing; - dy1 = -spacing; - dx2 = 0; - dy2 = -2 * spacing; - break; - } - break; - case _270: - switch (type) { - case FLAT_SMALL: - dx1 = spacing; - dy1 = -2 * spacing; - dx2 = 2 * spacing; - dy2 = 0; - break; - case FLAT_LARGE: - dx1 = spacing; - dy1 = -4 * spacing; - dx2 = 2 * spacing; - dy2 = 0; - break; - case VERTICAL_INLINE: - dx1 = spacing; - dy1 = 0; - dx2 = 2 * spacing; - dy2 = 0; - break; - case VERTICAL_OFFSET: - dx1 = spacing; - dy1 = -spacing; - dx2 = 2 * spacing; - dy2 = 0; - break; - } - break; - default: - break; - } - controlPoints[1].setLocation(controlPoints[0].x + dx1, controlPoints[0].y + dy1); - controlPoints[2].setLocation(controlPoints[0].x + dx2, controlPoints[0].y + dy2); - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[2]; - - // Calculate the center point as center of the minimum bounding - // rectangle. - int centerX = (Math.max(Math.max(controlPoints[0].x, controlPoints[1].x), - controlPoints[2].x) + Math.min( - Math.min(controlPoints[0].x, controlPoints[1].x), controlPoints[2].x)) / 2; - int centerY = (Math.max(Math.max(controlPoints[0].y, controlPoints[1].y), - controlPoints[2].y) + Math.min( - Math.min(controlPoints[0].y, controlPoints[1].y), controlPoints[2].y)) / 2; - - // Calculate body dimensions based on the selected type. - int length = 0; - int width = 0; - switch (type) { - case FLAT_LARGE: - case FLAT_SMALL: - length = getClosestOdd(FLAT_BODY_SIZE.convertToPixels()); - width = length; - int shaftSize = getClosestOdd(FLAT_SHAFT_SIZE.convertToPixels()); - Area shaft = new Area(new Ellipse2D.Double(centerX - shaftSize / 2, centerY - - shaftSize / 2, shaftSize, shaftSize)); - Area slot = new Area(new Rectangle2D.Double(centerX - shaftSize / 2, centerY - - shaftSize / 8, shaftSize, shaftSize / 4)); - slot.transform(AffineTransform.getRotateInstance(Math.PI / 4, centerX, centerY)); - shaft.subtract(slot); - body[1] = shaft; - break; - case VERTICAL_INLINE: - case VERTICAL_OFFSET: - length = getClosestOdd(VERTICAL_BODY_LENGTH.convertToPixels()); - width = getClosestOdd(VERTICAL_BODY_WIDTH.convertToPixels()); - break; - } - if (orientation == Orientation.DEFAULT || orientation == Orientation._180) { - int p = length; - length = width; - width = p; - } - body[0] = new Rectangle2D.Double(centerX - length / 2, centerY - width / 2, length, - width); - } - return body; - } - - @Override - public void setControlPoint(Point point, int index) { - super.setControlPoint(point, index); - body = null; - } - - @Override - public void setOrientation(Orientation orientation) { - super.setOrientation(orientation); - updateControlPoints(); - body = null; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - Shape mainShape = getBody()[0]; - Shape shaftShape = getBody()[1]; - if (mainShape != null) { - g2d.setColor(bodyColor); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.fill(mainShape); - if (shaftShape != null) { - g2d.setColor(SHAFT_COLOR); - g2d.fill(shaftShape); - g2d.setColor(SHAFT_BORDER_COLOR); - g2d.draw(shaftShape); - } - g2d.setComposite(oldComposite); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); - g2d.draw(mainShape); - } - - // Draw pins. - int pinSize = getClosestOdd(PIN_SIZE.convertToPixels()); - for (Point point : controlPoints) { - g2d.setColor(PIN_COLOR); - g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - } - - // Draw label. - g2d.setFont(LABEL_FONT); - g2d - .setColor(componentState == ComponentState.SELECTED ? LABEL_COLOR_SELECTED - : LABEL_COLOR); - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D bodyRect = getBody()[0].getBounds2D(); - Rectangle2D rect = fontMetrics.getStringBounds(getName(), g2d); - - int textHeight = (int) rect.getHeight(); - int textWidth = (int) rect.getWidth(); - int panelHeight = (int) bodyRect.getHeight(); - int panelWidth = (int) bodyRect.getWidth(); - - int x = (panelWidth - textWidth) / 2; - int y = (panelHeight - textHeight) / 2 + fontMetrics.getAscent(); - - g2d.drawString(getName(), (int) (bodyRect.getX() + x), (int) (bodyRect.getY() + y)); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 4; - g2d.setColor(BODY_COLOR); - g2d.fillRect(margin, margin, width - 2 * margin, width - 2 * margin); - g2d.setColor(BORDER_COLOR); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawRect(margin, margin, width - 2 * margin, width - 2 * margin); - int shaftSize = 11; - int slotSize = 2; - Area area = new Area(new Ellipse2D.Double(width / 2 - shaftSize / 2, width / 2 - shaftSize - / 2, shaftSize, shaftSize)); - Area slot = new Area(new Rectangle2D.Double(0, width / 2 - slotSize / 2, width, slotSize)); - slot.transform(AffineTransform.getRotateInstance(Math.PI / 4, width / 2, width / 2)); - area.subtract(slot); - g2d.setColor(SHAFT_COLOR); - g2d.fill(area); - g2d.setColor(SHAFT_BORDER_COLOR); - g2d.draw(area); - - int pinSize = 3; - g2d.setColor(PIN_COLOR); - g2d.fillOval(margin - pinSize / 2, 10 - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(margin - pinSize / 2, 10 - pinSize / 2, pinSize, pinSize); - - g2d.setColor(PIN_COLOR); - g2d.fillOval(margin - pinSize / 2, 21 - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(margin - pinSize / 2, 21 - pinSize / 2, pinSize, pinSize); - - g2d.setColor(PIN_COLOR); - g2d.fillOval(width - margin - pinSize / 2, width / 2 - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(width - margin - pinSize / 2, width / 2 - pinSize / 2, pinSize, pinSize); - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @EditableProperty - public TrimmerType getType() { - return type; - } - - public void setType(TrimmerType type) { - this.type = type; - updateControlPoints(); - body = null; - } - - public static enum TrimmerType { - FLAT_LARGE, FLAT_SMALL, VERTICAL_INLINE, VERTICAL_OFFSET; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase().replace("_", " "); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Voltage.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Voltage.java deleted file mode 100644 index f8719b24..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Voltage.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.components.passive; - -public enum Voltage { - - _16V, _25V, _63V, _100V, _160V, _250V, _300V, _350V, _400V, _500V, _630V, _1KV; - - @Override - public String toString() { - return name().replace("_", ""); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DIL_IC.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DIL_IC.java deleted file mode 100644 index 3ae3d17f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DIL_IC.java +++ /dev/null @@ -1,358 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -@ComponentDescriptor(name = "DIL IC", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "IC", description = "IC with rectangular housing and two parallel rows of pins", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class DIL_IC extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color BODY_COLOR = Color.gray; - public static Color BORDER_COLOR = Color.gray.darker(); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Color INDENT_COLOR = Color.gray.darker(); - public static Color LABEL_COLOR = Color.white; - public static int EDGE_RADIUS = 6; - public static Size PIN_SIZE = new Size(0.04d, SizeUnit.in); - public static Size INDENT_SIZE = new Size(0.07d, SizeUnit.in); - - private String value = ""; - private Orientation orientation = Orientation.DEFAULT; - private PinCount pinCount = PinCount._8; - private Size pinSpacing = new Size(0.1d, SizeUnit.in); - private Size rowSpacing = new Size(0.3d, SizeUnit.in); - private Point[] controlPoints = new Point[] { new Point(0, 0) }; - // new Point(0, pinSpacing.convertToPixels()), - // new Point(0, 2 * pinSpacing.convertToPixels()), - // new Point(0, 3 * pinSpacing.convertToPixels()), - // new Point(3 * pinSpacing.convertToPixels(), 0), - // new Point(3 * pinSpacing.convertToPixels(), - // pinSpacing.convertToPixels()), - // new Point(3 * pinSpacing.convertToPixels(), 2 * - // pinSpacing.convertToPixels()), - // new Point(3 * pinSpacing.convertToPixels(), 3 * - // pinSpacing.convertToPixels()) }; - transient private Area[] body; - - public DIL_IC() { - super(); - updateControlPoints(); - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Reset body shape. - body = null; - } - - @EditableProperty(name = "Pins") - public PinCount getPinCount() { - return pinCount; - } - - public void setPinCount(PinCount pinCount) { - this.pinCount = pinCount; - updateControlPoints(); - // Reset body shape; - body = null; - } - - @EditableProperty(name = "Pin spacing") - public Size getPinSpacing() { - return pinSpacing; - } - - public void setPinSpacing(Size pinSpacing) { - this.pinSpacing = pinSpacing; - } - - @EditableProperty(name = "Row spacing") - public Size getRowSpacing() { - return rowSpacing; - } - - public void setRowSpacing(Size rowSpacing) { - this.rowSpacing = rowSpacing; - updateControlPoints(); - // Reset body shape; - body = null; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - private void updateControlPoints() { - Point firstPoint = controlPoints[0]; - controlPoints = new Point[pinCount.getValue()]; - controlPoints[0] = firstPoint; - int pinSpacing = (int) this.pinSpacing.convertToPixels(); - int rowSpacing = (int) this.rowSpacing.convertToPixels(); - // Update control points. - int dx1; - int dy1; - int dx2; - int dy2; - for (int i = 0; i < pinCount.getValue() / 2; i++) { - switch (orientation) { - case DEFAULT: - dx1 = 0; - dy1 = i * pinSpacing; - dx2 = rowSpacing; - dy2 = i * pinSpacing; - break; - case _90: - dx1 = -i * pinSpacing; - dy1 = 0; - dx2 = -i * pinSpacing; - dy2 = rowSpacing; - break; - case _180: - dx1 = 0; - dy1 = -i * pinSpacing; - dx2 = -rowSpacing; - dy2 = -i * pinSpacing; - break; - case _270: - dx1 = i * pinSpacing; - dy1 = 0; - dx2 = i * pinSpacing; - dy2 = -rowSpacing; - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - controlPoints[i] = new Point(firstPoint.x + dx1, firstPoint.y + dy1); - controlPoints[i + pinCount.getValue() / 2] = new Point(firstPoint.x + dx2, firstPoint.y - + dy2); - } - } - - public Area[] getBody() { - if (body == null) { - body = new Area[2]; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int width; - int height; - int pinSize = (int) PIN_SIZE.convertToPixels(); - int pinSpacing = (int) this.pinSpacing.convertToPixels(); - int rowSpacing = (int) this.rowSpacing.convertToPixels(); - Area indentation = null; - int indentationSize = getClosestOdd(INDENT_SIZE.convertToPixels()); - switch (orientation) { - case DEFAULT: - width = rowSpacing - pinSize; - height = (pinCount.getValue() / 2) * pinSpacing; - x += pinSize / 2; - y -= pinSpacing / 2; - indentation = new Area(new Ellipse2D.Double(x + width / 2 - indentationSize / 2, y - - indentationSize / 2, indentationSize, indentationSize)); - break; - case _90: - width = (pinCount.getValue() / 2) * pinSpacing; - height = rowSpacing - pinSize; - x -= (pinSpacing / 2) + width - pinSpacing; - y += pinSize / 2; - indentation = new Area(new Ellipse2D.Double(x + width - indentationSize / 2, y - + height / 2 - indentationSize / 2, indentationSize, indentationSize)); - break; - case _180: - width = rowSpacing - pinSize; - height = (pinCount.getValue() / 2) * pinSpacing; - x -= rowSpacing - pinSize / 2; - y -= (pinSpacing / 2) + height - pinSpacing; - indentation = new Area(new Ellipse2D.Double(x + width / 2 - indentationSize / 2, y - + height - indentationSize / 2, indentationSize, indentationSize)); - break; - case _270: - width = (pinCount.getValue() / 2) * pinSpacing; - height = rowSpacing - pinSize; - x -= pinSpacing / 2; - y += pinSize / 2 - rowSpacing; - indentation = new Area(new Ellipse2D.Double(x - indentationSize / 2, y + height / 2 - - indentationSize / 2, indentationSize, indentationSize)); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - body[0] = new Area(new RoundRectangle2D.Double(x, y, width, height, EDGE_RADIUS, - EDGE_RADIUS)); - body[1] = indentation; - if (indentation != null) { - indentation.intersect(body[0]); - } - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - Area mainArea = getBody()[0]; - if (!outlineMode) { - int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; - for (Point point : controlPoints) { - g2d.setColor(PIN_COLOR); - g2d.fillRect(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawRect(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - } - } - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - g2d.fill(mainArea); - g2d.setComposite(oldComposite); - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR; - } - g2d.setColor(finalBorderColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (outlineMode) { - Area area = new Area(mainArea); - area.subtract(getBody()[1]); - g2d.draw(area); - } else { - g2d.draw(mainArea); - if (getBody()[1] != null) { - g2d.setColor(INDENT_COLOR); - g2d.fill(getBody()[1]); - } - } - // Draw label. - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont()); - Rectangle2D rect = fontMetrics.getStringBounds(getName(), g2d); - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - // Center text horizontally and vertically - Rectangle bounds = mainArea.getBounds(); - int x = bounds.x + (bounds.width - textWidth) / 2; - int y = bounds.y + (bounds.height - textHeight) / 2 + fontMetrics.getAscent(); - g2d.drawString(getName(), x, y); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int radius = 6 * width / 32; - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect(width / 6, 1, 4 * width / 6, height - 4, radius, radius); - g2d.setColor(BORDER_COLOR); - g2d.drawRoundRect(width / 6, 1, 4 * width / 6, height - 4, radius, radius); - int pinSize = 2 * width / 32; - g2d.setColor(PIN_COLOR); - for (int i = 0; i < 4; i++) { - g2d.fillRect(width / 6 - pinSize, (height / 5) * (i + 1) - 1, pinSize, pinSize); - g2d.fillRect(5 * width / 6 + 1, (height / 5) * (i + 1) - 1, pinSize, pinSize); - } - } - - public static enum PinCount { - - _4, _6, _8, _10, _12, _14, _16, _18, _20, _22, _24, _26, _28, _30, _32; - - @Override - public String toString() { - return name().replace("_", ""); - } - - public int getValue() { - return Integer.parseInt(toString()); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java deleted file mode 100644 index 870ec92b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.IPlugInPort; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -@ComponentDescriptor(name = "Diode (plastic)", author = "Branislav Stojkovic", category = "Semiconductors", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", description = "Plastic diode, like most rectifier, zener, schottky, etc.", zOrder = IDIYComponent.COMPONENT) -public class DiodePlastic extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 4, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Size MARKER_WIDTH = new Size(1d, SizeUnit.mm); - public static Color BODY_COLOR = Color.darkGray; - public static Color MARKER_COLOR = Color.decode("#DDDDDD"); - public static Color LABEL_COLOR = Color.white; - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private String value = ""; - private Color markerColor = MARKER_COLOR; - - public DiodePlastic() { - super(); - this.labelColor = LABEL_COLOR; - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - protected boolean supportsStandingMode() { - return true; - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(6, height / 2 - 3, width - 12, 6); - g2d.setColor(MARKER_COLOR); - int markerWidth = 4 * width / 32; - g2d.fillRect(width - 6 - markerWidth, height / 2 - 3, markerWidth, 6); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(6, height / 2 - 3, width - 12, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @Override - protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels())); - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - Color finalMarkerColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalMarkerColor = theme.getOutlineColor(); - } else { - finalMarkerColor = markerColor; - } - g2d.setColor(finalMarkerColor); - int width = (int) getLength().convertToPixels(); - int markerWidth = (int) MARKER_WIDTH.convertToPixels(); - g2d.fillRect(width - markerWidth, 0, markerWidth, getClosestOdd(getWidth() - .convertToPixels())); - } - - @EditableProperty(name = "Marker") - public Color getMarkerColor() { - return markerColor; - } - - public void setMarkerColor(Color markerColor) { - this.markerColor = markerColor; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/LED.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/LED.java deleted file mode 100644 index 3421ec18..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/LED.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "LED", author = "Branislav Stojkovic", category = "Semiconductors", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", description = "Light Emitting Diode", zOrder = IDIYComponent.COMPONENT) -public class LED extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_SIZE = new Size(5d, SizeUnit.mm); - public static Color BODY_COLOR = Color.decode("#5DFC0A"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private String value = ""; - - public LED() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - - int margin = 4 * width / 32; - Area area = new Area(new Ellipse2D.Double(margin, margin, width - 2 * margin, width - 2 - * margin)); - area.intersect(new Area(new Rectangle2D.Double(margin, margin, width - 5 * margin / 2, - width - 2 * margin))); - g2d.setColor(BODY_COLOR); - g2d.fill(area); - g2d.setColor(BORDER_COLOR); - g2d.draw(area); - g2d - .drawOval(margin * 2 - 1, margin * 2 - 1, width - 4 * margin + 2, width - 4 - * margin + 2); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_SIZE; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_SIZE; - } - - @Override - protected Shape getBodyShape() { - int size = getClosestOdd((int) (getLength().convertToPixels() * 1.2)); - Area area = new Area(new Ellipse2D.Double(0, 0, size, size)); - area.intersect(new Area(new Rectangle2D.Double(0, 0, getLength().convertToPixels() * 1.15, - size))); - return area; - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - if (!outlineMode) { - int size = getClosestOdd((int) (getLength().convertToPixels() * 1.2)); - int innerSize = getClosestOdd(getLength().convertToPixels()); - int x = (size - innerSize) / 2; - Shape s = new Ellipse2D.Double(x, x, innerSize, innerSize); - g2d.setColor(getBorderColor()); - g2d.draw(s); - } - } - - @EditableProperty(name = "Size") - @Override - public Size getLength() { - return super.getLength(); - } - - @Override - public Size getWidth() { - return super.getWidth(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO220.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO220.java deleted file mode 100644 index a8061358..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO220.java +++ /dev/null @@ -1,308 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -@ComponentDescriptor(name = "Transistor (TO-220 package)", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "Q", description = "Transistors with metal tab for heat sink mounting", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class TransistorTO220 extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color BODY_COLOR = Color.gray; - public static Color BORDER_COLOR = Color.gray.darker(); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Color TAB_COLOR = Color.decode("#C3E4ED"); - public static Color TAB_BORDER_COLOR = TAB_COLOR.darker(); - public static Color LABEL_COLOR = Color.white; - public static Size PIN_SIZE = new Size(0.03d, SizeUnit.in); - public static Size PIN_SPACING = new Size(0.1d, SizeUnit.in); - public static Size BODY_WIDTH = new Size(0.4d, SizeUnit.in); - public static Size BODY_HEIGHT = new Size(4.5d, SizeUnit.mm); - public static Size TAB_THICKNESS = new Size(1d, SizeUnit.mm); - - private String value = ""; - private Orientation orientation = Orientation.DEFAULT; - private Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - transient private Shape[] body; - private Color bodyColor = BODY_COLOR; - private Color borderColor = BORDER_COLOR; - private Color tabColor = TAB_COLOR; - private Color tabBorderColor = TAB_BORDER_COLOR; - - public TransistorTO220() { - super(); - updateControlPoints(); - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Reset body shape; - body = null; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - private void updateControlPoints() { - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - // Update control points. - int x = controlPoints[0].x; - int y = controlPoints[0].y; - switch (orientation) { - case DEFAULT: - controlPoints[1].setLocation(x, y + pinSpacing); - controlPoints[2].setLocation(x, y + 2 * pinSpacing); - break; - case _90: - controlPoints[1].setLocation(x - pinSpacing, y); - controlPoints[2].setLocation(x - 2 * pinSpacing, y); - break; - case _180: - controlPoints[1].setLocation(x, y - pinSpacing); - controlPoints[2].setLocation(x, y - 2 * pinSpacing); - break; - case _270: - controlPoints[1].setLocation(x + pinSpacing, y); - controlPoints[2].setLocation(x + 2 * pinSpacing, y); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[2]; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - int bodyWidth = getClosestOdd(BODY_WIDTH.convertToPixels()); - int bodyHeight = getClosestOdd(BODY_HEIGHT.convertToPixels()); - int tabThickness = (int) TAB_THICKNESS.convertToPixels(); - - switch (orientation) { - case DEFAULT: - body[0] = new Rectangle2D.Double(x - bodyHeight / 2, - y + pinSpacing - bodyWidth / 2, bodyHeight, bodyWidth); - body[1] = new Rectangle2D.Double(x + bodyHeight / 2 - tabThickness, y + pinSpacing - - bodyWidth / 2, tabThickness, bodyWidth); - break; - case _90: - body[0] = new Rectangle2D.Double(x - pinSpacing - bodyWidth / 2, - y - bodyHeight / 2, bodyWidth, bodyHeight); - body[1] = new Rectangle2D.Double(x - pinSpacing - bodyWidth / 2, y + bodyHeight / 2 - - tabThickness, bodyWidth, tabThickness); - break; - case _180: - body[0] = new Rectangle2D.Double(x - bodyHeight / 2, - y - pinSpacing - bodyWidth / 2, bodyHeight, bodyWidth); - body[1] = new Rectangle2D.Double(x - bodyHeight / 2, - y - pinSpacing - bodyWidth / 2, tabThickness, bodyWidth); - break; - case _270: - body[0] = new Rectangle2D.Double(x + pinSpacing - bodyWidth / 2, - y - bodyHeight / 2, bodyWidth, bodyHeight); - body[1] = new Rectangle2D.Double(x + pinSpacing - bodyWidth / 2, - y - bodyHeight / 2, bodyWidth, tabThickness); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; - Shape mainArea = getBody()[0]; - Shape tabArea = getBody()[1]; - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor); - g2d.fill(mainArea); - Color finalTabColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalTabColor = theme.getOutlineColor(); - } else { - finalTabColor = tabColor; - } - g2d.setColor(finalTabColor); - g2d.fill(tabArea); - g2d.setComposite(oldComposite); - if (!outlineMode) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(tabBorderColor); - g2d.draw(tabArea); - } - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor; - } - g2d.setColor(finalBorderColor); - g2d.draw(mainArea); - - // Draw pins. - if (!outlineMode) { - for (Point point : controlPoints) { - g2d.setColor(PIN_COLOR); - g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - } - } - - // Draw label. - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont()); - Rectangle2D rect = fontMetrics.getStringBounds(getName(), g2d); - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - // Center text horizontally and vertically - Rectangle bounds = mainArea.getBounds(); - int x = bounds.x + (bounds.width - textWidth) / 2; - int y = bounds.y + (bounds.height - textHeight) / 2 + fontMetrics.getAscent(); - g2d.drawString(getName(), x, y); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BODY_COLOR); - int margin = 2 * width / 32; - int thickness = 7 * width / 32; - g2d.fillRect(margin, (height - thickness) / 2, width - margin * 2, thickness); - g2d.setColor(TAB_COLOR); - g2d.fillRect(margin, (height + thickness) / 2 - margin - 1, width - margin * 2, margin); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(margin, (height - thickness) / 2, width - margin * 2, thickness); - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @EditableProperty(name = "Tab") - public Color getTabColor() { - return tabColor; - } - - public void setTabColor(Color tabColor) { - this.tabColor = tabColor; - } - - @EditableProperty(name = "Tab border") - public Color getTabBorderColor() { - return tabBorderColor; - } - - public void setTabBorderColor(Color tabBorderColor) { - this.tabBorderColor = tabBorderColor; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java deleted file mode 100644 index 2966c3bb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java +++ /dev/null @@ -1,268 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -@ComponentDescriptor(name = "Transistor (TO-92 package)", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "Q", description = "Transistor with small plastic or epoxy body", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class TransistorTO92 extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color BODY_COLOR = Color.gray; - public static Color BORDER_COLOR = Color.gray.darker(); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Color LABEL_COLOR = Color.white; - public static Size PIN_SIZE = new Size(0.03d, SizeUnit.in); - public static Size PIN_SPACING = new Size(0.1d, SizeUnit.in); - public static Size BODY_DIAMETER = new Size(0.2d, SizeUnit.in); - - private String value = ""; - private Orientation orientation = Orientation.DEFAULT; - private Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - transient private Area body; - private Color bodyColor = BODY_COLOR; - private Color borderColor = BORDER_COLOR; - - public TransistorTO92() { - super(); - updateControlPoints(); - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Reset body shape; - body = null; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - private void updateControlPoints() { - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - // Update control points. - int x = controlPoints[0].x; - int y = controlPoints[0].y; - switch (orientation) { - case DEFAULT: - controlPoints[1].setLocation(x, y + pinSpacing); - controlPoints[2].setLocation(x, y + 2 * pinSpacing); - break; - case _90: - controlPoints[1].setLocation(x - pinSpacing, y); - controlPoints[2].setLocation(x - 2 * pinSpacing, y); - break; - case _180: - controlPoints[1].setLocation(x, y - pinSpacing); - controlPoints[2].setLocation(x, y - 2 * pinSpacing); - break; - case _270: - controlPoints[1].setLocation(x + pinSpacing, y); - controlPoints[2].setLocation(x + 2 * pinSpacing, y); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - } - - public Area getBody() { - if (body == null) { - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - int bodyDiameter = getClosestOdd(BODY_DIAMETER.convertToPixels()); - - switch (orientation) { - case DEFAULT: - body = new Area(new Ellipse2D.Double(x - bodyDiameter / 2, y + pinSpacing - - bodyDiameter / 2, bodyDiameter, bodyDiameter)); - body.subtract(new Area(new Rectangle2D.Double(x - bodyDiameter, y + pinSpacing - - bodyDiameter / 2, 3 * bodyDiameter / 4, bodyDiameter))); - break; - case _90: - body = new Area(new Ellipse2D.Double(x - pinSpacing - bodyDiameter / 2, y - - bodyDiameter / 2, bodyDiameter, bodyDiameter)); - body.subtract(new Area(new Rectangle2D.Double(x - pinSpacing - bodyDiameter / 2, y - - bodyDiameter, bodyDiameter, 3 * bodyDiameter / 4))); - break; - case _180: - body = new Area(new Ellipse2D.Double(x - bodyDiameter / 2, y - pinSpacing - - bodyDiameter / 2, bodyDiameter, bodyDiameter)); - body.subtract(new Area(new Rectangle2D.Double(x + bodyDiameter / 4, y - pinSpacing - - bodyDiameter / 2, 3 * bodyDiameter / 4, bodyDiameter))); - break; - case _270: - body = new Area(new Ellipse2D.Double(x + pinSpacing - bodyDiameter / 2, y - - bodyDiameter / 2, bodyDiameter, bodyDiameter)); - body.subtract(new Area(new Rectangle2D.Double(x + pinSpacing - bodyDiameter / 2, y - + bodyDiameter / 4, bodyDiameter, 3 * bodyDiameter / 4))); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; - Area mainArea = getBody(); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor); - g2d.fill(mainArea); - g2d.setComposite(oldComposite); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor; - } - g2d.setColor(finalBorderColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.draw(mainArea); - - if (!outlineMode) { - for (Point point : controlPoints) { - g2d.setColor(PIN_COLOR); - g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - } - } - - // Draw label. - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont()); - Rectangle2D rect = fontMetrics.getStringBounds(getName(), g2d); - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - // Center text horizontally and vertically - Rectangle bounds = mainArea.getBounds(); - int x = bounds.x + (bounds.width - textWidth) / 2; - int y = bounds.y + (bounds.height - textHeight) / 2 + fontMetrics.getAscent(); - g2d.drawString(getName(), x, y); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 3 * width / 32; - Area area = new Area(new Ellipse2D.Double(margin / 2, margin, width - 2 * margin, width - 2 - * margin)); - // area.subtract(new Area(new Rectangle2D.Double(0, 0, 2 * margin, - // height))); - area.intersect(new Area(new Rectangle2D.Double(2 * margin, 0, width, height))); - g2d.setColor(BODY_COLOR); - g2d.fill(area); - g2d.setColor(BORDER_COLOR); - g2d.draw(area); - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/tube/TubeSocket.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/tube/TubeSocket.java deleted file mode 100644 index e6b51cba..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/tube/TubeSocket.java +++ /dev/null @@ -1,328 +0,0 @@ -package org.diylc.components.tube; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; - -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -import com.diyfever.gui.miscutils.ConfigurationManager; - -@ComponentDescriptor(name = "Tube Socket", author = "Branislav Stojkovic", category = "Tubes", instanceNamePrefix = "V", description = "Various types of tube/valve sockets", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class TubeSocket extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Color BODY_COLOR = Color.decode("#FFFFE0"); - private static Color BORDER_COLOR = Color.decode("#8E8E38"); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Size PIN_SIZE = new Size(1d, SizeUnit.mm); - public static Size HOLE_SIZE = new Size(5d, SizeUnit.mm); - public static Size TICK_SIZE = new Size(2d, SizeUnit.mm); - - private Base base = Base.B9A; - private String type = ""; - private Orientation orientation = Orientation.DEFAULT; - // private Mount mount = Mount.CHASSIS; - - private Point[] controlPoints = new Point[] { new Point(0, 0) }; - - transient private Shape body; - - public TubeSocket() { - super(); - updateControlPoints(); - } - - @EditableProperty - public Base getBase() { - return base; - } - - public void setBase(Base base) { - this.base = base; - updateControlPoints(); - // Reset body shape - body = null; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Reset body shape - body = null; - } - - // @EditableProperty - // public Mount getMount() { - // return mount; - // } - // - // public void setMount(Mount mount) { - // this.mount = mount; - // } - - private void updateControlPoints() { - Point firstPoint = controlPoints[0]; - int pinCount; - int pinCircleDiameter; - boolean hasEmptySpace; - switch (base) { - case B7G: - pinCount = 7; - pinCircleDiameter = getClosestOdd(new Size(12d, SizeUnit.mm).convertToPixels()); - hasEmptySpace = true; - break; - case OCTAL: - pinCount = 8; - pinCircleDiameter = getClosestOdd(new Size(17.5d, SizeUnit.mm).convertToPixels()); - hasEmptySpace = false; - break; - case B9A: - pinCount = 9; - pinCircleDiameter = getClosestOdd(new Size(21d, SizeUnit.mm).convertToPixels()); - hasEmptySpace = true; - break; - default: - throw new RuntimeException("Unexpected base: " + base); - } - double angleIncrement = Math.PI * 2 / (hasEmptySpace ? (pinCount + 1) : pinCount); - double initialAngleOffset = hasEmptySpace ? angleIncrement : (angleIncrement / 2); - double initialAngle; - switch (orientation) { - case DEFAULT: - initialAngle = Math.PI / 2 + initialAngleOffset; - break; - case _90: - initialAngle = Math.PI + initialAngleOffset; - break; - case _180: - initialAngle = 3 * Math.PI / 2 + initialAngleOffset; - break; - case _270: - initialAngle = initialAngleOffset; - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - controlPoints = new Point[pinCount + 1]; - double angle = initialAngle; - controlPoints[0] = firstPoint; - for (int i = 0; i < pinCount; i++) { - controlPoints[i + 1] = new Point((int) (firstPoint.getX() + Math.cos(angle) - * pinCircleDiameter / 2), (int) (firstPoint.getY() + Math.sin(angle) - * pinCircleDiameter / 2)); - angle += angleIncrement; - } - } - - public Shape getBody() { - if (body == null) { - int bodyDiameter; - switch (base) { - case B7G: - bodyDiameter = getClosestOdd(new Size(17d, SizeUnit.mm).convertToPixels()); - break; - case B9A: - bodyDiameter = getClosestOdd(new Size(19d, SizeUnit.mm).convertToPixels()); - break; - case OCTAL: - bodyDiameter = getClosestOdd(new Size(24.5d, SizeUnit.mm).convertToPixels()); - break; - default: - throw new RuntimeException("Unexpected base: " + base); - } - body = new Ellipse2D.Double(controlPoints[0].x - bodyDiameter / 2, controlPoints[0].y - - bodyDiameter / 2, bodyDiameter, bodyDiameter); - Area bodyArea = new Area(body); - int holeSize = getClosestOdd(HOLE_SIZE.convertToPixels()); - bodyArea.subtract(new Area(new Ellipse2D.Double(controlPoints[0].x - holeSize / 2, - controlPoints[0].y - holeSize / 2, holeSize, holeSize))); - if (base == Base.OCTAL) { - int tickSize = getClosestOdd(TICK_SIZE.convertToPixels()); - double angle = 0; - switch (orientation) { - case DEFAULT: - angle = Math.PI / 2; - break; - case _90: - angle = Math.PI; - break; - case _180: - angle = 3 * Math.PI / 2; - break; - case _270: - angle = 0; - break; - } - int centerX = (int) (controlPoints[0].x + Math.cos(angle) * holeSize / 2); - int centerY = (int) (controlPoints[0].y + Math.sin(angle) * holeSize / 2); - bodyArea.subtract(new Area(new Ellipse2D.Double(centerX - tickSize / 2, centerY - - tickSize / 2, tickSize, tickSize))); - } - body = bodyArea; - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - // g2d.setColor(Color.black); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - // for (int i = 0; i < controlPoints.length; i++) { - // g2d.drawString(Integer.toString(i), controlPoints[i].x, - // controlPoints[i].y); - // } - // Draw body - Shape body = getBody(); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - if (componentState != ComponentState.DRAGGING) { - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - g2d.fill(body); - } - g2d.setComposite(oldComposite); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR; - } - g2d.setColor(finalBorderColor); - g2d.draw(body); - // Draw pins - if (!outlineMode) { - int pinSize = getClosestOdd(PIN_SIZE.convertToPixels()); - for (int i = 1; i < controlPoints.length; i++) { - g2d.setColor(PIN_COLOR); - g2d.fillOval(controlPoints[i].x - pinSize / 2, controlPoints[i].y - pinSize / 2, - pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(controlPoints[i].x - pinSize / 2, controlPoints[i].y - pinSize / 2, - pinSize, pinSize); - } - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - Area area = new Area(new Ellipse2D.Double(1, 1, width - 2, width - 2)); - int center = width / 2; - area.subtract(new Area(new Ellipse2D.Double(center - 2, center - 2, 5, 5))); - g2d.setColor(BODY_COLOR); - g2d.fill(area); - g2d.setColor(BORDER_COLOR); - g2d.draw(area); - - int radius = width / 2 - 6; - for (int i = 0; i < 8; i++) { - int x = (int) (center + Math.cos(i * Math.PI / 4) * radius); - int y = (int) (center + Math.sin(i * Math.PI / 4) * radius); - g2d.setColor(PIN_COLOR); - g2d.fillOval(x - 1, y - 1, 3, 3); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(x - 1, y - 1, 3, 3); - } - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - @EditableProperty(name = "Type") - public String getValue() { - return type; - } - - @Override - public void setValue(String value) { - this.type = value; - } - - @Override - public boolean isControlPointSticky(int index) { - return index > 0; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - static enum Base { - B9A("Noval B9A"), OCTAL("Octal"), B7G("Small-button B7G"); - - String name; - - private Base(String name) { - this.name = name; - } - - @Override - public String toString() { - return name; - } - } - - static enum Mount { - CHASSIS("Chassis"), PCB("PCB"); - - String name; - - private Mount(String name) { - this.name = name; - } - - @Override - public String toString() { - return name; - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/.settings/org.eclipse.jdt.ui.prefs b/ diy-layout-creator --username bancika@gmail.com/diylc-core/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index b00bc72a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Sun Nov 08 15:11:18 CET 2009 -eclipse.preferences.version=1 -org.eclipse.jdt.ui.javadoc=false -org.eclipse.jdt.ui.text.custom_code_templates= diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/config.properties b/ diy-layout-creator --username bancika@gmail.com/diylc-core/config.properties deleted file mode 100644 index c6abd215..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/config.properties +++ /dev/null @@ -1,2 +0,0 @@ -#org.diylc.utils.Constants.CANVAS_COLOR=#005D96 -#org.diylc.utils.Constants.GRID_COLOR=#FFFFFF \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/jettison-1.0.1.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/jettison-1.0.1.jar deleted file mode 100644 index fed929fd..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/jettison-1.0.1.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/junit-4.7.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/junit-4.7.jar deleted file mode 100644 index 700ad695..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/junit-4.7.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/log4j-1.2.15.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/log4j-1.2.15.jar deleted file mode 100644 index c930a6ab..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/log4j-1.2.15.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/xstream-1.3.1.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/xstream-1.3.1.jar deleted file mode 100644 index 4ef4219c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/lib/xstream-1.3.1.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/BadPositionException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/BadPositionException.java deleted file mode 100644 index 52dcfe95..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/BadPositionException.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.diylc.common; - -public class BadPositionException extends Exception { - - private static final long serialVersionUID = 1L; - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Display.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Display.java deleted file mode 100644 index ed3404ac..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Display.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.common; - -public enum Display { - - NAME, VALUE; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/DrawOption.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/DrawOption.java deleted file mode 100644 index b36ac993..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/DrawOption.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.diylc.common; - -import java.awt.Graphics; - -/** - * Enumerates all options that can be used when drawing a project. - * - * @see IPlugInPort#draw(java.awt.Graphics2D, java.util.Set, IComponentFiler) - * - * @author Branislav Stojkovic - */ -public enum DrawOption { - - /** - * Selection rectangle will be drawn when needed and selected components may - * be rendered differently. - */ - SELECTION, - /** - * Selected zoom level will be applied to scale the {@link Graphics} before - * drawing. - */ - ZOOM, - /** - * Grid lines are drawn. - */ - GRID, - /** - * Control points are drawn. - */ - CONTROL_POINTS, - /** - * Anti-aliasing is used when drawing. - */ - ANTIALIASING, - /** - * Draw components in outline mode. - */ - OUTLINE_MODE; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/EventType.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/EventType.java deleted file mode 100644 index fd1d8838..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/EventType.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.diylc.common; - -import java.awt.Rectangle; -import java.awt.geom.Point2D; - -import org.diylc.core.Project; - -/** - * Enumerates all possible events between {@link IPlugInPort} and - * {@link IPlugIn}. Some events overlap so be careful which ones you subscribe - * for and how you process them. - * - * @author Branislav Stojkovic - */ -public enum EventType { - - /** - * Called when zoom level changes. Typically only one parameter of type - * {@link Double} is passed with new zoom level. - */ - ZOOM_CHANGED, - /** - * Called when a new project is loaded. New {@link Project} is the first - * parameter. Boolean flag is the second parameter and it's true when new - * project is loaded, false when the same project has been either reloaded - * or loaded with undo/redo operations. - */ - PROJECT_LOADED, - /** - * Called when either current file name or modified flag are changed. The - * first parameter is the current file name, the second one is a boolean - * modified flag. - */ - FILE_STATUS_CHANGED, - /** - * Called when selection rectangle is changed. Object of type - * {@link Rectangle} is the only parameter and it contains the new selection - * rectangle. - */ - SELECTION_RECT_CHANGED, - /** - * Called when component selection is changed. New - * {@link ComponentSelection} is attached as a parameter. - */ - SELECTION_CHANGED, - /** - * Called when selection size changes, together with a {@link Point2D} - * object containing selection size (x = width, y = height). Size is - * expressed in the default measure (cm for metric, inches for imperial). - */ - REPAINT, - /** - * Called when new component slot has been changed. The only parameter is - * {@link ComponentType} and may be null. - */ - SLOT_CHANGED, - /** - * Called when the current project has been modified. Two instances of - * {@link Project} are passed as parameters, one before and one after the - * change. The third parameter is a string containing change description. - */ - PROJECT_MODIFIED, - /** - * Called when control points under the cursor are changed. A single - * parameter is passed, an instance of - * Map, Set> containing all the - * components and indices of their control points that are under the cursor. - */ - AVAILABLE_CTRL_POINTS_CHANGED, - /** - * Called when mouse cursor is moved. Point object is passed, containing the - * current cursor location (not taking zoom into account). - */ - MOUSE_MOVED, - /** - * Called when a layer status is changed. The first parameter is a set of indices of locked layers. All layers not included are considered unlocked. - */ - LAYER_STATE_CHANGED, - /** - * Called to update the status message. New status message is passed as a first parameter. - */ - STATUS_MESSAGE_CHANGED; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/GridType.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/GridType.java deleted file mode 100644 index 5d960ce3..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/GridType.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.diylc.common; - -public enum GridType { - - LINES, CROSSHAIR, DOT, NONE; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IComponentFiler.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IComponentFiler.java deleted file mode 100644 index c1647cdb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IComponentFiler.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.diylc.common; - -import org.diylc.core.IDIYComponent; - -public interface IComponentFiler { - - boolean testComponent(IDIYComponent component); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ITask.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ITask.java deleted file mode 100644 index eb7ad07a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ITask.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.diylc.common; - -/** - * Abstract layer between the app and platform worker thread implementation. - * - * @author Branislav Stojkovic - * - * @param - */ -public interface ITask { - - /** - * Runs in background thread. - * - * @return - * @throws Exception - */ - T doInBackground() throws Exception; - - /** - * Called if background thread fails. - * - * @param e - */ - void failed(Exception e); - - /** - * Called if background thread is executed correctly, the result is passed - * as a parameter. - * - * @param result - */ - void complete(T result); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/LabelPosition.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/LabelPosition.java deleted file mode 100644 index 7038824e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/LabelPosition.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.common; - -public enum LabelPosition { - - ABOVE, BELOW; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ObjectCache.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ObjectCache.java deleted file mode 100644 index 09db7f8c..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ObjectCache.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.diylc.common; - -import java.awt.AlphaComposite; -import java.awt.BasicStroke; -import java.awt.Stroke; -import java.util.HashMap; -import java.util.Map; - -/** - * Repository for object that may be reused, such as {@link Stroke} or - * {@link AlphaComposite}. - * - * @author Branislav Stojkovic - */ -public class ObjectCache { - - private static ObjectCache instance; - - public static ObjectCache getInstance() { - if (instance == null) { - instance = new ObjectCache(); - } - return instance; - } - - private ObjectCache() { - } - - private Map basicStrokeMap = new HashMap(); - - public Stroke fetchBasicStroke(int width) { - if (basicStrokeMap.containsKey(width)) { - return basicStrokeMap.get(width); - } - Stroke stroke = new BasicStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND); - basicStrokeMap.put(width, stroke); - return stroke; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Orientation.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Orientation.java deleted file mode 100644 index 5d2d4f22..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Orientation.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.diylc.common; - -public enum Orientation { - - DEFAULT, _90, _180, _270; - - @Override - public String toString() { - if (this == DEFAULT) { - return "Default"; - } else { - return name().replace("_", "") + " degrees clockwise"; - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/OrientationHV.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/OrientationHV.java deleted file mode 100644 index 656f1016..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/OrientationHV.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.common; - -public enum OrientationHV { - - VERTICAL, HORIZONTAL; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ResistorColorCode.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ResistorColorCode.java deleted file mode 100644 index f1b75ffb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ResistorColorCode.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.diylc.common; - -public enum ResistorColorCode { - - NONE, _4_BAND, _5_BAND; - - @Override - public String toString() { - if (name().startsWith("_")) { - return name().substring(1).replace("_", " ").toLowerCase(); - } - return name().substring(0, 1).toUpperCase() + name().substring(1).toLowerCase(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java deleted file mode 100644 index b0164317..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java +++ /dev/null @@ -1,249 +0,0 @@ -package org.diylc.components; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.geom.CubicCurve2D; - -import org.diylc.common.ObjectCache; -import org.diylc.core.ComponentState; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -public abstract class AbstractCurvedComponent extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color GUIDELINE_COLOR = Color.blue; - public static Size DEFAULT_SIZE = new Size(1d, SizeUnit.in); - - protected Point[] controlPoints = new Point[] { - new Point(0, 0), - new Point((int) (DEFAULT_SIZE.convertToPixels() / 2), 0), - new Point((int) (DEFAULT_SIZE.convertToPixels() / 2), (int) (DEFAULT_SIZE - .convertToPixels())), - new Point((int) DEFAULT_SIZE.convertToPixels(), (int) DEFAULT_SIZE.convertToPixels()) }; - - protected Color color = getDefaultColor(); - protected PointCount pointCount = PointCount.FOUR; - - /** - * Draws the specified curve onto graphics. - * - * @param curve - * @param g2d - * @param componentState - * @param theme - */ - protected abstract void drawCurve(CubicCurve2D curve, Graphics2D g2d, - ComponentState componentState); - - /** - * @return default color. - */ - protected abstract Color getDefaultColor(); - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(getDefaultColor().darker()); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(3)); - CubicCurve2D curve = new CubicCurve2D.Double(1, height - 1, width / 4, height / 3, - 3 * width / 4, 2 * height / 3, width - 1, 1); - g2d.draw(curve); - g2d.setColor(getDefaultColor()); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.draw(curve); - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - if (componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING) { - // Do not track guidelines. - drawingObserver.stopTracking(); - g2d.setStroke(Constants.DASHED_STROKE); - g2d.setColor(GUIDELINE_COLOR); - g2d.drawLine(controlPoints[0].x, controlPoints[0].y, controlPoints[1].x, - controlPoints[1].y); - g2d.drawLine(controlPoints[1].x, controlPoints[1].y, controlPoints[2].x, - controlPoints[2].y); - g2d.drawLine(controlPoints[2].x, controlPoints[2].y, controlPoints[3].x, - controlPoints[3].y); - drawingObserver.startTracking(); - } - CubicCurve2D curve = new CubicCurve2D.Double(controlPoints[0].x, controlPoints[0].y, - controlPoints[1].x, controlPoints[1].y, controlPoints[2].x, controlPoints[2].y, - controlPoints[3].x, controlPoints[3].y); - - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - // g2d.setColor(color.darker()); - // g2d.setStroke(new BasicStroke(thickness)); - // g2d.draw(path); - // g2d.setColor(color); - // g2d.setStroke(new BasicStroke(thickness - 2)); - // g2d.draw(path); - drawCurve(curve, g2d, componentState); - g2d.setComposite(oldComposite); - } - - @EditableProperty(name = "Point Count") - public PointCount getPointCount() { - if (pointCount == null) { - pointCount = PointCount.FOUR; - } - return pointCount; - } - - public void setPointCount(PointCount pointCount) { - this.pointCount = pointCount; - // Reset control points. - for (int i = 0; i < getControlPointCount(); i++) { - setControlPoint(getControlPoint(i), i); - } - } - - @Override - public int getControlPointCount() { - switch (getPointCount()) { - case TWO: - return 2; - case THREE: - return 3; - case FOUR: - return 4; - } - return 0; - } - - @Override - public boolean isControlPointSticky(int index) { - return index == 0 || index == getControlPointCount() - 1; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @Override - public boolean canControlPointOverlap(int index) { - // Only shape control points may overlap. - switch (getPointCount()) { - case TWO: - return false; - case THREE: - return index == 1; - case FOUR: - return index == 1 || index == 2; - } - return false; - } - - @Override - public Point getControlPoint(int index) { - if (index == 0) { - return controlPoints[0]; - } - switch (getPointCount()) { - case TWO: - switch (index) { - case 1: - return controlPoints[3]; - } - case THREE: - switch (index) { - case 1: - return controlPoints[1]; - case 2: - return controlPoints[3]; - } - case FOUR: - switch (index) { - case 1: - return controlPoints[1]; - case 2: - return controlPoints[2]; - case 3: - return controlPoints[3]; - } - } - return controlPoints[index]; - } - - @Override - public void setControlPoint(Point point, int index) { - if (index == 0) { - controlPoints[0].setLocation(point); - } else { - switch (getPointCount()) { - case TWO: - switch (index) { - case 1: - Point center = new Point((point.x + controlPoints[0].x) / 2, - (point.y + controlPoints[0].y) / 2); - controlPoints[1].setLocation(center); - controlPoints[2].setLocation(center); - controlPoints[3].setLocation(point); - break; - } - break; - case THREE: - switch (index) { - case 1: - controlPoints[1].setLocation(point); - controlPoints[2].setLocation(point); - break; - case 2: - controlPoints[3].setLocation(point); - break; - } - break; - case FOUR: - switch (index) { - case 1: - controlPoints[1].setLocation(point); - break; - case 2: - controlPoints[2].setLocation(point); - break; - case 3: - controlPoints[3].setLocation(point); - break; - } - break; - } - } - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - enum PointCount { - TWO, THREE, FOUR; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase(); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractSchematicLeadedSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractSchematicLeadedSymbol.java deleted file mode 100644 index 0e5c0591..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractSchematicLeadedSymbol.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.diylc.components; - -import java.awt.Color; -import java.awt.FontMetrics; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.LabelPosition; -import org.diylc.core.ComponentState; -import org.diylc.core.annotations.EditableProperty; - -public abstract class AbstractSchematicLeadedSymbol extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.blue; - public static Color LEAD_COLOR = Color.black; - - protected LabelPosition labelPosition = LabelPosition.ABOVE; - - public AbstractSchematicLeadedSymbol() { - super(); - // We don't want to fill the body, so use null. - this.bodyColor = null; - this.borderColor = COLOR; - } - - @Override - public Color getBodyColor() { - return super.getBodyColor(); - } - - @Override - protected boolean shouldShadeLeads() { - return false; - } - - @Override - protected int getLeadThickness() { - return 1; - } - - @Override - protected int calculateLabelYCoordinate(Rectangle2D shapeRect, Rectangle2D textRect, - FontMetrics fontMetrics) { - if (labelPosition == LabelPosition.ABOVE) { - return -1; - } else { - return (int) (shapeRect.getHeight() + textRect.getHeight() - 1); - } - } - - @EditableProperty(name = "Label position") - public LabelPosition getLabelPosition() { - return labelPosition; - } - - @Override - @EditableProperty(name = "Color") - public Color getBorderColor() { - return super.getBorderColor(); - } - - public void setLabelPosition(LabelPosition labelPosition) { - this.labelPosition = labelPosition; - } - - @Override - protected Color getLeadColor(ComponentState componentState) { - return componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : LEAD_COLOR; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractTransparentComponent.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractTransparentComponent.java deleted file mode 100644 index f13da970..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractTransparentComponent.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.diylc.components; - -import org.diylc.core.annotations.EditableProperty; - -public abstract class AbstractTransparentComponent extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static byte MAX_ALPHA = 127; - - protected byte alpha = MAX_ALPHA; - - @EditableProperty - public Byte getAlpha() { - return alpha; - } - - public void setAlpha(Byte alpha) { - this.alpha = alpha; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/AllowAllValidator.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/AllowAllValidator.java deleted file mode 100644 index 0b194256..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/AllowAllValidator.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.diylc.core; - -/** - * Validator that allows all values. - * - * @author Branislav Stojkovic - */ -public class AllowAllValidator implements IPropertyValidator { - - @Override - public void validate(Object value) throws ValidationException { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ComponentState.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ComponentState.java deleted file mode 100644 index ec33071b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ComponentState.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.core; - -/** - * Enumerates all possible states that a component can be in. - * - * @author Branislav Stojkovic - */ -public enum ComponentState { - - NORMAL, SELECTED, LOCKED, DRAGGING -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/CreationMethod.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/CreationMethod.java deleted file mode 100644 index e8c44864..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/CreationMethod.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.diylc.core; - -public enum CreationMethod { - - SINGLE_CLICK, POINT_BY_POINT; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IDrawingObserver.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IDrawingObserver.java deleted file mode 100644 index 8db76e21..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IDrawingObserver.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.diylc.core; - -/** - * Interface for tracking component drawing process. Components may use it to - * stop or restart tracking. Anything drawn while tracking is stopped will not - * be added to the mouse hot-spot area. - * - * @author Branislav Stojkovic - */ -public interface IDrawingObserver { - - void stopTracking(); - - void startTracking(); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IPropertyValidator.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IPropertyValidator.java deleted file mode 100644 index 9dbdee24..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IPropertyValidator.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.diylc.core; - -/** - * Interface for validating property value changes. - * - * @author Branislav Stojkovic - */ -public interface IPropertyValidator { - - /** - * @param value - * @throws ValidationException - * if validation fails. Message will contain the reason. - */ - void validate(Object value) throws ValidationException; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/Theme.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/Theme.java deleted file mode 100644 index 722f02dc..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/Theme.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.diylc.core; - -import java.awt.Color; -import java.io.Serializable; - -public class Theme implements Serializable { - - private static final long serialVersionUID = 1L; - - private String name; - private Color bgColor; - private Color gridColor; - private Color outlineColor; - - public Theme(String name, Color bgColor, Color gridColor, Color outlineColor) { - super(); - this.name = name; - this.bgColor = bgColor; - this.gridColor = gridColor; - this.outlineColor = outlineColor; - } - - public String getName() { - return name; - } - - public Color getBgColor() { - return bgColor; - } - - public Color getGridColor() { - return gridColor; - } - - public Color getOutlineColor() { - return outlineColor; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((bgColor == null) ? 0 : bgColor.hashCode()); - result = prime * result + ((gridColor == null) ? 0 : gridColor.hashCode()); - result = prime * result + ((outlineColor == null) ? 0 : outlineColor.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Theme other = (Theme) obj; - if (bgColor == null) { - if (other.bgColor != null) - return false; - } else if (!bgColor.equals(other.bgColor)) - return false; - if (gridColor == null) { - if (other.gridColor != null) - return false; - } else if (!gridColor.equals(other.gridColor)) - return false; - if (outlineColor == null) { - if (other.outlineColor != null) - return false; - } else if (!outlineColor.equals(other.outlineColor)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - return true; - } - - @Override - public String toString() { - return name; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ValidationException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ValidationException.java deleted file mode 100644 index f78cc348..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ValidationException.java +++ /dev/null @@ -1,11 +0,0 @@ - -package org.diylc.core; - -public class ValidationException extends Exception { - - private static final long serialVersionUID = 1L; - - public ValidationException(String message) { - super(message); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/VisibilityPolicy.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/VisibilityPolicy.java deleted file mode 100644 index 040d8730..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/VisibilityPolicy.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.diylc.core; - -/** - * Enumerates control point visibility policies. - * - * @author Branislav Stojkovic - */ -public enum VisibilityPolicy { - - /** - * Control point should be rendered all the time. - */ - ALWAYS, - /** - * Control point should be rendered only when the component is selected. - */ - WHEN_SELECTED, - /** - * Control point should not be rendered regardless of component selection. - */ - NEVER; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/EditableProperty.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/EditableProperty.java deleted file mode 100644 index 9642d074..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/EditableProperty.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.diylc.core.annotations; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -import org.diylc.core.AllowAllValidator; -import org.diylc.core.IPropertyValidator; - -/** - * Used to annotate editable component property. Editable property XYZ must have - * both getter and setter named getXYZ and setXYZ - * respectively and this annotation must be placed on the getter method. - * - * @author Branislav Stojkovic - */ -@Retention(RetentionPolicy.RUNTIME) -public @interface EditableProperty { - - /** - * Returns property name. If left blank property name will be extracted from - * the getter name, e.g. getter getXYZ will induce property - * name XYZ.
- * Default value is blank. - * - * @return - */ - String name() default ""; - - /** - * If true, application may set default value for this property.
- * Default value is true. - * - * @return - */ - boolean defaultable() default true; - - /** - * Class of validator to use to - * @return - */ - Class validatorClass() default AllowAllValidator.class; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/PositiveMeasureValidator.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/PositiveMeasureValidator.java deleted file mode 100644 index 5d38a258..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/PositiveMeasureValidator.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.diylc.core.annotations; - -import org.diylc.core.IPropertyValidator; -import org.diylc.core.ValidationException; -import org.diylc.core.measures.AbstractMeasure; - -public class PositiveMeasureValidator implements IPropertyValidator { - - @Override - public void validate(Object value) throws ValidationException { - if (value instanceof AbstractMeasure) { - AbstractMeasure measure = (AbstractMeasure) value; - if (measure.getValue() < 0) { - throw new ValidationException("must be greater than zero."); - } - } else { - throw new ValidationException("wrong data type, measure expected."); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/CapacitanceUnit.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/CapacitanceUnit.java deleted file mode 100644 index 83071499..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/CapacitanceUnit.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.diylc.core.measures; - -public enum CapacitanceUnit implements Unit { - - pF(1, "pF"), nF(1e3, "nF"), uF(1e6, "uF"), mF(1e9, "mF"), F(1e12, "F"); - - double factor; - String display; - - private CapacitanceUnit(double factor, String display) { - this.factor = factor; - this.display = display; - } - - @Override - public double getFactor() { - return factor; - } - - @Override - public String toString() { - return display; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/InductanceUnit.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/InductanceUnit.java deleted file mode 100644 index e00facd8..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/InductanceUnit.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.diylc.core.measures; - -public enum InductanceUnit implements Unit { - - pH(1, "pH"), nH(1e3, "nH"), uH(1e6, "\u03bcH"), mH(1e9, "mH"), H(1e12, "H"); - - double factor; - String display; - - private InductanceUnit(double factor, String display) { - this.factor = factor; - this.display = display; - } - - @Override - public double getFactor() { - return factor; - } - - @Override - public String toString() { - return display; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/SizeUnit.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/SizeUnit.java deleted file mode 100644 index fe8afd35..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/SizeUnit.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.diylc.core.measures; - -public enum SizeUnit implements Unit { - - mm(1d), cm(10d), m(1e4d), in(25.4d), ft(25.4d * 12), yd(9144d); - - double factor; - - private SizeUnit(double factor) { - this.factor = factor; - } - - @Override - public double getFactor() { - return factor; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Unit.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Unit.java deleted file mode 100644 index 90413341..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Unit.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.diylc.core.measures; - -public interface Unit { - - double getFactor(); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/about.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/about.png deleted file mode 100644 index a8e64236..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/about.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/add.png deleted file mode 100644 index 8a73c4f6..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_down_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_down_blue.png deleted file mode 100644 index 38b5739c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_down_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_left_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_left_blue.png deleted file mode 100644 index ff99225c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_left_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_right_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_right_blue.png deleted file mode 100644 index 299f298e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_right_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_up_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_up_blue.png deleted file mode 100644 index e491e547..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/arrow_up_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/at.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/at.png deleted file mode 100644 index 206cf23a..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/at.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/back.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/back.png deleted file mode 100644 index df446d87..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/back.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/blackboard.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/blackboard.png deleted file mode 100644 index 6bcf8dd2..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/blackboard.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/bom.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/bom.png deleted file mode 100644 index 233f3687..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/bom.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/bug.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/bug.png deleted file mode 100644 index 9086622e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/bug.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/check.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/check.png deleted file mode 100644 index ff611c8a..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/check.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/chest.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/chest.png deleted file mode 100644 index 5f83ea57..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/chest.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/component.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/component.png deleted file mode 100644 index ce05570f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/component.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/copy.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/copy.png deleted file mode 100644 index 4757339f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/copy.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/csv.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/csv.png deleted file mode 100644 index 1ae75a5f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/csv.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/cut.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/cut.png deleted file mode 100644 index e354a22c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/cut.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/delete.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/delete.png deleted file mode 100644 index 312bb3f5..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/delete.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/disk_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/disk_blue.png deleted file mode 100644 index d2d0d6e1..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/disk_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/disks.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/disks.png deleted file mode 100644 index 532ccc6e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/disks.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document.png deleted file mode 100644 index af78223e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_edit.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_edit.png deleted file mode 100644 index 35d01513..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_edit.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_info.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_info.png deleted file mode 100644 index 453f2290..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_info.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_plain_yellow.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_plain_yellow.png deleted file mode 100644 index 3e88b651..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/document_plain_yellow.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/donate.gif b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/donate.gif deleted file mode 100644 index 43cef691..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/donate.gif and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/donate.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/donate.png deleted file mode 100644 index 0d2baa8d..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/donate.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/edit.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/edit.png deleted file mode 100644 index ae851759..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/edit.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/edit_component.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/edit_component.png deleted file mode 100644 index 9f438c3e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/edit_component.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/error.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/error.png deleted file mode 100644 index f2bd64fd..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/error.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/excel.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/excel.png deleted file mode 100644 index 3705304e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/excel.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/exit.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/exit.png deleted file mode 100644 index 65d3c548..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/exit.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/export.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/export.png deleted file mode 100644 index 113a7cda..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/export.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/faq.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/faq.png deleted file mode 100644 index ee0dd88f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/faq.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/folder_music.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/folder_music.png deleted file mode 100644 index dc3da81b..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/folder_music.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/folder_out.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/folder_out.png deleted file mode 100644 index 80895073..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/folder_out.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/forbidden.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/forbidden.png deleted file mode 100644 index 530433e6..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/forbidden.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/form_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/form_blue.png deleted file mode 100644 index 687cbf32..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/form_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/form_blue_add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/form_blue_add.png deleted file mode 100644 index 15fb1f21..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/form_blue_add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/front.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/front.png deleted file mode 100644 index 302a04ca..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/front.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/garbage.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/garbage.png deleted file mode 100644 index a8fe2a3c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/garbage.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/gear.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/gear.png deleted file mode 100644 index 8e1411f2..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/gear.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/gears.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/gears.png deleted file mode 100644 index 90ecf65c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/gears.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge.png deleted file mode 100644 index 537388ca..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge_curved.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge_curved.png deleted file mode 100644 index dcb67b42..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge_curved.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge_directed.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge_directed.png deleted file mode 100644 index 09e881bc..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/graph_edge_directed.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/group.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/group.png deleted file mode 100644 index be9d2df1..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/group.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/html.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/html.png deleted file mode 100644 index 292f755f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/html.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_large.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_large.png deleted file mode 100644 index edd52f73..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_large.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_medium.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_medium.png deleted file mode 100644 index d5559652..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_medium.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_small.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_small.png deleted file mode 100644 index ca6af1c6..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/icon_small.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/id_card.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/id_card.png deleted file mode 100644 index b72bae75..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/id_card.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/id_card_add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/id_card_add.png deleted file mode 100644 index 212dcc26..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/id_card_add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/image.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/image.png deleted file mode 100644 index b1d3ad27..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/image.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/lightbulb_off.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/lightbulb_off.png deleted file mode 100644 index d38e9e6c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/lightbulb_off.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/lightbulb_on.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/lightbulb_on.png deleted file mode 100644 index 032d1650..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/lightbulb_on.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/manual.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/manual.png deleted file mode 100644 index 41c04a0b..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/manual.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/media_play_green.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/media_play_green.png deleted file mode 100644 index 0a06be81..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/media_play_green.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/media_stop_red.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/media_stop_red.png deleted file mode 100644 index 02fbdd17..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/media_stop_red.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/move_small.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/move_small.png deleted file mode 100644 index 3d00db3c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/move_small.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/navigate_check.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/navigate_check.png deleted file mode 100644 index 8fc0a6a5..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/navigate_check.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/navigate_plus.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/navigate_plus.png deleted file mode 100644 index a751af18..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/navigate_plus.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/notebook_add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/notebook_add.png deleted file mode 100644 index 62bdeacb..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/notebook_add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/paste.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/paste.png deleted file mode 100644 index fe5c0e94..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/paste.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/pdf.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/pdf.png deleted file mode 100644 index 1dddc483..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/pdf.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/pens.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/pens.png deleted file mode 100644 index 16d091b2..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/pens.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/photo_scenery.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/photo_scenery.png deleted file mode 100644 index b1d3ad27..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/photo_scenery.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/plugin.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/plugin.png deleted file mode 100644 index 2bee22c4..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/plugin.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/print.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/print.png deleted file mode 100644 index ae807b13..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/print.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/redo.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/redo.png deleted file mode 100644 index 092ff424..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/redo.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/refresh.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/refresh.png deleted file mode 100644 index 1f23890d..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/refresh.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/save_as.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/save_as.png deleted file mode 100644 index a38d1fa2..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/save_as.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/selection.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/selection.png deleted file mode 100644 index dbb0a1a9..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/selection.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/size.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/size.png deleted file mode 100644 index 16fd65eb..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/size.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/sort.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/sort.png deleted file mode 100644 index e7f43647..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/sort.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/trace_mask.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/trace_mask.png deleted file mode 100644 index 38bf1602..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/trace_mask.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/undo.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/undo.png deleted file mode 100644 index f7e5f935..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/undo.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/ungroup.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/ungroup.png deleted file mode 100644 index 383e6330..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/ungroup.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/upload.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/upload.png deleted file mode 100644 index 113a7cda..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/upload.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/view.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/view.png deleted file mode 100644 index 21aae811..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/view.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/warning.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/warning.png deleted file mode 100644 index a6cdac6e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/warning.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/window_colors.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/window_colors.png deleted file mode 100644 index 8f5f13ba..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/window_colors.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/wrench.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/wrench.png deleted file mode 100644 index e6b6a1b5..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/wrench.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_in.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_in.png deleted file mode 100644 index f575d423..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_in.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_out.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_out.png deleted file mode 100644 index 4641b520..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_out.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_small.png b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_small.png deleted file mode 100644 index 7020e117..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/zoom_small.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/log4j.properties b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/log4j.properties deleted file mode 100644 index df80fe66..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/log4j.properties +++ /dev/null @@ -1,9 +0,0 @@ -log4j.rootLogger = DEBUG, fileout, stdout -log4j.appender.fileout = com.diyfever.gui.miscutils.NewLogForEachRunFileAppender -log4j.appender.fileout.layout.ConversionPattern = %d{ABSOLUTE} %5p [%t] %c{1} - %m%n -log4j.appender.fileout.layout = org.apache.log4j.PatternLayout -log4j.appender.fileout.File = log/log.log - -log4j.appender.stdout = org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p [%t] %c{1} - %m%n -log4j.appender.stdout.layout = org.apache.log4j.PatternLayout \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/CalcUtils.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/CalcUtils.java deleted file mode 100644 index 62db2dfc..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/CalcUtils.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.diylc.presenter; - -import java.awt.Point; - -import org.diylc.core.measures.Size; - -public class CalcUtils { - - /** - * Rounds the number to the closest grid line. - * - * @param x - * @return - */ - public static int roundToGrid(int x, Size gridSpacing) { - double grid = gridSpacing.convertToPixels(); - return (int) (Math.round(1f * x / grid) * grid); - } - - public static void snapPointToGrid(Point point, Size gridSpacing) { - int x = roundToGrid(point.x, gridSpacing); - int y = roundToGrid(point.y, gridSpacing); - point.setLocation(x, y); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComparatorFactory.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComparatorFactory.java deleted file mode 100644 index 3e87145a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComparatorFactory.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.diylc.presenter; - -import java.util.Comparator; - -import org.diylc.common.ComponentType; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IDIYComponent; - -public class ComparatorFactory { - - private static ComparatorFactory instance; - - private Comparator> componentNameComparator; - private Comparator componentTypeComparator; - private Comparator propertyNameComparator; - private Comparator> componentZOrderComparator; - - public static ComparatorFactory getInstance() { - if (instance == null) { - instance = new ComparatorFactory(); - } - return instance; - } - - public Comparator> getComponentNameComparator() { - if (componentNameComparator == null) { - componentNameComparator = new Comparator>() { - - @Override - public int compare(IDIYComponent o1, IDIYComponent o2) { - String name1 = o1.getName(); - String name2 = o2.getName(); - if (name1 == null || name2 == null) { - return 0; - } - return name1.compareToIgnoreCase(name2); - } - }; - } - return componentNameComparator; - } - - public Comparator getComponentTypeComparator() { - if (componentTypeComparator == null) { - componentTypeComparator = new Comparator() { - - @Override - public int compare(ComponentType o1, ComponentType o2) { - return o1.getName().compareToIgnoreCase(o2.getName()); - } - }; - } - return componentTypeComparator; - } - - public Comparator getPropertyNameComparator() { - if (propertyNameComparator == null) { - propertyNameComparator = new Comparator() { - - @Override - public int compare(PropertyWrapper o1, PropertyWrapper o2) { - return o1.getName().compareToIgnoreCase(o2.getName()); - } - - }; - } - return propertyNameComparator; - } - - public Comparator> getComponentZOrderComparator() { - if (componentZOrderComparator == null) { - componentZOrderComparator = new Comparator>() { - - @Override - public int compare(IDIYComponent o1, IDIYComponent o2) { - ComponentType type1 = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) o1.getClass()); - ComponentType type2 = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) o2.getClass()); - return new Double(type1.getZOrder()).compareTo(type2.getZOrder()); - } - }; - } - return componentZOrderComparator; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java deleted file mode 100644 index 5410f1df..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.diylc.presenter; - -import org.diylc.common.ComponentType; -import org.diylc.common.IComponentFiler; -import org.diylc.core.IDIYComponent; - -public class ComponentZOrderFiler implements IComponentFiler { - - private int zOrder; - - public ComponentZOrderFiler(int zOrder) { - super(); - this.zOrder = zOrder; - } - - @SuppressWarnings("unchecked") - @Override - public boolean testComponent(IDIYComponent component) { - ComponentType componentType = ComponentProcessor.getInstance().extractComponentTypeFrom( - (Class>) component.getClass()); - return Math.round(componentType.getZOrder()) == zOrder; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/PointConverter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/PointConverter.java deleted file mode 100644 index d7e79d32..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/PointConverter.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.diylc.presenter; - -import java.awt.Point; - -import org.diylc.utils.Constants; - -import com.thoughtworks.xstream.converters.Converter; -import com.thoughtworks.xstream.converters.MarshallingContext; -import com.thoughtworks.xstream.converters.UnmarshallingContext; -import com.thoughtworks.xstream.io.HierarchicalStreamReader; -import com.thoughtworks.xstream.io.HierarchicalStreamWriter; - -/** - * Serializes {@link Point} objects by converting coordinates from pixels to - * inches, thus avoiding the resolution to affect point placement. - * - * @author Branislav Stojkovic - */ -public class PointConverter implements Converter { - - @Override - public void marshal(Object object, HierarchicalStreamWriter writer, MarshallingContext context) { - Point point = (Point) object; - writer.addAttribute("x", Double.toString(1d * point.x / Constants.PIXELS_PER_INCH)); - writer.addAttribute("y", Double.toString(1d * point.y / Constants.PIXELS_PER_INCH)); - } - - @Override - public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { - double x = Double.parseDouble(reader.getAttribute("x")); - double y = Double.parseDouble(reader.getAttribute("y")); - return new Point((int) Math.round(x * Constants.PIXELS_PER_INCH), (int) Math.round(y - * Constants.PIXELS_PER_INCH)); - } - - @SuppressWarnings("unchecked") - @Override - public boolean canConvert(Class clazz) { - return Point.class.isAssignableFrom(clazz); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/Constants.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/Constants.java deleted file mode 100644 index da018a1f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/Constants.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.diylc.utils; - -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Stroke; -import java.awt.Toolkit; - -import org.diylc.core.Theme; - -public class Constants { - - public static final int PIXELS_PER_INCH = 200; - public static final double PIXEL_SIZE = 1d * PIXELS_PER_INCH - / Toolkit.getDefaultToolkit().getScreenResolution(); - - public static Color CANVAS_COLOR = Color.white; - - public static final Stroke DASHED_STROKE = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, - BasicStroke.JOIN_MITER, 10f, new float[] { 2.0f }, 0.0f); - - public static final Theme DEFAULT_THEME = new Theme("Light", Constants.CANVAS_COLOR, new Color( - 240, 240, 240), Color.black); - - public static final Color TRANSPARENT_COLOR = new Color(0, 0, 0, 0); - - public static final Color MULTI_VALUE_COLOR = Color.yellow; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/MemoryCleaner.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/MemoryCleaner.java deleted file mode 100644 index f478489f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/MemoryCleaner.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.diylc.utils; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.Collection; - -import org.apache.log4j.Logger; - -public class MemoryCleaner { - - private static final Logger LOG = Logger.getLogger(MemoryCleaner.class); - - public static void clean(Object obj) { - Class clazz = obj.getClass(); - LOG.debug("Cleaning up object of type: " + clazz.getName()); - try { - Method disposeMethod = clazz.getMethod("dispose"); - disposeMethod.invoke(obj); - } catch (Exception e) { - LOG.error(e); - } - // If it's a collection loop over and dispose elements. - if (Collection.class.isAssignableFrom(clazz)) { - LOG.info("Cleaning up collection elements"); - for (Object childObj : (Collection) obj) { - clean(childObj); - } - } - for (Field field : clazz.getFields()) { - if (!Modifier.isFinal(field.getModifiers())) { - try { - LOG.info("Cleaning up field: " + field.getName()); - Object childObj = field.get(obj); - field.set(obj, null); - clean(childObj); - } catch (Exception e) { - LOG.error(e); - } - } - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/templates/eyelet.diy b/ diy-layout-creator --username bancika@gmail.com/diylc-core/templates/eyelet.diy deleted file mode 100644 index 27fb5933..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/templates/eyelet.diy +++ /dev/null @@ -1,65 +0,0 @@ - - New Project - Branislav Stojkovic - - 29.0 - cm - - - 21.0 - cm - - - 0.1 - in - - - - Board1 - 127 - - - - 555 - 450 - - - 1140 - 795 - - - - 555 - 450 - - - 1140 - 795 - - - 248 - 235 - 179 - 255 - - - 173 - 164 - 125 - 255 - - - 0.3 - in - - - 195 - 228 - 237 - 255 - - - - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/templates/perf.diy b/ diy-layout-creator --username bancika@gmail.com/diylc-core/templates/perf.diy deleted file mode 100644 index 0abb50f5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/templates/perf.diy +++ /dev/null @@ -1,65 +0,0 @@ - - New Project - Branislav Stojkovic - - 29.0 - cm - - - 21.0 - cm - - - 0.1 - in - - - - Board1 - 127 - - - - 585 - 450 - - - 1050 - 690 - - - - 585 - 450 - - - 1050 - 690 - - - 248 - 235 - 179 - 255 - - - 173 - 164 - 125 - 255 - - - 0.1 - in - - - 218 - 138 - 103 - 255 - - - - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/AllTests.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/AllTests.java deleted file mode 100644 index f1eb198f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/AllTests.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.diylc; - -import org.diylc.plugins.file.BomMakerTest; -import org.diylc.presenter.ClassProcessorTest; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - - -@RunWith(Suite.class) -@SuiteClasses( { BomMakerTest.class, ClassProcessorTest.class }) -public class AllTests { - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/presenter/ClassProcessorTest.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/presenter/ClassProcessorTest.java deleted file mode 100644 index 80ab6068..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/presenter/ClassProcessorTest.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.diylc.presenter; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.List; - -import org.diylc.common.PropertyWrapper; -import org.diylc.components.MockDIYComponent; -import org.junit.Test; - - -public class ClassProcessorTest { - - @Test - public void testExtractProperties() { - List properties = ComponentProcessor.getInstance().extractProperties( - MockDIYComponent.class); - assertNotNull(properties); - assertEquals(4, properties.size()); - }; -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Blueprint.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Blueprint.xml deleted file mode 100644 index bd5af8ab..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Blueprint.xml +++ /dev/null @@ -1,21 +0,0 @@ - - Blueprint - - 3 - 122 - 198 - 255 - - - 29 - 140 - 193 - 255 - - - 255 - 255 - 255 - 255 - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Dark.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Dark.xml deleted file mode 100644 index ef5b0634..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Dark.xml +++ /dev/null @@ -1,21 +0,0 @@ - - Dark - - 0 - 0 - 0 - 255 - - - 40 - 40 - 40 - 255 - - - 255 - 255 - 255 - 255 - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Light.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Light.xml deleted file mode 100644 index d2841ca7..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/themes/Light.xml +++ /dev/null @@ -1,21 +0,0 @@ - - Light - - 255 - 255 - 255 - 255 - - - 240 - 240 - 240 - 240 - - - 0 - 0 - 0 - 255 - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/.classpath b/ diy-layout-creator --username bancika@gmail.com/diylc-library/.classpath deleted file mode 100644 index 62014aab..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/.classpath +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/.project b/ diy-layout-creator --username bancika@gmail.com/diylc-library/.project deleted file mode 100644 index d33c5534..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - diylc-library - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/build.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-library/build.xml deleted file mode 100644 index ec00f750..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/build.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - Compile with JDK ${java.runtime.version} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/app-framework.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/app-framework.jar deleted file mode 100644 index efcbe984..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/app-framework.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar deleted file mode 100644 index 1cf08ff1..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/log4j-1.2.15.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/log4j-1.2.15.jar deleted file mode 100644 index c930a6ab..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/log4j-1.2.15.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/xstream-1.3.1.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/xstream-1.3.1.jar deleted file mode 100644 index 4ef4219c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/xstream-1.3.1.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/AbstractBoard.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/AbstractBoard.java deleted file mode 100644 index 9c4f89e5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/AbstractBoard.java +++ /dev/null @@ -1,183 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.common.HorizontalAlignment; -import org.diylc.common.ObjectCache; -import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -public abstract class AbstractBoard extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color BOARD_COLOR = Color.decode("#F8EBB3"); - public static Color BORDER_COLOR = BOARD_COLOR.darker(); - public static Color COORDINATE_COLOR = Color.gray.brighter(); - public static float COORDINATE_FONT_SIZE = 9f; - public static Size DEFAULT_WIDTH = new Size(1.5d, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1.2d, SizeUnit.in); - - protected String value = ""; - protected Point[] controlPoints = new Point[] { - new Point(0, 0), - new Point((int) DEFAULT_WIDTH.convertToPixels(), (int) DEFAULT_HEIGHT.convertToPixels()) }; - protected Point firstPoint = new Point(); - protected Point secondPoint = new Point(); - - protected Color boardColor = BOARD_COLOR; - protected Color borderColor = BORDER_COLOR; - protected Color coordinateColor = COORDINATE_COLOR; - protected Boolean drawCoordinates = true; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(boardColor); - g2d.fillRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - - firstPoint.y); - g2d.setComposite(oldComposite); - } - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); - g2d.drawRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - - firstPoint.y); - // Do not track any changes that follow because the whole board has been - // tracked so far. - drawingObserver.stopTracking(); - } - - protected void drawCoordinates(Graphics2D g2d, int spacing) { - if (!getDrawCoordinates()) - return; - Point p = new Point(firstPoint); - g2d.setColor(coordinateColor); - g2d.setFont(LABEL_FONT.deriveFont(COORDINATE_FONT_SIZE)); - - int t = 1; - while (p.y < secondPoint.y - spacing) { - p.y += spacing; - super.drawCenteredText(g2d, getCoordinateLabel(t++), p.x + 2, p.y, - HorizontalAlignment.LEFT, VerticalAlignment.CENTER); - } - - p = new Point(firstPoint); - t = 1; - while (p.x < secondPoint.x - spacing) { - p.x += spacing; - super.drawCenteredText(g2d, getCoordinateLabel(t++), p.x, p.y - 2, - HorizontalAlignment.CENTER, VerticalAlignment.TOP); - } - } - - private String getCoordinateLabel(int coordinate) { - String result = ""; - while (coordinate > 0) { - int digit = coordinate % 26; - coordinate /= 26; - if (digit == 0) { - result = 'Z' + result; - coordinate--; - } else { - result = (char) ((int) 'A' + digit - 1) + result; - } - } - return result; - } - - @EditableProperty(name = "Color") - public Color getBoardColor() { - return boardColor; - } - - public void setBoardColor(Color boardColor) { - this.boardColor = boardColor; - } - - @EditableProperty(name = "Coordinate Color") - public Color getCoordinateColor() { - // Null protection for older files - return coordinateColor == null ? COORDINATE_COLOR : coordinateColor; - } - - public void setCoordinateColor(Color coordinateColor) { - this.coordinateColor = coordinateColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @EditableProperty(name = "Draw Coordinates") - public boolean getDrawCoordinates() { - // Null protection for older files - return drawCoordinates == null || drawCoordinates; - } - - public void setDrawCoordinates(boolean drawCoordinates) { - this.drawCoordinates = drawCoordinates; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - firstPoint.setLocation(Math.min(controlPoints[0].x, controlPoints[1].x), Math.min( - controlPoints[0].y, controlPoints[1].y)); - secondPoint.setLocation(Math.max(controlPoints[0].x, controlPoints[1].x), Math.max( - controlPoints[0].y, controlPoints[1].y)); - } - - @EditableProperty - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/BlankBoard.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/BlankBoard.java deleted file mode 100644 index 9c72f0c1..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/BlankBoard.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.Graphics2D; - -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; - -@ComponentDescriptor(name = "Blank Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Blank circuit board", bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME) -public class BlankBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - } - - @Override - public boolean getDrawCoordinates() { - // Override to prevent editing. - return super.getDrawCoordinates(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/EyeletBoard.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/EyeletBoard.java deleted file mode 100644 index 5977fa85..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/EyeletBoard.java +++ /dev/null @@ -1,116 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Eyelet Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated board with eyelets", bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME) -public class EyeletBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - public static Color BOARD_COLOR = Color.decode("#CCFFCC"); - public static Color BORDER_COLOR = BOARD_COLOR.darker(); - public static Color EYELET_COLOR = Color.decode("#C3E4ED"); - - public static Size SPACING = new Size(0.5d, SizeUnit.in); - public static Size EYELET_SIZE = new Size(0.2d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.1d, SizeUnit.in); - - // private Area copperArea; - protected Size spacing = SPACING; - protected Color eyeletColor = EYELET_COLOR; - - public EyeletBoard() { - super(); - this.boardColor = BOARD_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape clip = g2d.getClip(); - if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, secondPoint.y) - && !clip.contains(secondPoint.x, firstPoint.y)) { - return; - } - super.draw(g2d, componentState, outlineMode, project, drawingObserver); - if (componentState != ComponentState.DRAGGING) { - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - Point p = new Point(firstPoint); - int diameter = getClosestOdd((int) EYELET_SIZE.convertToPixels()); - int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - int spacing = (int) this.spacing.convertToPixels(); - - while (p.y < secondPoint.y - spacing) { - p.x = firstPoint.x; - p.y += spacing; - while (p.x < secondPoint.x - spacing - diameter) { - p.x += spacing; - g2d.setColor(eyeletColor); - g2d.fillOval(p.x - diameter / 2, p.y - diameter / 2, diameter, diameter); - g2d.setColor(eyeletColor.darker()); - g2d.drawOval(p.x - diameter / 2, p.y - diameter / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - g2d.setColor(eyeletColor.darker()); - g2d.drawOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - } - super.drawCoordinates(g2d, spacing); - } - } - - @EditableProperty(name = "Eyelet color") - public Color getEyeletColor() { - return eyeletColor; - } - - public void setEyeletColor(Color padColor) { - this.eyeletColor = padColor; - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - g2d.setColor(EYELET_COLOR); - g2d.fillOval(width / 4, width / 4, width / 2, width / 2); - g2d.setColor(EYELET_COLOR.darker()); - g2d.drawOval(width / 4, width / 4, width / 2, width / 2); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 2 - 2, width / 2 - 2, 5, 5); - g2d.setColor(EYELET_COLOR.darker()); - g2d.drawOval(width / 2 - 2, width / 2 - 2, 5, 5); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java deleted file mode 100644 index 797594b2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Marshall Style Perf Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated board as found on some Marshall and Trainwreck amps", bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME) -public class MarshallPerfBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - public static Color BOARD_COLOR = Color.decode("#CD8500"); - public static Color BORDER_COLOR = BOARD_COLOR.darker(); - public static Size SPACING = new Size(3 / 8d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(1 / 8d, SizeUnit.in); - - // private Area copperArea; - protected Size spacing = SPACING; - - public MarshallPerfBoard() { - super(); - this.boardColor = BOARD_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape clip = g2d.getClip(); - if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, secondPoint.y) - && !clip.contains(secondPoint.x, firstPoint.y)) { - return; - } - super.draw(g2d, componentState, outlineMode, project, drawingObserver); - if (componentState != ComponentState.DRAGGING) { - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - Point p = new Point(firstPoint); - int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - int spacing = (int) this.spacing.convertToPixels(); - - while (p.y < secondPoint.y - spacing) { - p.x = firstPoint.x; - p.y += spacing; - while (p.x < secondPoint.x - spacing - holeDiameter) { - p.x += spacing; - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - g2d.setColor(borderColor); - g2d.drawOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - } - super.drawCoordinates(g2d, spacing); - } - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 3 - 2, width / 3 - 2, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(width / 3 - 2, width / 3 - 2, 5, 5); - - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(2 * width / 3 - 2, width / 3 - 2, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(2 * width / 3 - 2, width / 3 - 2, 5, 5); - - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 3 - 2, 2 * width / 3 - 2, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(width / 3 - 2, 2 * width / 3 - 2, 5, 5); - - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(2 * width / 3 - 2, 2 * width / 3 - 2, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(2 * width / 3 - 2, 2 * width / 3 - 2, 5, 5); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/PerfBoard.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/PerfBoard.java deleted file mode 100644 index c263329e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/PerfBoard.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Perf Board w/ Pads", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated board with solder pads", bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME) -public class PerfBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - public static Color COPPER_COLOR = Color.decode("#DA8A67"); - - public static Size SPACING = new Size(0.1d, SizeUnit.in); - public static Size PAD_SIZE = new Size(0.08d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.7d, SizeUnit.mm); - - // private Area copperArea; - protected Size spacing = SPACING; - protected Color padColor = COPPER_COLOR; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape clip = g2d.getClip(); - if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, secondPoint.y) - && !clip.contains(secondPoint.x, firstPoint.y)) { - return; - } - super.draw(g2d, componentState, outlineMode, project, drawingObserver); - if (componentState != ComponentState.DRAGGING) { - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - Point p = new Point(firstPoint); - int diameter = getClosestOdd((int) PAD_SIZE.convertToPixels()); - int holeDiameter = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - int spacing = (int) this.spacing.convertToPixels(); - - while (p.y < secondPoint.y - spacing) { - p.x = firstPoint.x; - p.y += spacing; - while (p.x < secondPoint.x - spacing - diameter) { - p.x += spacing; - g2d.setColor(padColor); - g2d.fillOval(p.x - diameter / 2, p.y - diameter / 2, diameter, diameter); - g2d.setColor(padColor.darker()); - g2d.drawOval(p.x - diameter / 2, p.y - diameter / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - g2d.setColor(padColor.darker()); - g2d.drawOval(p.x - holeDiameter / 2, p.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - } - super.drawCoordinates(g2d, spacing); - } - } - - @EditableProperty(name = "Pad color") - public Color getPadColor() { - return padColor; - } - - public void setPadColor(Color padColor) { - this.padColor = padColor; - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - g2d.setColor(COPPER_COLOR); - g2d.fillOval(width / 4, width / 4, width / 2, width / 2); - g2d.setColor(COPPER_COLOR.darker()); - g2d.drawOval(width / 4, width / 4, width / 2, width / 2); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 2 - 2, width / 2 - 2, 5, 5); - g2d.setColor(COPPER_COLOR.darker()); - g2d.drawOval(width / 2 - 2, width / 2 - 2, 5, 5); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/VeroBoard.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/VeroBoard.java deleted file mode 100644 index 8cd2d7a8..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/boards/VeroBoard.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.diylc.components.boards; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.common.OrientationHV; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Vero Board", category = "Boards", author = "Branislav Stojkovic", zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Perforated FR4 board with copper strips connecting all holes in a row", bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME) -public class VeroBoard extends AbstractBoard { - - private static final long serialVersionUID = 1L; - - public static Color STRIP_COLOR = Color.decode("#DA8A67"); - public static Color BORDER_COLOR = BOARD_COLOR.darker(); - - public static Size SPACING = new Size(0.1d, SizeUnit.in); - public static Size STRIP_SIZE = new Size(0.07d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.7d, SizeUnit.mm); - - protected Size spacing = SPACING; - protected Color stripColor = STRIP_COLOR; - protected OrientationHV orientation = OrientationHV.HORIZONTAL; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape clip = g2d.getClip(); - if (checkPointsClipped(clip) && !clip.contains(firstPoint.x, secondPoint.y) - && !clip.contains(secondPoint.x, firstPoint.y)) { - return; - } - super.draw(g2d, componentState, outlineMode, project, drawingObserver); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - Point p = new Point(firstPoint); - int stripSize = getClosestOdd((int) STRIP_SIZE.convertToPixels()); - int holeSize = getClosestOdd((int) HOLE_SIZE.convertToPixels()); - int spacing = (int) this.spacing.convertToPixels(); - - if (orientation == OrientationHV.HORIZONTAL) { - while (p.y < secondPoint.y - spacing) { - p.x = firstPoint.x; - p.y += spacing; - g2d.setColor(stripColor); - g2d.fillRect(p.x + spacing / 2, p.y - stripSize / 2, secondPoint.x - spacing - - p.x, stripSize); - g2d.setColor(stripColor.darker()); - g2d.drawRect(p.x + spacing / 2, p.y - stripSize / 2, secondPoint.x - spacing - - p.x, stripSize); - while (p.x < secondPoint.x - spacing - holeSize) { - p.x += spacing; - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeSize / 2, p.y - holeSize / 2, holeSize, holeSize); - g2d.setColor(stripColor.darker()); - g2d.drawOval(p.x - holeSize / 2, p.y - holeSize / 2, holeSize, holeSize); - } - } - } else { - while (p.x < secondPoint.x - spacing) { - p.x += spacing; - p.y = firstPoint.y; - g2d.setColor(stripColor); - g2d.fillRect(p.x - stripSize / 2, p.y + spacing / 2, stripSize, secondPoint.y - - spacing - p.y); - g2d.setColor(stripColor.darker()); - g2d.drawRect(p.x - stripSize / 2, p.y + spacing / 2, stripSize, secondPoint.y - - spacing - p.y); - while (p.y < secondPoint.y - spacing - holeSize) { - p.y += spacing; - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(p.x - holeSize / 2, p.y - holeSize / 2, holeSize, holeSize); - g2d.setColor(stripColor.darker()); - g2d.drawOval(p.x - holeSize / 2, p.y - holeSize / 2, holeSize, holeSize); - } - } - } - g2d.setComposite(oldComposite); - super.drawCoordinates(g2d, spacing); - } - } - - @EditableProperty(name = "Strip color") - public Color getStripColor() { - return stripColor; - } - - public void setStripColor(Color padColor) { - this.stripColor = padColor; - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - } - - @EditableProperty - public OrientationHV getOrientation() { - return orientation; - } - - public void setOrientation(OrientationHV orientation) { - this.orientation = orientation; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BOARD_COLOR); - g2d.fillRect(2, 2, width - 4, height - 4); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(2, 2, width - 4, height - 4); - g2d.setColor(STRIP_COLOR); - g2d.fillRect(4, width / 4, width - 8, width / 2); - g2d.setColor(STRIP_COLOR.darker()); - g2d.drawRect(4, width / 4, width - 8, width / 2); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(width / 3 - 2, width / 2 - 2, 5, 5); - g2d.fillOval(2 * width / 3 - 2, width / 2 - 2, 5, 5); - g2d.setColor(STRIP_COLOR.darker()); - g2d.drawOval(width / 3 - 2, width / 2 - 2, 5, 5); - g2d.drawOval(2 * width / 3 - 2, width / 2 - 2, 5, 5); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/AWG.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/AWG.java deleted file mode 100644 index d1edc701..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/AWG.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.diylc.components.connectivity; - -public enum AWG { - - _8, _10, _12, _14, _16, _18, _20, _22, _24, _26, _28, _30; - - @Override - public String toString() { - return "#" + name().replace("_", ""); - } - - public int getValue() { - return Integer.parseInt(name().replace("_", "")); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java deleted file mode 100644 index 52f50f27..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java +++ /dev/null @@ -1,123 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Copper Trace", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "Trace", description = "Straight copper trace", zOrder = IDIYComponent.TRACE, bomPolicy = BomPolicy.NEVER_SHOW) -public class CopperTrace extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size THICKNESS = new Size(1d, SizeUnit.mm); - public static Color COLOR = Color.black; - - private Color leadColor = COLOR; - private Size thickness = THICKNESS; - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(3)); - g2d.setColor(COLOR); - g2d.drawLine(1, height - 2, width - 2, 1); - } - - @Override - protected Color getLeadColor(ComponentState componentState) { - return componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : leadColor; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @EditableProperty(name = "Color") - public Color getLeadColor() { - return leadColor; - } - - public void setLeadColor(Color leadColor) { - this.leadColor = leadColor; - } - - @EditableProperty(name = "Width") - public Size getThickness() { - return thickness; - } - - public void setThickness(Size thickness) { - this.thickness = thickness; - } - - @Override - protected int getLeadThickness() { - return (int) getThickness().convertToPixels(); - } - - @Override - protected boolean shouldShadeLeads() { - return false; - } - - public Color getBodyColor() { - return super.getBodyColor(); - } - - @Override - public Color getBorderColor() { - return super.getBorderColor(); - } - - @Override - public Byte getAlpha() { - return super.getAlpha(); - } - - @Override - public Size getLength() { - return super.getLength(); - } - - @Override - public Size getWidth() { - return super.getWidth(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @Override - protected Shape getBodyShape() { - return null; - } - - @Override - protected Size getDefaultWidth() { - return null; - } - - @Override - protected Size getDefaultLength() { - return null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java deleted file mode 100644 index 282ad685..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.geom.CubicCurve2D; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractCurvedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Curved Trace", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "Trace", description = "Curved copper trace with two control points", zOrder = IDIYComponent.TRACE, bomPolicy = BomPolicy.NEVER_SHOW) -public class CurvedTrace extends AbstractCurvedComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.black; - public static Size SIZE = new Size(1d, SizeUnit.mm); - - protected Size size = SIZE; - - @Override - protected Color getDefaultColor() { - return COLOR; - } - - @Override - protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) { - int thickness = (int) size.convertToPixels(); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness)); - Color curveColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color; - g2d.setColor(curveColor); - g2d.draw(curve); - } - - @EditableProperty(name = "Width") - public Size getThickness() { - return size; - } - - public void setThickness(Size size) { - this.size = size; - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @Override - public Byte getAlpha() { - return super.getAlpha(); - } - - @Override - public void setAlpha(Byte alpha) { - super.setAlpha(alpha); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Eyelet.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Eyelet.java deleted file mode 100644 index 4ef45eca..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Eyelet.java +++ /dev/null @@ -1,140 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Eyelet", category = "Connectivity", author = "Branislav Stojkovic", description = "Eyelet or turret terminal", instanceNamePrefix = "Eyelet", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1, bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME) -public class Eyelet extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static Size SIZE = new Size(0.2d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.1d, SizeUnit.in); - public static Color COLOR = Color.decode("#C3E4ED"); - - private Size size = SIZE; - private Size holeSize = HOLE_SIZE; - private Color color = COLOR; - private Point point = new Point(0, 0); - private String value = ""; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int diameter = getClosestOdd((int) size.convertToPixels()); - int holeDiameter = getClosestOdd((int) holeSize.convertToPixels()); - g2d.setColor(color); - g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker()); - g2d.drawOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter, - holeDiameter); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker()); - g2d.drawOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int diameter = getClosestOdd(width / 2); - int holeDiameter = 5; - g2d.setColor(COLOR); - g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); - g2d.setColor(COLOR.darker()); - g2d.drawOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, - holeDiameter); - g2d.setColor(COLOR.darker()); - g2d.drawOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, - holeDiameter); - } - - @EditableProperty - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @EditableProperty(name = "Hole size") - public Size getHoleSize() { - return holeSize; - } - - public void setHoleSize(Size holeSize) { - this.holeSize = holeSize; - } - - @Override - public String getName() { - return super.getName(); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(name = "Color") - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - @Override - @EditableProperty - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/HookupWire.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/HookupWire.java deleted file mode 100644 index 1bd235af..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/HookupWire.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.geom.CubicCurve2D; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractCurvedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Hookup Wire", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "W", description = "Flexible wire with two control points", zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW) -public class HookupWire extends AbstractCurvedComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.green; - public static double INSULATION_THICKNESS_PCT = 0.3; - - protected AWG gauge = AWG._22; - - @Override - protected Color getDefaultColor() { - return COLOR; - } - - @Override - protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, - ComponentState componentState) { - int thickness = (int) (Math.pow(Math.E, -1.12436 - 0.11594 - * gauge.getValue()) - * Constants.PIXELS_PER_INCH * (1 + 2 * INSULATION_THICKNESS_PCT)); - Color curveColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : color.darker(); - g2d.setColor(curveColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness)); - g2d.draw(curve); - if (componentState == ComponentState.NORMAL) { - g2d.setColor(color); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke( - thickness - 2)); - g2d.draw(curve); - } - } - - @EditableProperty(name = "AWG") - public AWG getGauge() { - return gauge; - } - - public void setGauge(AWG gauge) { - this.gauge = gauge; - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Jumper.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Jumper.java deleted file mode 100644 index 7350179e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Jumper.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; - -@ComponentDescriptor(name = "Jumper", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "J", description = "", zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW) -public class Jumper extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.blue; - - private Color color = COLOR; - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(3)); - g2d.setColor(COLOR.darker()); - g2d.drawLine(1, height - 2, width - 2, 1); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(COLOR); - g2d.drawLine(1, height - 2, width - 2, 1); - } - - @Override - public Color getLeadColor(ComponentState componentState) { - return componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - public Color getBodyColor() { - return super.getBodyColor(); - } - - @Override - public Color getBorderColor() { - return super.getBorderColor(); - } - - @Override - public Byte getAlpha() { - return super.getAlpha(); - } - - @Override - public Size getLength() { - return super.getLength(); - } - - @Override - public Size getWidth() { - return super.getWidth(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @Override - protected Shape getBodyShape() { - return null; - } - - @Override - protected Size getDefaultWidth() { - return null; - } - - @Override - protected Size getDefaultLength() { - return null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Line.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Line.java deleted file mode 100644 index 001efcd4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Line.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; - -@ComponentDescriptor(name = "Line", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "LN", description = "", zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW) -public class Line extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.black; - - private Color color = COLOR; - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(COLOR); - g2d.drawLine(1, height - 2, width - 2, 1); - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(color); - g2d.drawLine(getControlPoint(0).x, getControlPoint(0).y, getControlPoint(1).x, - getControlPoint(1).y); - } - - @Override - public Color getLeadColor(ComponentState componentState) { - return componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - public Color getBodyColor() { - return super.getBodyColor(); - } - - @Override - public Color getBorderColor() { - return super.getBorderColor(); - } - - @Override - public Byte getAlpha() { - return super.getAlpha(); - } - - @Override - public Size getLength() { - return super.getLength(); - } - - @Override - public Size getWidth() { - return super.getWidth(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @Override - protected Shape getBodyShape() { - return null; - } - - @Override - protected Size getDefaultWidth() { - return null; - } - - @Override - protected Size getDefaultLength() { - return null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/SolderPad.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/SolderPad.java deleted file mode 100644 index a4cbd0f4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/SolderPad.java +++ /dev/null @@ -1,152 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Solder Pad", category = "Connectivity", author = "Branislav Stojkovic", description = "test", instanceNamePrefix = "Pad", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1, bomPolicy = BomPolicy.NEVER_SHOW) -public class SolderPad extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static Size SIZE = new Size(0.09d, SizeUnit.in); - public static Size HOLE_SIZE = new Size(0.8d, SizeUnit.mm); - public static Color COLOR = Color.black; - - private Size size = SIZE; - private Color color = COLOR; - private Point point = new Point(0, 0); - private Type type = Type.ROUND; - private Size holeSize = HOLE_SIZE; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int diameter = getClosestOdd((int) getSize().convertToPixels()); - int holeDiameter = getClosestOdd((int) getHoleSize().convertToPixels()); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color); - if (type == Type.ROUND) { - g2d.fillOval(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); - } else { - g2d.fillRect(point.x - diameter / 2, point.y - diameter / 2, diameter, diameter); - } - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval(point.x - holeDiameter / 2, point.y - holeDiameter / 2, holeDiameter, - holeDiameter); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int diameter = getClosestOdd(width / 2); - int holeDiameter = 5; - g2d.setColor(COLOR); - g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); - g2d.setColor(Constants.CANVAS_COLOR); - g2d.fillOval((width - holeDiameter) / 2, (height - holeDiameter) / 2, holeDiameter, - holeDiameter); - } - - @EditableProperty - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @EditableProperty(name = "Hole") - public Size getHoleSize() { - if (holeSize == null) { - holeSize = HOLE_SIZE; - } - return holeSize; - } - - public void setHoleSize(Size holeSize) { - this.holeSize = holeSize; - } - - @Override - public String getName() { - return super.getName(); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(name = "Color") - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - @EditableProperty - public Type getType() { - return type; - } - - public void setType(Type type) { - this.type = type; - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - static enum Type { - ROUND, SQUARE; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase(); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/TraceCut.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/TraceCut.java deleted file mode 100644 index 16ab1694..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/TraceCut.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.diylc.components.connectivity; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Trace Cut", category = "Connectivity", author = "Branislav Stojkovic", description = "Designates the place where a trace on the vero board needs to be cut", instanceNamePrefix = "Cut", stretchable = false, zOrder = IDIYComponent.BOARD + 1, bomPolicy = BomPolicy.NEVER_SHOW) -public class TraceCut extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static Size SIZE = new Size(0.07d, SizeUnit.in); - public static Color FILL_COLOR = Color.white; - public static Color BORDER_COLOR = Color.red; - public static Color SELECTION_COLOR = Color.blue; - - private Size size = SIZE; - private Color fillColor = FILL_COLOR; - private Color borderColor = BORDER_COLOR; - - protected Point point = new Point(0, 0); - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int size = getClosestOdd((int) this.size.convertToPixels()); - int dotDiameter = size - 6; - g2d.setColor(fillColor); - g2d.fillRect(point.x - size / 2, point.y - size / 2, size, size); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawRect(point.x - size / 2, point.y - size / 2, size, size); - g2d - .fillOval(point.x - dotDiameter / 2, point.y - dotDiameter / 2, dotDiameter, - dotDiameter); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int size = 16; - int dotDiameter = size / 4 * 2; - g2d.setColor(FILL_COLOR); - g2d.fillRect((width - size) / 2, (height - size) / 2, size, size); - g2d.setColor(BORDER_COLOR); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawRect((width - size) / 2, (height - size) / 2, size, size); - g2d.fillOval((width - dotDiameter) / 2, (height - dotDiameter) / 2, dotDiameter, - dotDiameter); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } - - @EditableProperty - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @EditableProperty(name = "Fill") - public Color getFillColor() { - return fillColor; - } - - public void setFillColor(Color fillColor) { - this.fillColor = fillColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @Override - public String getName() { - return super.getName(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/BatterySnap9V.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/BatterySnap9V.java deleted file mode 100644 index 461c3c0a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/BatterySnap9V.java +++ /dev/null @@ -1,252 +0,0 @@ -package org.diylc.components.electromechanical; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Polygon; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "9V Battery Snap", category = "Electromechanical", author = "Branislav Stojkovic", description = "", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "BTR") -public class BatterySnap9V extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Color BODY_COLOR = Color.darkGray; - private static Size WIDTH = new Size(0.5d, SizeUnit.in); - private static Size LENGTH = new Size(0.75d, SizeUnit.in); - private static Size TERMINAL_DIAMETER = new Size(0.3d, SizeUnit.in); - private static Size TERMINAL_SPACING = new Size(0.5d, SizeUnit.in); - private static Size TERMINAL_BORDER = new Size(0.7d, SizeUnit.mm); - - private String value = ""; - private Point controlPoint = new Point(0, 0); - transient Shape[] body; - private Orientation orientation = Orientation.DEFAULT; - private Color color = BODY_COLOR; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape[] body = getBody(); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); - g2d.fill(body[0]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : METAL_COLOR); - g2d.fill(body[1]); - g2d.fill(body[2]); - g2d.setComposite(oldComposite); - } - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color - .brighter(); - } - - g2d.setColor(finalBorderColor); - g2d.draw(body[0]); - g2d.setColor(METAL_COLOR.darker()); - g2d.draw(body[1]); - g2d.setColor(METAL_COLOR.darker()); - g2d.draw(body[2]); - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[3]; - - int x = controlPoint.x; - int y = controlPoint.y; - int width = (int) WIDTH.convertToPixels(); - int length = (int) LENGTH.convertToPixels(); - int totalLength = length + width / 2; - int terminalDiameter = (int) TERMINAL_DIAMETER.convertToPixels(); - int terminalSpacing = (int) TERMINAL_SPACING.convertToPixels(); - int terminalBorder = (int) TERMINAL_BORDER.convertToPixels(); - - Area mainArea = new Area(new Rectangle2D.Double(x, y - width / 2, length, width)); - mainArea.add(new Area(new Ellipse2D.Double(x + length - width / 2, y - width / 2, - width, width))); - - body[0] = mainArea; - - Area terminalArea = new Area(new Ellipse2D.Double(x + (totalLength - terminalSpacing) - / 2 - terminalDiameter / 2, y - terminalDiameter / 2, terminalDiameter, - terminalDiameter)); - - int centerX = x + (totalLength + terminalSpacing) / 2; - int[] terminalX = new int[6]; - int[] terminalY = new int[6]; - - for (int i = 0; i < 6; i++) { - terminalX[i] = (int) (centerX + Math.cos(Math.PI / 3 * i) * terminalDiameter / 2); - terminalY[i] = (int) (y + Math.sin(Math.PI / 3 * i) * terminalDiameter / 2); - } - terminalArea.add(new Area(new Polygon(terminalX, terminalY, 6))); - - body[1] = terminalArea; - - terminalArea = new Area(new Ellipse2D.Double(x + (totalLength - terminalSpacing) / 2 - - terminalDiameter / 2 + terminalBorder, y - terminalDiameter / 2 - + terminalBorder, terminalDiameter - 2 * terminalBorder, terminalDiameter - 2 - * terminalBorder)); - - for (int i = 0; i < 6; i++) { - terminalX[i] = (int) (centerX + Math.cos(Math.PI / 3 * i) - * (terminalDiameter / 2 + terminalBorder)); - terminalY[i] = (int) (y + Math.sin(Math.PI / 3 * i) - * (terminalDiameter / 2 + terminalBorder)); - } - terminalArea.add(new Area(new Polygon(terminalX, terminalY, 6))); - - body[2] = terminalArea; - - // Rotate if needed - if (orientation != Orientation.DEFAULT) { - double theta = 0; - switch (orientation) { - case _90: - theta = Math.PI / 2; - break; - case _180: - theta = Math.PI; - break; - case _270: - theta = Math.PI * 3 / 2; - break; - } - AffineTransform rotation = AffineTransform.getRotateInstance(theta, x, y); - for (Shape shape : body) { - Area area = (Area) shape; - area.transform(rotation); - } - } - } - return body; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BODY_COLOR); - g2d.fillOval(width / 4, width / 32, width / 2, width / 2); - g2d.setColor(BODY_COLOR.darker()); - g2d.drawOval(width / 4, width / 32, width / 2, width / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(width / 4, width / 32 + width / 4, width / 2, width * 3 / 4 - 2 * width / 32); - g2d.setColor(BODY_COLOR.darker()); - g2d.drawRect(width / 4, width / 32 + width / 4, width / 2, width * 3 / 4 - 2 * width / 32); - g2d.setColor(METAL_COLOR); - g2d.fillOval(width / 4 + 3 * width / 32, width / 32 + 3 * width / 32, width / 2 - 6 * width - / 32, width / 2 - 6 * width / 32); - - int centerX = width / 2; - int centerY = height * 7 / 9; - int terminalDiameter = width / 2 - 4 * width / 32; - int[] terminalX = new int[6]; - int[] terminalY = new int[6]; - - for (int i = 0; i < 6; i++) { - terminalX[i] = (int) (centerX + Math.cos(Math.PI / 3 * i) * terminalDiameter / 2); - terminalY[i] = (int) (centerY + Math.sin(Math.PI / 3 * i) * terminalDiameter / 2); - } - g2d.fillPolygon(terminalX, terminalY, 6); - g2d.setColor(METAL_COLOR.darker()); - g2d.drawOval(width / 4 + 3 * width / 32, width / 32 + 3 * width / 32, width / 2 - 6 * width - / 32, width / 2 - 6 * width / 32); - g2d.drawPolygon(terminalX, terminalY, 6); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public Point getControlPoint(int index) { - return controlPoint; - } - - @Override - public void setControlPoint(Point point, int index) { - this.controlPoint.setLocation(point); - // Invalidate the body - body = null; - } - - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - // Invalidate the body - body = null; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/CliffJack1_4.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/CliffJack1_4.java deleted file mode 100644 index 36621a54..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/CliffJack1_4.java +++ /dev/null @@ -1,331 +0,0 @@ -package org.diylc.components.electromechanical; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.HorizontalAlignment; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Cliff 1/4\" Jack", category = "Electromechanical", author = "Branislav Stojkovic", description = "Cliff-style closed panel mount 1/4\" phono jack", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "J") -public class CliffJack1_4 extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Size SPACING = new Size(0.3d, SizeUnit.in); - private static Size PIN_WIDTH = new Size(0.1d, SizeUnit.in); - private static Size PIN_THICKNESS = new Size(0.02d, SizeUnit.in); - private static Color BODY_COLOR = Color.decode("#666666"); - private static Color NUT_COLOR = Color.decode("#999999"); - private static Color BORDER_COLOR = Color.black; - private static Color LABEL_COLOR = Color.white; - private static Size BODY_WIDTH = new Size(3/4d, SizeUnit.in); - private static Size BODY_LENGTH = new Size(0.9d, SizeUnit.in); - private static Size TAIL_LENGTH = new Size(0.1d, SizeUnit.in); - - private Point[] controlPoints = new Point[] { new Point(0, 0) }; - private JackType type = JackType.MONO; - private Orientation orientation = Orientation.DEFAULT; - transient private Shape[] body; - private String value = ""; - - public CliffJack1_4() { - super(); - updateControlPoints(); - } - - private void updateControlPoints() { - // invalidate body shape - body = null; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int spacing = (int) SPACING.convertToPixels(); - controlPoints = new Point[type == JackType.STEREO ? 6 : 4]; - - controlPoints[0] = new Point(x, y); - controlPoints[1] = new Point(x, y + 2 * spacing); - controlPoints[2] = new Point(x + 2 * spacing, y); - controlPoints[3] = new Point(x + 2 * spacing, y + 2 * spacing); - if (type == JackType.STEREO) { - controlPoints[4] = new Point(x + spacing, y); - controlPoints[5] = new Point(x + spacing, y + 2 * spacing); - } - - // Apply rotation if necessary - double angle = getAngle(); - if (angle != 0) { - AffineTransform rotation = AffineTransform.getRotateInstance(angle, x, y); - for (int i = 1; i < controlPoints.length; i++) { - rotation.transform(controlPoints[i], controlPoints[i]); - } - } - } - - private double getAngle() { - // Apply rotation if necessary - double angle; - switch (orientation) { - case _90: - angle = Math.PI / 2; - break; - case _180: - angle = Math.PI; - break; - case _270: - angle = Math.PI * 3 / 2; - break; - default: - angle = 0; - } - - return angle; - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[5]; - - // Create body. - int bodyLength = (int) BODY_LENGTH.convertToPixels(); - int bodyWidth = (int) BODY_WIDTH.convertToPixels(); - int centerX = (controlPoints[0].x + controlPoints[3].x) / 2; - int centerY = (controlPoints[0].y + controlPoints[3].y) / 2; - body[0] = new Rectangle(centerX - bodyLength / 2, centerY - bodyWidth / 2, bodyLength, - bodyWidth); - - int tailLength = (int) TAIL_LENGTH.convertToPixels(); - body[1] = new RoundRectangle2D.Double(centerX - bodyLength / 2 - tailLength, centerY - - bodyWidth / 4, tailLength * 2, bodyWidth / 2, tailLength, tailLength); - Area tailArea = new Area(body[1]); - tailArea.subtract(new Area(body[0])); - body[1] = tailArea; - - body[2] = new Rectangle(centerX + bodyLength / 2, centerY - bodyWidth / 4, tailLength, - bodyWidth / 2); - - body[3] = new Rectangle(centerX + bodyLength / 2 + tailLength, centerY - bodyWidth / 4, - tailLength, bodyWidth / 2); - tailArea = new Area(body[3]); - int radius = bodyLength / 2 + tailLength * 2; - tailArea.intersect(new Area(new Ellipse2D.Double(centerX - radius, centerY - radius, - radius * 2, radius * 2))); - body[3] = tailArea; - - // Apply rotation if necessary - double angle = getAngle(); - if (angle != 0) { - AffineTransform rotation = AffineTransform.getRotateInstance(angle, centerX, - centerY); - for (int i = 0; i < body.length; i++) { - if (body[i] != null) { - Area area = new Area(body[i]); - area.transform(rotation); - body[i] = area; - } - } - } - - // Create pins. - Area pins = new Area(); - - int pinWidth = (int) PIN_WIDTH.convertToPixels(); - int pinThickness = (int) PIN_THICKNESS.convertToPixels(); - for (int i = 0; i < getControlPointCount(); i++) { - Point point = getControlPoint(i); - Rectangle pin; - if (orientation == Orientation.DEFAULT || orientation == Orientation._180) { - pin = new Rectangle(point.x - pinWidth / 2, point.y - pinThickness / 2, - pinWidth, pinThickness); - } else { - pin = new Rectangle(point.x - pinThickness / 2, point.y - pinWidth / 2, - pinThickness, pinWidth); - } - pins.add(new Area(pin)); - } - - body[4] = pins; - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape[] body = getBody(); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - for (int i = 0; i < body.length - 1; i++) { - // Nut is brighter colored. - if (i == body.length - 2) - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : NUT_COLOR); - g2d.fill(body[i]); - } - g2d.setComposite(oldComposite); - } - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : BORDER_COLOR; - } - - g2d.setColor(finalBorderColor); - for (int i = 0; i < body.length - 1; i++) { - g2d.draw(body[i]); - } - - // Pins are the last piece. - Shape pins = body[body.length - 1]; - g2d.setColor(METAL_COLOR); - g2d.fill(pins); - g2d.setColor(METAL_COLOR.darker()); - g2d.draw(pins); - - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - g2d.setFont(LABEL_FONT); - int centerX = (controlPoints[0].x + controlPoints[3].x) / 2; - int centerY = (controlPoints[0].y + controlPoints[3].y) / 2; - drawCenteredText(g2d, name, centerX, centerY, HorizontalAlignment.CENTER, - VerticalAlignment.CENTER); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int bodyWidth = getClosestOdd(width * 3 / 5); - int tailWidth = getClosestOdd(width * 3 / 9); - - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect((width - tailWidth) / 2, height / 2, tailWidth, height / 2 - 2 * 32 - / height, 4 * 32 / width, 4 * 32 / width); - g2d.setColor(BORDER_COLOR); - g2d.drawRoundRect((width - tailWidth) / 2, height / 2, tailWidth, height / 2 - 2 * 32 - / height, 4 * 32 / width, 4 * 32 / width); - - g2d.setColor(NUT_COLOR); - g2d.fillRoundRect((width - tailWidth) / 2, 2 * 32 / height, tailWidth, height / 2, - 4 * 32 / width, 4 * 32 / width); - g2d.setColor(BORDER_COLOR); - g2d.drawRoundRect((width - tailWidth) / 2, 2 * 32 / height, tailWidth, height / 2, - 4 * 32 / width, 4 * 32 / width); - - g2d.setColor(BODY_COLOR); - g2d.fillRect((width - bodyWidth) / 2, height / 7 + 1, bodyWidth, height * 5 / 7); - g2d.setColor(BORDER_COLOR); - g2d.drawRect((width - bodyWidth) / 2, height / 7 + 1, bodyWidth, height * 5 / 7); - - g2d.setColor(METAL_COLOR); - int pinX1 = getClosestOdd((width - bodyWidth * 3 / 4) / 2); - int pinX2 = getClosestOdd((width + bodyWidth * 3 / 4) / 2) - 1; - g2d.drawLine(pinX1, width * 2 / 8, pinX1, width * 3 / 8); - g2d.drawLine(pinX1, width * 5 / 8, pinX1, width * 6 / 8); - g2d.drawLine(pinX2, width * 2 / 8, pinX2, width * 3 / 8); - g2d.drawLine(pinX2, width * 5 / 8, pinX2, width * 6 / 8); - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @EditableProperty - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public JackType getType() { - return type; - } - - public void setType(JackType type) { - this.type = type; - updateControlPoints(); - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/ClosedJack1_4.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/ClosedJack1_4.java deleted file mode 100644 index fc32c2fa..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/ClosedJack1_4.java +++ /dev/null @@ -1,338 +0,0 @@ -package org.diylc.components.electromechanical; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.GeneralPath; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.HorizontalAlignment; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Closed 1/4\" Jack", category = "Electromechanical", author = "Branislav Stojkovic", description = "Enclosed panel mount 1/4\" phono jack", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "J") -public class ClosedJack1_4 extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Size SPACING = new Size(0.1d, SizeUnit.in); - private static Size LUG_WIDTH = new Size(0.1d, SizeUnit.in); - private static Size LUG_LENGTH = new Size(0.12d, SizeUnit.in); - private static Size LUG_HOLE_SIZE = new Size(1d, SizeUnit.mm); - private static Color BODY_COLOR = Color.decode("#666666"); - private static Color SHAFT_COLOR = Color.decode("#AAAAAA"); - private static Size SHAFT_LENGTH = new Size(0.25d, SizeUnit.in); - private static Size SHAFT_WIDTH = new Size(3d / 8, SizeUnit.in); - private static Color BORDER_COLOR = Color.black; - private static Color LABEL_COLOR = Color.white; - private static Size BODY_WIDTH = new Size(0.65d, SizeUnit.in); - private static Size BODY_LENGTH = new Size(0.8d, SizeUnit.in); - - private Point[] controlPoints = new Point[] { new Point(0, 0) }; - private JackType type = JackType.MONO; - private Orientation orientation = Orientation.DEFAULT; - transient private Shape[] body; - private String value = ""; - - public ClosedJack1_4() { - super(); - updateControlPoints(); - } - - private void updateControlPoints() { - // invalidate body shape - body = null; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int spacing = (int) SPACING.convertToPixels(); - int bodyLength = (int) BODY_LENGTH.convertToPixels(); - controlPoints = new Point[type == JackType.STEREO ? 3 : 2]; - - controlPoints[0] = new Point(x, y); - controlPoints[1] = new Point(x + bodyLength, y); - if (type == JackType.STEREO) { - controlPoints[2] = new Point(x, y + 2 * spacing); - } - - // Apply rotation if necessary - double angle = getAngle(); - if (angle != 0) { - AffineTransform rotation = AffineTransform.getRotateInstance(angle, x, y); - for (int i = 1; i < controlPoints.length; i++) { - rotation.transform(controlPoints[i], controlPoints[i]); - } - } - } - - private double getAngle() { - // Apply rotation if necessary - double angle; - switch (orientation) { - case _90: - angle = Math.PI / 2; - break; - case _180: - angle = Math.PI; - break; - case _270: - angle = Math.PI * 3 / 2; - break; - default: - angle = 0; - } - - return angle; - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[5]; - - // Create body. - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int lugWidth = (int) LUG_WIDTH.convertToPixels(); - int lugLength = (int) LUG_LENGTH.convertToPixels(); - int lugHoleSize = (int) LUG_HOLE_SIZE.convertToPixels(); - int bodyLength = (int) BODY_LENGTH.convertToPixels(); - int bodyWidth = (int) BODY_WIDTH.convertToPixels(); - body[0] = new Area(new Rectangle(x + lugLength, y - bodyWidth / 2, bodyLength, - bodyWidth)); - - int shaftLength = (int) SHAFT_LENGTH.convertToPixels(); - int shaftWidth = (int) SHAFT_WIDTH.convertToPixels(); - Area shaft = new Area(new Rectangle(x + lugLength + bodyLength, y - shaftWidth / 2, - shaftLength, shaftWidth)); - body[1] = shaft; - - double angle = getAngle(); - AffineTransform rotation = null; - if (angle != 0) { - rotation = AffineTransform.getRotateInstance(angle, x, y); - } - - GeneralPath path = new GeneralPath(); - int step = 4; - for (int i = x + lugLength + bodyLength + step; i <= x + lugLength + bodyLength - + shaftLength; i += step) { - Point p = new Point(i, y - shaftWidth / 2 + 1); - if (rotation != null) { - rotation.transform(p, p); - } - path.moveTo(p.x, p.y); - p = new Point(i - step, y + shaftWidth / 2 - 1); - if (rotation != null) { - rotation.transform(p, p); - } - path.lineTo(p.x, p.y); - } - Area pathArea = new Area(path); - pathArea.intersect(shaft); - body[2] = path; - - // Create lugs. - Area lugs = new Area(); - - int spacing = (int) SPACING.convertToPixels(); - Point[] untransformedControlPoints = new Point[type == JackType.STEREO ? 3 : 2]; - - untransformedControlPoints[0] = new Point(x, y); - untransformedControlPoints[1] = new Point(x + bodyLength, y); - if (type == JackType.STEREO) { - untransformedControlPoints[2] = new Point(x, y + 2 * spacing); - } - - for (int i = 0; i < untransformedControlPoints.length; i++) { - Point point = untransformedControlPoints[i]; - Area lug = new Area(new Ellipse2D.Double(point.x - lugWidth / 2, point.y - lugWidth - / 2, lugWidth, lugWidth)); - lug.add(new Area( - new Rectangle(point.x, point.y - lugWidth / 2, lugLength, lugWidth))); - lug.subtract(new Area(new Ellipse2D.Double(point.x - lugHoleSize / 2, point.y - - lugHoleSize / 2, lugHoleSize, lugHoleSize))); - lugs.add(lug); - } - - body[3] = lugs; - - // Rotate everything that's of Area type, e.g. everything but lines. - if (rotation != null) { - for (Shape shape : body) { - if (shape instanceof Area) { - Area area = (Area) shape; - area.transform(rotation); - } - } - } - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape[] body = getBody(); - - // Rectangle bounds = body.getBounds(); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - g2d.fill(body[0]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : SHAFT_COLOR); - g2d.fill(body[1]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : METAL_COLOR); - g2d.fill(body[3]); - g2d.setComposite(oldComposite); - } - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR; - } - - g2d.setColor(finalBorderColor); - g2d.draw(body[0]); - g2d.draw(body[1]); - if (!outlineMode) { - g2d.setColor(SHAFT_COLOR.darker()); - g2d.fill(body[2]); - g2d.draw(body[2]); - } - - // Pins are the last piece. - g2d.setColor(outlineMode ? finalBorderColor : METAL_COLOR.darker()); - g2d.draw(body[3]); - - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - g2d.setFont(LABEL_FONT); - Rectangle bounds = body[0].getBounds(); - int centerX = bounds.x + bounds.width / 2; - int centerY = bounds.y + bounds.height / 2; - drawCenteredText(g2d, name, centerX, centerY, HorizontalAlignment.CENTER, - VerticalAlignment.CENTER); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int bodyWidth = getClosestOdd(width * 3 / 5); - int tailWidth = getClosestOdd(width * 3 / 10); - - g2d.setColor(SHAFT_COLOR); - g2d.fillRect((width - tailWidth) / 2, 1, tailWidth, height / 2); - g2d.setColor(BORDER_COLOR); - g2d.drawRect((width - tailWidth) / 2, 1, tailWidth, height / 2); - - g2d.setColor(BODY_COLOR); - g2d.fillRect((width - bodyWidth) / 2, height / 7 + 1, bodyWidth, height * 5 / 7); - g2d.setColor(BORDER_COLOR); - g2d.drawRect((width - bodyWidth) / 2, height / 7 + 1, bodyWidth, height * 5 / 7); - - g2d.setColor(METAL_COLOR); - - g2d.fillRect(width * 7 / 16, height * 6 / 7 + 1, width / 8, height / 7 - 1); - g2d.fillRect(width * 7 / 16, height / 7 + 2, width / 8, height / 7 - 1); - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @EditableProperty - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public JackType getType() { - return type; - } - - public void setType(JackType type) { - this.type = type; - updateControlPoints(); - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/DCPolarity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/DCPolarity.java deleted file mode 100644 index 0f69e82b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/DCPolarity.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.diylc.components.electromechanical; - -public enum DCPolarity { - - NONE("None"), CENTER_POSITIVE("Center Positive"), CENTER_NEGATIVE("Center Negative"); - - private String title; - - private DCPolarity(String title) { - this.title = title; - } - - @Override - public String toString() { - return title; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/JackType.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/JackType.java deleted file mode 100644 index babf975a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/JackType.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.components.electromechanical; - -public enum JackType { - - MONO, STEREO; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java deleted file mode 100644 index 1efdac51..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java +++ /dev/null @@ -1,271 +0,0 @@ -package org.diylc.components.electromechanical; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Mini Toggle Switch", category = "Electromechanical", author = "Branislav Stojkovic", description = "Panel mounted mini toggle switch", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "SW") -public class MiniToggleSwitch extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Size SPACING = new Size(0.2d, SizeUnit.in); - private static Size MARGIN = new Size(0.08d, SizeUnit.in); - private static Size CIRCLE_SIZE = new Size(0.09d, SizeUnit.in); - private static Size LUG_WIDTH = new Size(0.060d, SizeUnit.in); - private static Size LUG_THICKNESS = new Size(0.02d, SizeUnit.in); - - private static Color BODY_COLOR = Color.decode("#3299CC"); - private static Color BORDER_COLOR = BODY_COLOR.darker(); - private static Color CIRCLE_COLOR = Color.decode("#FFFFAA"); - - protected Point[] controlPoints = new Point[] { new Point(0, 0) }; - transient protected RoundRectangle2D body; - protected String name; - protected ToggleSwitchType switchType = ToggleSwitchType.DPDT; - - public MiniToggleSwitch() { - super(); - updateControlPoints(); - } - - private void updateControlPoints() { - Point firstPoint = controlPoints[0]; - int spacing = (int) SPACING.convertToPixels(); - switch (switchType) { - case SPST: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing) }; - break; - case SPDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing) }; - break; - case DPDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + spacing, firstPoint.y), - new Point(firstPoint.x + spacing, firstPoint.y + spacing), - new Point(firstPoint.x + spacing, firstPoint.y + 2 * spacing) }; - break; - case _3PDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + spacing, firstPoint.y), - new Point(firstPoint.x + spacing, firstPoint.y + spacing), - new Point(firstPoint.x + spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + 2 * spacing) }; - break; - case _4PDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + spacing, firstPoint.y), - new Point(firstPoint.x + spacing, firstPoint.y + spacing), - new Point(firstPoint.x + spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 3 * spacing, firstPoint.y), - new Point(firstPoint.x + 3 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 3 * spacing, firstPoint.y + 2 * spacing) }; - break; - case _5PDT: - controlPoints = new Point[] { firstPoint, - new Point(firstPoint.x, firstPoint.y + spacing), - new Point(firstPoint.x, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + spacing, firstPoint.y), - new Point(firstPoint.x + spacing, firstPoint.y + spacing), - new Point(firstPoint.x + spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 2 * spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 3 * spacing, firstPoint.y), - new Point(firstPoint.x + 3 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 3 * spacing, firstPoint.y + 2 * spacing), - new Point(firstPoint.x + 4 * spacing, firstPoint.y), - new Point(firstPoint.x + 4 * spacing, firstPoint.y + spacing), - new Point(firstPoint.x + 4 * spacing, firstPoint.y + 2 * spacing) }; - break; - } - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - // Reset body shape. - body = null; - } - - @EditableProperty - @Override - public String getName() { - return name; - } - - @Override - public void setName(String name) { - this.name = name; - } - - @EditableProperty(name = "Type") - @Override - public ToggleSwitchType getValue() { - return switchType; - } - - @Override - public void setValue(ToggleSwitchType value) { - this.switchType = value; - updateControlPoints(); - // Reset body shape. - body = null; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - Shape body = getBody(); - // Draw body if available. - if (body != null) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - g2d.fill(body); - g2d.setComposite(oldComposite); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : BORDER_COLOR; - } - g2d.setColor(finalBorderColor); - g2d.draw(body); - } - // Do not track these changes because the whole switch has been tracked - // so far. - drawingObserver.stopTracking(); - // Draw lugs. - int circleDiameter = getClosestOdd((int) CIRCLE_SIZE.convertToPixels()); - int lugWidth = getClosestOdd((int) LUG_WIDTH.convertToPixels()); - int lugHeight = getClosestOdd((int) LUG_THICKNESS.convertToPixels()); - for (Point p : controlPoints) { - if (!outlineMode) { - g2d.setColor(CIRCLE_COLOR); - g2d.fillOval(p.x - circleDiameter / 2, p.y - circleDiameter / 2, circleDiameter, - circleDiameter); - } - g2d.setColor(METAL_COLOR); - g2d.fillRect(p.x - lugWidth / 2, p.y - lugHeight / 2, lugWidth, lugHeight); - } - } - - public RoundRectangle2D getBody() { - if (body == null) { - Point firstPoint = controlPoints[0]; - int margin = (int) MARGIN.convertToPixels(); - int spacing = (int) SPACING.convertToPixels(); - switch (switchType) { - case SPST: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, - 2 * margin, 2 * margin + spacing, margin, margin); - break; - case SPDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, - 2 * margin, 2 * margin + 2 * spacing, margin, margin); - break; - case DPDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, 2 - * margin + spacing, 2 * margin + 2 * spacing, margin, margin); - break; - case _3PDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, 2 - * margin + 2 * spacing, 2 * margin + 2 * spacing, margin, margin); - break; - case _4PDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, 2 - * margin + 3 * spacing, 2 * margin + 2 * spacing, margin, margin); - break; - case _5PDT: - body = new RoundRectangle2D.Double(firstPoint.x - margin, firstPoint.y - margin, 2 - * margin + 4 * spacing, 2 * margin + 2 * spacing, margin, margin); - break; - } - } - return body; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int circleSize = 5 * width / 32; - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect(width / 4, 1, width / 2, height - 2, circleSize, circleSize); - g2d.setColor(BORDER_COLOR); - g2d.drawRoundRect(width / 4, 1, width / 2, height - 2, circleSize, circleSize); - for (int i = 1; i <= 3; i++) { - g2d.setColor(CIRCLE_COLOR); - g2d.fillOval(width / 2 - circleSize / 2, i * height / 4 - 3, circleSize, circleSize); - g2d.setColor(METAL_COLOR); - g2d.drawLine(width / 2 - circleSize / 2 + 1, i * height / 4 - 1, width / 2 + circleSize - / 2 - 1, i * height / 4 - 1); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/PlasticDCJack.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/PlasticDCJack.java deleted file mode 100644 index 9cc1944c..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/PlasticDCJack.java +++ /dev/null @@ -1,247 +0,0 @@ -package org.diylc.components.electromechanical; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.HorizontalAlignment; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Plastic DC Jack", category = "Electromechanical", author = "Branislav Stojkovic", description = "Panel mount plastic DC jack", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "J") -public class PlasticDCJack extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Size LUG_WIDTH = new Size(0.08d, SizeUnit.in); - private static Size LUG_THICKNESS = new Size(0.02d, SizeUnit.in); - private static Size SPACING = new Size(0.1d, SizeUnit.in); - private static Size DIAMETER = new Size(0.5d, SizeUnit.in); - private static Color BODY_COLOR = Color.decode("#666666"); - private static Color PHENOLIC_COLOR = Color.decode("#CD8500"); - private static Color BORDER_COLOR = Color.black; - private static Color MARKING_COLOR = Color.lightGray; - - private Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - private String value = ""; - private DCPolarity polarity = DCPolarity.CENTER_NEGATIVE; - transient private Shape[] body; - - public PlasticDCJack() { - updateControlPoints(); - } - - private void updateControlPoints() { - // invalidate body shape - body = null; - - int x = controlPoints[0].x; - int y = controlPoints[0].y; - - int spacing = (int) SPACING.convertToPixels(); - controlPoints[1] = new Point(x + spacing, y + spacing); - controlPoints[2] = new Point(x - spacing, y + spacing * 2); - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[4]; - - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int spacing = (int) SPACING.convertToPixels(); - int diameter = getClosestOdd(DIAMETER.convertToPixels()); - body[0] = new Ellipse2D.Double(x - diameter / 2, y + spacing - diameter / 2, diameter, - diameter); - - int rectWidth = (int) (diameter / Math.sqrt(2)) - 2; - body[1] = new Rectangle(x - rectWidth / 2, y + spacing - rectWidth / 2, rectWidth, - rectWidth); - - int lugWidth = getClosestOdd(LUG_WIDTH.convertToPixels()); - int lugThickness = getClosestOdd(LUG_THICKNESS.convertToPixels()); - - Point groundPoint = controlPoints[controlPoints.length - 1]; - Area groundLug = new Area(new Ellipse2D.Double(groundPoint.x + spacing - lugWidth / 2, - groundPoint.y - lugWidth / 2, lugWidth, lugWidth)); - groundLug.add(new Area(new Rectangle(groundPoint.x, groundPoint.y - lugWidth / 2, - spacing, lugWidth))); - groundLug.subtract(new Area(new Ellipse2D.Double( - groundPoint.x + spacing - lugWidth / 6, groundPoint.y - lugWidth / 6, - lugWidth / 3, lugWidth / 3))); - body[2] = groundLug; - - Area lugArea = new Area(); - for (int i = 0; i < controlPoints.length; i++) { - Point point = controlPoints[i]; - if (i == getControlPointCount() - 1) { - lugArea.add(new Area(new Rectangle(point.x - lugThickness / 2, point.y - - lugWidth / 2, lugThickness, lugWidth))); - } else { - lugArea.add(new Area(new Rectangle(point.x - lugWidth / 2, point.y - - lugThickness / 2, lugWidth, lugThickness))); - } - } - body[3] = lugArea; - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape[] body = getBody(); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - g2d.fill(body[0]); - if (!outlineMode) { - g2d.setColor(PHENOLIC_COLOR); - g2d.fill(body[1]); - } - g2d.setComposite(oldComposite); - } - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR; - } - - g2d.setColor(finalBorderColor); - g2d.draw(body[0]); - if (!outlineMode) { - g2d.setColor(PHENOLIC_COLOR.darker()); - g2d.draw(body[1]); - - g2d.setColor(METAL_COLOR); - g2d.fill(body[2]); - g2d.setColor(METAL_COLOR.darker()); - g2d.draw(body[2]); - } - - g2d.setColor(METAL_COLOR); - g2d.fill(body[3]); - g2d.setColor(METAL_COLOR.darker()); - g2d.draw(body[3]); - - if (!outlineMode && getPolarity() != DCPolarity.NONE) { - int spacing = (int) SPACING.convertToPixels(); - g2d.setColor(MARKING_COLOR); - g2d.setFont(LABEL_FONT.deriveFont(12f)); - drawCenteredText(g2d, getPolarity() == DCPolarity.CENTER_NEGATIVE ? "+" : "-", - controlPoints[0].x, controlPoints[0].y - spacing * 7 / 16, - HorizontalAlignment.CENTER, VerticalAlignment.CENTER); - drawCenteredText(g2d, getPolarity() == DCPolarity.CENTER_NEGATIVE ? "_" : "+", - controlPoints[2].x, controlPoints[2].y - spacing * 3 / 4, - HorizontalAlignment.CENTER, VerticalAlignment.CENTER); - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 2 * 32 / width; - int diameter = getClosestOdd(width - margin); - g2d.setColor(BODY_COLOR); - g2d.fillOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); - g2d.setColor(BORDER_COLOR); - g2d.drawOval((width - diameter) / 2, (height - diameter) / 2, diameter, diameter); - int rectWidth = getClosestOdd(((width - 2 * margin) / Math.sqrt(2)) - margin / 2); - g2d.setColor(PHENOLIC_COLOR); - g2d.fillRect((width - rectWidth) / 2, (height - rectWidth) / 2, rectWidth, rectWidth); - g2d.setColor(PHENOLIC_COLOR.darker()); - g2d.drawRect((width - rectWidth) / 2, (height - rectWidth) / 2, rectWidth, rectWidth); - int lugWidth = 4 * 32 / width; - g2d.setColor(METAL_COLOR); - g2d.drawLine((width - lugWidth) / 2, height / 3, (width + lugWidth) / 2, height / 3); - g2d - .drawLine(width * 2 / 3, (height - lugWidth) / 2, width * 2 / 3, - (height + lugWidth) / 2); - g2d.fillOval((width - lugWidth) / 2, height * 2 / 3 - lugWidth / 2, lugWidth, lugWidth); - g2d.fillRect(width / 2 - lugWidth * 3 / 2, height * 2 / 3 - lugWidth / 2, lugWidth * 3 / 2, - lugWidth); - g2d.setColor(PHENOLIC_COLOR); - g2d.fillOval((width - margin) / 2, height * 2 / 3 - margin / 2, margin, margin); - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - this.body = null; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @EditableProperty - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public DCPolarity getPolarity() { - if (polarity == null) { - polarity = DCPolarity.CENTER_NEGATIVE; - } - return polarity; - } - - public void setPolarity(DCPolarity polarity) { - this.polarity = polarity; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/ToggleSwitchType.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/ToggleSwitchType.java deleted file mode 100644 index 6a9e0c2e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/ToggleSwitchType.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.components.electromechanical; - -public enum ToggleSwitchType { - - SPST, SPDT, DPDT, _3PDT, _4PDT, _5PDT; - - @Override - public String toString() { - return name().replace("_", ""); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java deleted file mode 100644 index 41c91200..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java +++ /dev/null @@ -1,268 +0,0 @@ -package org.diylc.components.guitar; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.HorizontalAlignment; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Humbucker Pickup", category = "Guitar", author = "Branislav Stojkovic", description = "PAF-style humbucker guitar pickup", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "PKP") -public class HumbuckerPickup extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Color BODY_COLOR = Color.lightGray; - private static Color POINT_COLOR = Color.darkGray; - private static Size WIDTH = new Size(36.5d, SizeUnit.mm); - private static Size LENGTH = new Size(68.58d, SizeUnit.mm); - private static Size LIP_WIDTH = new Size(12.7d, SizeUnit.mm); - private static Size LIP_LENGTH = new Size(7.9d, SizeUnit.mm); - private static Size EDGE_RADIUS = new Size(4d, SizeUnit.mm); - private static Size POINT_MARGIN = new Size(5d, SizeUnit.mm); - private static Size POINT_SIZE = new Size(3d, SizeUnit.mm); - private static Size LIP_HOLE_SIZE = new Size(1.5d, SizeUnit.mm); - private static Size POLE_SIZE = new Size(3d, SizeUnit.mm); - private static Size POLE_SPACING = new Size(10.1d, SizeUnit.mm); - private static Size COIL_SPACING = new Size(18d, SizeUnit.mm); - - private String value = ""; - private Point controlPoint = new Point(0, 0); - transient Shape[] body; - private Orientation orientation = Orientation.DEFAULT; - private Color color = BODY_COLOR; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape[] body = getBody(); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); - g2d.fill(body[0]); - g2d.fill(body[1]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); - g2d.fill(body[2]); - g2d.setComposite(oldComposite); - } - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker(); - } - - g2d.setColor(finalBorderColor); - g2d.draw(body[0]); - g2d.draw(body[1]); - if (!outlineMode) { - g2d.setColor(color.darker()); - g2d.draw(body[3]); - } - - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - g2d.setFont(LABEL_FONT); - Rectangle bounds = body[0].getBounds(); - drawCenteredText(g2d, value, bounds.x + bounds.width / 2, bounds.y + bounds.height / 2, - HorizontalAlignment.CENTER, VerticalAlignment.CENTER); - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[4]; - - int x = controlPoint.x; - int y = controlPoint.y; - int width = (int) WIDTH.convertToPixels(); - int length = (int) LENGTH.convertToPixels(); - int lipWidth = (int) LIP_WIDTH.convertToPixels(); - int lipLength = (int) LIP_LENGTH.convertToPixels(); - int edgeRadius = (int) EDGE_RADIUS.convertToPixels(); - int pointMargin = (int) POINT_MARGIN.convertToPixels(); - int pointSize = getClosestOdd(POINT_SIZE.convertToPixels()); - int lipHoleSize = getClosestOdd(LIP_HOLE_SIZE.convertToPixels()); - - body[0] = new Area(new RoundRectangle2D.Double(x + pointMargin - length, y - - pointMargin, length, width, edgeRadius, edgeRadius)); - body[1] = new Area(new RoundRectangle2D.Double(x + pointMargin - length - lipLength, y - - pointMargin + width / 2 - lipWidth / 2, length + 2 * lipLength, lipWidth, - edgeRadius / 2, edgeRadius / 2)); - Area lipArea = new Area(body[1]); - lipArea.subtract(new Area(body[0])); - lipArea.subtract(new Area(new Ellipse2D.Double( - x + pointMargin - length - lipLength / 2, y - pointMargin + width / 2 - - lipHoleSize / 2, lipHoleSize, lipHoleSize))); - lipArea.subtract(new Area(new Ellipse2D.Double(x + pointMargin + lipLength / 2, y - - pointMargin + width / 2 - lipHoleSize / 2, lipHoleSize, lipHoleSize))); - body[1] = lipArea; - body[2] = new Area(new Ellipse2D.Double(x - pointSize / 2, y - pointSize / 2, - pointSize, pointSize)); - - int poleSize = (int) POLE_SIZE.convertToPixels(); - int poleSpacing = (int) POLE_SPACING.convertToPixels(); - int coilSpacing = (int) COIL_SPACING.convertToPixels(); - int coilMargin = (width - coilSpacing) / 2; - int poleMargin = (length - poleSpacing * 5) / 2; - Area poleArea = new Area(); - for (int i = 0; i < 6; i++) { - Ellipse2D pole = new Ellipse2D.Double(x + pointMargin - length + poleMargin + i - * poleSpacing - poleSize / 2, y - pointMargin + coilMargin - poleSize / 2, - poleSize, poleSize); - poleArea.add(new Area(pole)); - pole = new Ellipse2D.Double(x + pointMargin - length + poleMargin + i * poleSpacing - - poleSize / 2, y - pointMargin + width - coilMargin - poleSize / 2, - poleSize, poleSize); - poleArea.add(new Area(pole)); - } - body[3] = poleArea; - - // Rotate if needed - if (orientation != Orientation.DEFAULT) { - double theta = 0; - switch (orientation) { - case _90: - theta = Math.PI / 2; - break; - case _180: - theta = Math.PI; - break; - case _270: - theta = Math.PI * 3 / 2; - break; - } - AffineTransform rotation = AffineTransform.getRotateInstance(theta, x, y); - for (Shape shape : body) { - Area area = (Area) shape; - area.transform(rotation); - } - } - } - return body; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int baseWidth = 16 * width / 32; - int baseLength = 27 * width / 32; - - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect((width - baseWidth / 4) / 2, 0, baseWidth / 4, height - 1, - 2 * width / 32, 2 * width / 32); - g2d.setColor(BODY_COLOR.darker()); - g2d.drawRoundRect((width - baseWidth / 4) / 2, 0, baseWidth / 4, height - 1, - 2 * width / 32, 2 * width / 32); - - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect((width - baseWidth) / 2, (height - baseLength) / 2, baseWidth, - baseLength, 4 * width / 32, 4 * width / 32); - g2d.setColor(BODY_COLOR.darker()); - g2d.drawRoundRect((width - baseWidth) / 2, (height - baseLength) / 2, baseWidth, - baseLength, 4 * width / 32, 4 * width / 32); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public Point getControlPoint(int index) { - return controlPoint; - } - - @Override - public void setControlPoint(Point point, int index) { - this.controlPoint.setLocation(point); - // Invalidate the body - body = null; - } - - @EditableProperty(name = "Model") - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - // Invalidate the body - body = null; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java deleted file mode 100644 index fe5e368e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java +++ /dev/null @@ -1,370 +0,0 @@ -package org.diylc.components.guitar; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Lever Switch", category = "Guitar", author = "Branislav Stojkovic", description = "Strat-style lever switch", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "SW") -public class LeverSwitch extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Color BASE_COLOR = Color.lightGray; - private static Color WAFER_COLOR = Color.decode("#CD8500"); - - private static Size BASE_WIDTH = new Size(10d, SizeUnit.mm); - private static Size BASE_LENGTH = new Size(47.5d, SizeUnit.mm); - private static Size WAFER_LENGTH = new Size(40d, SizeUnit.mm); - private static Size WAFER_SPACING = new Size(7.62d, SizeUnit.mm); - private static Size WAFER_THICKNESS = new Size(1.27d, SizeUnit.mm); - private static Size HOLE_SIZE = new Size(2d, SizeUnit.mm); - private static Size HOLE_SPACING = new Size(41.2d, SizeUnit.mm); - private static Size TERMINAL_WIDTH = new Size(2d, SizeUnit.mm); - private static Size TERMINAL_LENGTH = new Size(0.1d, SizeUnit.in); - private static Size TERMINAL_SPACING = new Size(0.1d, SizeUnit.in); - - private String value = ""; - private Point[] controlPoints = new Point[] { new Point(0, 0) }; - transient Shape[] body; - private Orientation orientation = Orientation.DEFAULT; - private LeverSwitchType type = LeverSwitchType.DP3T; - - public LeverSwitch() { - super(); - updateControlPoints(); - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape[] body = getBody(); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BASE_COLOR); - g2d.fill(body[0]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : WAFER_COLOR); - g2d.fill(body[1]); - g2d.setComposite(oldComposite); - } - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BASE_COLOR - .darker(); - } - - g2d.setColor(finalBorderColor); - g2d.draw(body[0]); - - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : WAFER_COLOR - .darker(); - } - - g2d.draw(body[1]); - - g2d.setColor(METAL_COLOR); - g2d.fill(body[2]); - g2d.setColor(METAL_COLOR.darker()); - g2d.draw(body[2]); - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[3]; - - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int baseWidth = (int) BASE_WIDTH.convertToPixels(); - int baseLength = (int) BASE_LENGTH.convertToPixels(); - int holeSize = getClosestOdd(HOLE_SIZE.convertToPixels()); - int holeSpacing = (int) HOLE_SPACING.convertToPixels(); - int waferLength = (int) WAFER_LENGTH.convertToPixels(); - int waferSpacing = (int) WAFER_SPACING.convertToPixels(); - int waferThickness = (int) WAFER_THICKNESS.convertToPixels(); - int terminalSpacing = (int) TERMINAL_SPACING.convertToPixels(); - int terminalLength = getClosestOdd(TERMINAL_LENGTH.convertToPixels()); - int terminalWidth = getClosestOdd(TERMINAL_WIDTH.convertToPixels()); - - int baseX = x - terminalLength / 2 - waferSpacing; - int baseY = y - - (baseLength - terminalSpacing * (type == LeverSwitchType.DP3T ? 7 : 12)) / 2; - Area baseArea = new Area(new Rectangle2D.Double(baseX, baseY, baseWidth, baseLength)); - baseArea.subtract(new Area(new Ellipse2D.Double(baseX + baseWidth / 2 - holeSize / 2, - baseY + (baseLength - holeSpacing) / 2 - holeSize / 2, holeSize, holeSize))); - baseArea.subtract(new Area(new Ellipse2D.Double(baseX + baseWidth / 2 - holeSize / 2, - baseY + (baseLength - holeSpacing) / 2 - holeSize / 2 + holeSpacing, holeSize, - holeSize))); - body[0] = baseArea; - - Area waferArea = new Area(new Rectangle2D.Double(x - terminalLength / 2 - - waferThickness / 2, - y - (waferLength - terminalSpacing * (type == LeverSwitchType.DP3T ? 7 : 12)) - / 2, waferThickness, waferLength)); - - if (type == LeverSwitchType._4P5T) { - waferArea.add(new Area(new Rectangle2D.Double(x - terminalLength / 2 - - waferThickness / 2 + waferSpacing, y - - (waferLength - terminalSpacing * (type == LeverSwitchType.DP3T ? 7 : 12)) - / 2, waferThickness, waferLength))); - } - body[1] = waferArea; - - double theta = 0; - // Rotate if needed - if (orientation != Orientation.DEFAULT) { - switch (orientation) { - case _90: - theta = Math.PI / 2; - break; - case _180: - theta = Math.PI; - break; - case _270: - theta = Math.PI * 3 / 2; - break; - } - } - - Area terminalArea = new Area(); - for (Point point : controlPoints) { - Area terminal = new Area(new RoundRectangle2D.Double(point.x - terminalLength / 2, - point.y - terminalWidth / 2, terminalLength, terminalWidth, - terminalWidth / 2, terminalWidth / 2)); - terminal.subtract(new Area( - new RoundRectangle2D.Double(point.x - terminalLength / 4, point.y - - terminalWidth / 4, terminalLength / 2, terminalWidth / 2, - terminalWidth / 2, terminalWidth / 2))); - // Rotate the terminal if needed - if (theta != 0) { - AffineTransform rotation = AffineTransform.getRotateInstance(theta, point.x, - point.y); - terminal.transform(rotation); - } - terminalArea.add(terminal); - } - body[2] = terminalArea; - - // Rotate if needed - if (theta != 0) { - AffineTransform rotation = AffineTransform.getRotateInstance(theta, x, y); - // Skip the last one because it's already rotated - for (int i = 0; i < body.length - 1; i++) { - Shape shape = body[i]; - Area area = (Area) shape; - area.transform(rotation); - } - } - } - return body; - } - - private void updateControlPoints() { - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int waferSpacing = (int) WAFER_SPACING.convertToPixels(); - int terminalSpacing = (int) TERMINAL_SPACING.convertToPixels(); - int terminalLength = (int) TERMINAL_LENGTH.convertToPixels(); - - switch (type) { - case DP3T: - controlPoints = new Point[8]; - for (int i = 0; i < 8; i++) { - controlPoints[i] = new Point(x - (i % 2 == 1 ? terminalLength : 0), y + i - * terminalSpacing); - } - break; - case DP5T: - controlPoints = new Point[12]; - for (int i = 0; i < 12; i++) { - controlPoints[i] = new Point(x, y + i * terminalSpacing - + (i >= 6 ? terminalSpacing : 0)); - } - break; - case _4P5T: - controlPoints = new Point[24]; - for (int i = 0; i < 12; i++) { - controlPoints[i] = new Point(x, y + i * terminalSpacing - + (i >= 6 ? terminalSpacing : 0)); - controlPoints[i + 12] = new Point(x + waferSpacing, y + i * terminalSpacing - + (i >= 6 ? terminalSpacing : 0)); - } - break; - } - - // Rotate if needed - if (orientation != Orientation.DEFAULT) { - double theta = 0; - switch (orientation) { - case _90: - theta = Math.PI / 2; - break; - case _180: - theta = Math.PI; - break; - case _270: - theta = Math.PI * 3 / 2; - break; - } - AffineTransform rotation = AffineTransform.getRotateInstance(theta, x, y); - for (Point point : controlPoints) { - rotation.transform(point, point); - } - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setClip(width / 32, width / 32, width, height); - g2d.setColor(BASE_COLOR); - g2d.fillRect(0, 0, width * 2 / 3, height); - g2d.setColor(BASE_COLOR.darker()); - g2d.drawRect(0, 0, width * 2 / 3, height); - g2d.setColor(WAFER_COLOR); - g2d.fillRect(width / 8 * 3, 0, width / 8, height); - g2d.setColor(WAFER_COLOR.darker()); - g2d.drawRect(width / 8 * 3, 0, width / 8, height); - Area terminals = new Area(); - int terminalLength = getClosestOdd(11 * width / 32); - int terminalWidth = getClosestOdd(7 * width / 32); - Area terminal = new Area(new RoundRectangle2D.Double(width / 16 * 7, 4 * width / 32, - terminalLength, terminalWidth, terminalWidth / 2, terminalWidth / 2)); - terminal.subtract(new Area(new RoundRectangle2D.Double(width / 16 * 7 + terminalLength / 4 - + 1, 4 * width / 32 + terminalWidth / 4 + 1, terminalLength / 2, terminalWidth / 2, - terminalWidth / 4, terminalWidth / 4))); - terminals.add(terminal); - terminal = new Area(terminal); - terminal.transform(AffineTransform.getTranslateInstance(-terminalLength, terminalWidth + 2 - * width / 32)); - terminals.add(terminal); - terminal = new Area(terminal); - terminal.transform(AffineTransform.getTranslateInstance(terminalLength, terminalWidth + 2 - * width / 32)); - terminals.add(terminal); - g2d.setColor(METAL_COLOR); - g2d.fill(terminals); - g2d.setColor(METAL_COLOR.darker()); - g2d.draw(terminals); - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public void setControlPoint(Point point, int index) { - this.controlPoints[index].setLocation(point); - // Invalidate the body - body = null; - } - - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - @EditableProperty - public LeverSwitchType getType() { - return type; - } - - public void setType(LeverSwitchType type) { - this.type = type; - updateControlPoints(); - // Invalidate body - this.body = null; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Invalidate the body - body = null; - } - - public enum LeverSwitchType { - DP3T("DP3T (Standard Strat)"), _4P5T("4P5T (Super/Mega)"), DP5T("DP5T"); - - private String title; - - private LeverSwitchType(String title) { - this.title = title; - } - - @Override - public String toString() { - return title; - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java deleted file mode 100644 index b428a50f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java +++ /dev/null @@ -1,254 +0,0 @@ -package org.diylc.components.guitar; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Polygon; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.HorizontalAlignment; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Strat Single Coil Pickup", category = "Guitar", author = "Branislav Stojkovic", description = "Strat-style single coil guitar pickup", stretchable = false, zOrder = IDIYComponent.COMPONENT, instanceNamePrefix = "PKP") -public class SingleCoilPickup extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Color BODY_COLOR = Color.darkGray; - private static Color POINT_COLOR = Color.lightGray; - private static Size WIDTH = new Size(15.5d, SizeUnit.mm); - private static Size LENGTH = new Size(83.82d, SizeUnit.mm); - private static Size LIP_WIDTH = new Size(5d, SizeUnit.mm); - private static Size LIP_LENGTH = new Size(20d, SizeUnit.mm); - private static Size POINT_SIZE = new Size(3d, SizeUnit.mm); - private static Size HOLE_SIZE = new Size(2d, SizeUnit.mm); - private static Size HOLE_MARGIN = new Size(4d, SizeUnit.mm); - private static Size POLE_SIZE = new Size(3d, SizeUnit.mm); - private static Size POLE_SPACING = new Size(11.68d, SizeUnit.mm); - - private String value = ""; - private Point controlPoint = new Point(0, 0); - transient Shape[] body; - private Orientation orientation = Orientation.DEFAULT; - private Color color = BODY_COLOR; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - Shape[] body = getBody(); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); - g2d.fill(body[0]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); - g2d.fill(body[1]); - g2d.setComposite(oldComposite); - } - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color - .brighter(); - } - - g2d.setColor(finalBorderColor); - g2d.draw(body[0]); - if (!outlineMode) { - g2d.draw(body[2]); - } - - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - g2d.setFont(LABEL_FONT); - Rectangle bounds = body[0].getBounds(); - drawCenteredText(g2d, value, bounds.x + bounds.width / 2, bounds.y + bounds.height / 2, - HorizontalAlignment.CENTER, VerticalAlignment.CENTER); - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[3]; - - int x = controlPoint.x; - int y = controlPoint.y; - int width = (int) WIDTH.convertToPixels(); - int length = (int) LENGTH.convertToPixels(); - int lipWidth = (int) LIP_WIDTH.convertToPixels(); - int lipLength = (int) LIP_LENGTH.convertToPixels(); - int pointSize = getClosestOdd(POINT_SIZE.convertToPixels()); - int holeSize = getClosestOdd(HOLE_SIZE.convertToPixels()); - int holeMargin = getClosestOdd(HOLE_MARGIN.convertToPixels()); - - Area mainArea = new Area(new RoundRectangle2D.Double(x - length / 2, y - lipWidth / 2 - - width, length, width, width, width)); - mainArea.add(new Area(new Polygon(new int[] { x - length / 2 + width / 2, - x + length / 2 - width / 2, x + lipLength / 2, x - lipLength / 2 }, new int[] { - y - lipWidth / 2, y - lipWidth / 2, y + lipWidth / 2, y + lipWidth / 2 }, 4))); - // Cutout holes - mainArea.subtract(new Area(new Ellipse2D.Double(x - length / 2 + holeMargin - holeSize - / 2, y - lipWidth / 2 - width / 2 - holeSize / 2, holeSize, holeSize))); - mainArea.subtract(new Area(new Ellipse2D.Double(x + length / 2 - holeMargin - holeSize - / 2, y - lipWidth / 2 - width / 2 - holeSize / 2, holeSize, holeSize))); - - body[0] = mainArea; - - body[1] = new Area(new Ellipse2D.Double(x - pointSize / 2, y - pointSize / 2, - pointSize, pointSize)); - - int poleSize = (int) POLE_SIZE.convertToPixels(); - int poleSpacing = (int) POLE_SPACING.convertToPixels(); - int poleMargin = (length - poleSpacing * 5) / 2; - Area poleArea = new Area(); - for (int i = 0; i < 6; i++) { - Ellipse2D pole = new Ellipse2D.Double( - x - length / 2 + poleMargin + i * poleSpacing, y - lipWidth / 2 - width / 2 - - poleSize / 2, poleSize, poleSize); - poleArea.add(new Area(pole)); - } - body[2] = poleArea; - - // Rotate if needed - if (orientation != Orientation.DEFAULT) { - double theta = 0; - switch (orientation) { - case _90: - theta = Math.PI / 2; - break; - case _180: - theta = Math.PI; - break; - case _270: - theta = Math.PI * 3 / 2; - break; - } - AffineTransform rotation = AffineTransform.getRotateInstance(theta, x, y); - for (Shape shape : body) { - Area area = (Area) shape; - area.transform(rotation); - } - } - } - return body; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int bodyWidth = 8 * width / 32; - int bodyLength = 30 * width / 32; - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect((width - bodyWidth) / 2, (height - bodyLength) / 2, bodyWidth, - bodyLength, bodyWidth, bodyWidth); - g2d.fillPolygon(new int[] { width * 9 / 16, width * 9 / 16, width * 11 / 16, width * 11 / 16 }, - new int[] { (height - bodyLength) / 2, (height + bodyLength) / 2, height * 5 / 8, - height * 3 / 8 }, 4); - - g2d.setColor(Color.lightGray); - g2d.drawLine(width / 2, 4 * width / 32, width / 2, 4 * width / 32); - g2d.drawLine(width / 2, height - 4 * width / 32, width / 2, height - 4 * width / 32); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public Point getControlPoint(int index) { - return controlPoint; - } - - @Override - public void setControlPoint(Point point, int index) { - this.controlPoint.setLocation(point); - // Invalidate the body - body = null; - } - - @EditableProperty(name = "Model") - @Override - public String getValue() { - return value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - // Invalidate the body - body = null; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/BOM.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/BOM.java deleted file mode 100644 index d84f0153..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/BOM.java +++ /dev/null @@ -1,186 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.Color; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.geom.Rectangle2D; -import java.util.Iterator; -import java.util.List; - -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.BomEntry; -import org.diylc.utils.BomMaker; - -@ComponentDescriptor(name = "Bill of Materials", author = "Branislav Stojkovic", category = "Misc", description = "", instanceNamePrefix = "BOM", zOrder = IDIYComponent.TEXT, stretchable = false, bomPolicy = BomPolicy.NEVER_SHOW) -public class BOM extends AbstractComponent { - - public static Size DEFAULT_SIZE = new Size(10d, SizeUnit.cm); - public static Size SPACING = new Size(0.1d, SizeUnit.in); - public static Color COLOR = Color.black; - public static String DEFAULT_TEXT = "No components to show in the Bill of Materials"; - - private static final long serialVersionUID = 1L; - private Size size = DEFAULT_SIZE; - - private Point point = new Point(0, 0); - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - List bom = BomMaker.getInstance().createBom(project.getComponents()); - // Cleanup entries that do not have a value set. - Iterator iterator = bom.iterator(); - while (iterator.hasNext()) { - BomEntry entry = iterator.next(); - if (entry.getValue() == null || entry.getName().toLowerCase().contains("bom")) { - iterator.remove(); - } - } - g2d.setFont(LABEL_FONT); - g2d.setColor(componentState == ComponentState.DRAGGING - || componentState == ComponentState.SELECTED ? SELECTION_COLOR : COLOR); - // Determine maximum name length and maximum value length to calculate - // number of columns. - FontMetrics fontMetrics = g2d.getFontMetrics(); - int maxNameWidth = 0; - int maxValueWidth = 0; - int maxHeight = 0; - for (BomEntry entry : bom) { - String valueStr; - if (entry.getValue() == null || entry.getValue().trim().isEmpty()) { - valueStr = "qty " + entry.getQuantity().toString(); - } else { - valueStr = entry.getValue().toString(); - } - Rectangle2D stringBounds = fontMetrics.getStringBounds(entry.getName(), g2d); - if (stringBounds.getWidth() > maxNameWidth) { - maxNameWidth = (int) stringBounds.getWidth(); - } - if (stringBounds.getHeight() > maxHeight) { - maxHeight = (int) stringBounds.getHeight(); - } - stringBounds = fontMetrics.getStringBounds(valueStr, g2d); - if (stringBounds.getWidth() > maxValueWidth) { - maxValueWidth = (int) stringBounds.getWidth(); - } - if (stringBounds.getHeight() > maxHeight) { - maxHeight = (int) stringBounds.getHeight(); - } - } - // Calculate maximum entry size. - int maxEntrySize = maxNameWidth + maxValueWidth + 2 * (int) SPACING.convertToPixels(); - int columnCount = (int) size.convertToPixels() / maxEntrySize; - if (columnCount == 0) - columnCount = 1; - int columnWidth = (int) size.convertToPixels() / columnCount; - int entriesPerColumn = (int) Math.ceil(1.d * bom.size() / columnCount); - if (entriesPerColumn == 0) { - g2d.drawString(DEFAULT_TEXT, point.x, point.y); - return; - } - for (int i = 0; i < bom.size(); i++) { - String valueStr; - BomEntry entry = bom.get(i); - if (entry.getValue() == null || entry.getValue().trim().isEmpty()) { - valueStr = "qty " + entry.getQuantity().toString(); - } else { - valueStr = entry.getValue().toString(); - } - int columnIndex = i / entriesPerColumn; - int rowIndex = i % entriesPerColumn; - int x = point.x + columnIndex * columnWidth; - int y = point.y + rowIndex * maxHeight; - g2d.drawString(entry.getName(), x, y); - x += maxNameWidth + SPACING.convertToPixels(); - g2d.drawString(valueStr, x, y); - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(Color.white); - g2d.fillRect(width / 8, 0, 6 * width / 8, height - 1); - g2d.setColor(Color.black); - g2d.drawRect(width / 8, 0, 6 * width / 8, height - 1); - g2d.setFont(LABEL_FONT.deriveFont(1f * 9 * width / 32).deriveFont(Font.PLAIN)); - - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds("BOM", g2d); - - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - - // Center text horizontally and vertically. - int x = (width - textWidth) / 2 + 1; - int y = textHeight + 2; - - g2d.drawString("BOM", x, y); - - g2d.setFont(g2d.getFont().deriveFont(1f * 5 * width / 32)); - - fontMetrics = g2d.getFontMetrics(); - rect = fontMetrics.getStringBounds("resistors", g2d); - x = (width - textWidth) / 2 + 1; - y = height / 2 + 2; - g2d.drawString("resistors", x, y); - y += rect.getHeight() - 1; - g2d.drawString("tubes", x, y); - y += rect.getHeight() - 1; - g2d.drawString("diodes", x, y); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(name = "Width") - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/GroundSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/GroundSymbol.java deleted file mode 100644 index b889d7f3..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/GroundSymbol.java +++ /dev/null @@ -1,149 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Polygon; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Ground Symbol", author = "Branislav Stojkovic", category = "Misc", instanceNamePrefix = "GND", description = "Ground schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW) -public class GroundSymbol extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static Color COLOR = Color.black; - public static Size SIZE = new Size(0.15d, SizeUnit.in); - - private Point point = new Point(0, 0); - private Color color = COLOR; - private Size size = SIZE; - private GroundSymbolType type = GroundSymbolType.DEFAULT; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - int sizePx = (int) size.convertToPixels(); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(color); - int x = point.x; - int y = point.y; - g2d.drawLine(x, y, x, y + sizePx / 6); - if (type == GroundSymbolType.DEFAULT) { - int delta = sizePx / 7; - for (int i = 0; i < 5; i++) { - g2d.drawLine(x - sizePx / 2 + delta * i, y + sizePx / 6 * (i + 1), x + sizePx / 2 - - delta * i, y + sizePx / 6 * (i + 1)); - } - } else { - Polygon poly = new Polygon(new int[] { x - sizePx / 2, x + sizePx / 2, x }, new int[] { - y + sizePx / 6, y + sizePx / 6, y + sizePx }, 3); - g2d.draw(poly); - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 3 * width / 32; - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(COLOR); - g2d.drawLine(width / 2, margin * 2, width / 2, margin * 3 + height / 5); - for (int i = 0; i < 5; i++) { - g2d.drawLine(margin * (i + 1), margin * (3 + i) + height / 5, width - margin * (i + 1), - margin * (3 + i) + height / 5); - } - } - - @EditableProperty(name = "Style") - public GroundSymbolType getType() { - return type; - } - - public void setType(GroundSymbolType type) { - this.type = type; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - @EditableProperty - public Size getSize() { - return size; - } - - public void setSize(Size size) { - this.size = size; - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point = point; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @Deprecated - @Override - public Void getValue() { - return null; - } - - @Deprecated - @Override - public void setValue(Void value) { - } - - public static enum GroundSymbolType { - DEFAULT("Default"), TRIANGLE("Triangle"); - - private String title; - - private GroundSymbolType(String title) { - this.title = title; - } - - public String getTitle() { - return title; - } - - @Override - public String toString() { - return title; - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/IconImageConverter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/IconImageConverter.java deleted file mode 100644 index 6df78527..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/IconImageConverter.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.Image; -import java.awt.Toolkit; -import java.awt.image.BufferedImage; -import java.awt.image.ColorModel; -import java.awt.image.ImageObserver; -import java.awt.image.MemoryImageSource; -import java.awt.image.PixelGrabber; -import java.io.File; -import java.io.IOException; - -import javax.imageio.ImageIO; -import javax.swing.ImageIcon; - -import org.apache.log4j.Logger; - -import com.thoughtworks.xstream.converters.Converter; -import com.thoughtworks.xstream.converters.MarshallingContext; -import com.thoughtworks.xstream.converters.UnmarshallingContext; -import com.thoughtworks.xstream.io.HierarchicalStreamReader; -import com.thoughtworks.xstream.io.HierarchicalStreamWriter; - -public class IconImageConverter implements Converter { - - private static final Logger LOG = Logger.getLogger(IconImageConverter.class); - - @Override - public void marshal(Object object, HierarchicalStreamWriter writer, MarshallingContext context) { - ImageIcon image = (ImageIcon) object; - int width = image.getIconWidth(); - int height = image.getIconHeight(); - int[] pixels = new int[width * height]; - - if (image != null) { - try { - PixelGrabber pg = new PixelGrabber(image.getImage(), 0, 0, width, height, pixels, - 0, width); - pg.grabPixels(); - if ((pg.getStatus() & ImageObserver.ABORT) != 0) { - LOG.error("Failed to load image contents"); - } - } catch (InterruptedException e) { - LOG.error("Image load interrupted"); - } - } - LOG.debug("Writing image to file: " + width + "x" + height); - writer.addAttribute("width", Integer.toString(width)); - writer.addAttribute("height", Integer.toString(height)); - StringBuilder dataBuilder = new StringBuilder(); - int n = 0; - for (int pixel : pixels) { - dataBuilder.append(Integer.toString(pixel, 16)); - dataBuilder.append(","); - n++; - if (n % 16 == 0) { - dataBuilder.append("\n"); - } - } - writer.addAttribute("data", dataBuilder.toString()); - } - - @Override - public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { - int width = Integer.parseInt(reader.getAttribute("width")); - int height = Integer.parseInt(reader.getAttribute("height")); - LOG.debug("Reading image from file: " + width + "x" + height); - int[] pixels = new int[width * height]; - String data = reader.getAttribute("data").replace("\n", ""); - String[] splitData = data.split(","); - for (int i = 0; i < Math.min(splitData.length, pixels.length); i++) { - if (!splitData[i].trim().isEmpty()) { - try { - pixels[i] = Integer.parseInt(splitData[i].trim(), 16); - } catch (Exception e) { - pixels[i] = 0; - } - } - } - - Toolkit toolkit = Toolkit.getDefaultToolkit(); - ColorModel colorModel = ColorModel.getRGBdefault(); - Image image = toolkit.createImage(new MemoryImageSource(width, height, colorModel, pixels, - 0, width)); - - BufferedImage bimg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - bimg.setRGB(0, 0, width, height, pixels, 0, width); - File outputfile = new File("c:\\saved.png"); - try { - ImageIO.write(bimg, "png", outputfile); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return new ImageIcon(image); - } - - @Override - public boolean canConvert(Class clazz) { - return ImageIcon.class.isAssignableFrom(clazz); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java deleted file mode 100644 index 297d76f5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.AlphaComposite; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import javax.swing.ImageIcon; - -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -import com.thoughtworks.xstream.annotations.XStreamConverter; - -@ComponentDescriptor(name = "Image", author = "Branislav Stojkovic", category = "Misc", description = "User defined image", instanceNamePrefix = "Img", zOrder = IDIYComponent.COMPONENT, flexibleZOrder = true, stretchable = false, bomPolicy = BomPolicy.NEVER_SHOW) -public class Image extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - public static String DEFAULT_TEXT = "Double click to edit text"; - private static ImageIcon ICON; - private static byte DEFAULT_SCALE = 50; - - static { - String name = "image.png"; - java.net.URL imgURL = Image.class.getResource(name); - if (imgURL != null) { - ICON = new ImageIcon(imgURL, name); - } - } - - private Point point = new Point(0, 0); - @XStreamConverter(IconImageConverter.class) - private ImageIcon image = ICON; - private byte scale = 50; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - double s = 1d * scale / DEFAULT_SCALE; - Point endPoint = new Point((int) (image.getIconWidth() * s), - (int) (image.getIconHeight() * s)); - Shape clip = g2d.getClip(); - if (!clip.contains(point) && !clip.contains(endPoint) - && !clip.contains(point.x, endPoint.y) && !clip.contains(endPoint.x, point.y)) { - return; - } - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - - g2d.scale(s, s); - g2d.drawImage(image.getImage(), (int) (point.x / s), (int) (point.y / s), null); - if (componentState == ComponentState.SELECTED) { - g2d.setComposite(oldComposite); - g2d.scale(1 / s, 1 / s); - g2d.setColor(SELECTION_COLOR); - g2d.drawRect(point.x, point.y, endPoint.x, endPoint.y); - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.drawImage(ICON.getImage(), point.x, point.y, null); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(defaultable = false) - public ImageIcon getImage() { - return image; - } - - public void setImage(ImageIcon image) { - this.image = image; - } - - @EditableProperty(defaultable = false) - public byte getScale() { - return scale; - } - - public void setScale(byte scale) { - this.scale = scale; - } - - @Override - public String getName() { - return super.getName(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Label.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Label.java deleted file mode 100644 index 509c02f2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Label.java +++ /dev/null @@ -1,203 +0,0 @@ -package org.diylc.components.misc; - -import java.awt.Color; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.geom.Rectangle2D; - -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.BomPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -@ComponentDescriptor(name = "Label", author = "Branislav Stojkovic", category = "Misc", description = "User defined label", instanceNamePrefix = "L", zOrder = IDIYComponent.TEXT, flexibleZOrder = true, stretchable = false, bomPolicy = BomPolicy.NEVER_SHOW) -public class Label extends AbstractComponent { - - public static String DEFAULT_TEXT = "Double click to edit text"; - - private static final long serialVersionUID = 1L; - - private Point point = new Point(0, 0); - private String text = DEFAULT_TEXT; - private Font font = LABEL_FONT; - private Color color = LABEL_COLOR; - private boolean center = true; - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - g2d.setColor(componentState == ComponentState.SELECTED ? LABEL_COLOR_SELECTED : color); - g2d.setFont(font); - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds(text, g2d); - - int textHeight = (int) rect.getHeight(); - int textWidth = (int) rect.getWidth(); - - int x; - int y; - if (center) { - // Center text horizontally and vertically - x = point.x - textWidth / 2; - y = point.y - textHeight / 2 + fontMetrics.getAscent(); - } else { - x = point.x; - y = point.y - textHeight; - } - - g2d.drawString(text, x, y); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(LABEL_COLOR); - g2d.setFont(LABEL_FONT.deriveFont(13f * width / 32).deriveFont(Font.PLAIN)); - - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D rect = fontMetrics.getStringBounds("Abc", g2d); - - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - - // Center text horizontally and vertically. - int x = (width - textWidth) / 2 + 1; - int y = (height - textHeight) / 2 + fontMetrics.getAscent(); - - g2d.drawString("Abc", x, y); - } - - @EditableProperty - public Font getFont() { - return font; - } - - public void setFont(Font font) { - this.font = font; - } - - // Bold and italic fields are named to be alphabetically after Font. This is - // important! - - @EditableProperty(name = "Font Bold") - public boolean getBold() { - return font.isBold(); - } - - public void setBold(boolean bold) { - if (bold) { - if (font.isItalic()) { - font = font.deriveFont(Font.BOLD + Font.ITALIC); - } else { - font = font.deriveFont(Font.BOLD); - } - } else { - if (font.isItalic()) { - font = font.deriveFont(Font.ITALIC); - } else { - font = font.deriveFont(Font.PLAIN); - } - } - } - - @EditableProperty(name = "Font Italic") - public boolean getItalic() { - return font.isItalic(); - } - - public void setItalic(boolean italic) { - if (italic) { - if (font.isBold()) { - font = font.deriveFont(Font.BOLD + Font.ITALIC); - } else { - font = font.deriveFont(Font.ITALIC); - } - } else { - if (font.isBold()) { - font = font.deriveFont(Font.BOLD); - } else { - font = font.deriveFont(Font.PLAIN); - } - } - } - - @EditableProperty(name = "Font Size") - public int getFontSize() { - return font.getSize(); - } - - public void setFontSize(int size) { - font = font.deriveFont((float) size); - } - - @Override - public int getControlPointCount() { - return 1; - } - - @Override - public Point getControlPoint(int index) { - return point; - } - - @Override - public boolean isControlPointSticky(int index) { - return false; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - this.point.setLocation(point); - } - - @EditableProperty(defaultable = false) - public String getText() { - return text; - } - - public void setText(String text) { - this.text = text; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - public boolean getCenter() { - return center; - } - - public void setCenter(boolean center) { - this.center = center; - } - - @Override - public String getName() { - return super.getName(); - } - - @Override - public Void getValue() { - return null; - } - - @Override - public void setValue(Void value) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/image.png b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/image.png deleted file mode 100644 index b663869f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/image.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AbstractPotentiometer.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AbstractPotentiometer.java deleted file mode 100644 index b6151fbb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AbstractPotentiometer.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Point; - -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; - -public abstract class AbstractPotentiometer extends - AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - protected Point[] controlPoints; - - protected Resistance resistance = new Resistance(100d, ResistanceUnit.K); - protected Orientation orientation = Orientation.DEFAULT; - protected Taper taper = Taper.LIN; - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @EditableProperty - public Resistance getResistance() { - return resistance; - } - - public void setResistance(Resistance resistance) { - this.resistance = resistance; - } - - @Override - public PotentiometerValue getValue() { - return new PotentiometerValue(resistance, taper); - } - - @Override - public void setValue(PotentiometerValue value) { - this.resistance = value.getResistance(); - this.taper = value.getTaper(); - } - - @EditableProperty - public Taper getTaper() { - return taper; - } - - public void setTaper(Taper taper) { - this.taper = taper; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java deleted file mode 100644 index 327113c6..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java +++ /dev/null @@ -1,168 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Electrolytic Capacitor (axial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Axial electrolytic capacitor, similar to Sprague Atom, F&T, etc", zOrder = IDIYComponent.COMPONENT) -public class AxialElectrolyticCapacitor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#EAADEA"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - public static Color MARKER_COLOR = Color.gray; - public static Color TICK_COLOR = Color.white; - - private Capacitance value = new Capacitance(1d, CapacitanceUnit.uF); - @Deprecated - private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage(63d, - VoltageUnit.V); - - private Color markerColor = MARKER_COLOR; - private Color tickColor = TICK_COLOR; - private boolean polarized = true; - - public AxialElectrolyticCapacitor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @Deprecated - public Voltage getVoltage() { - return voltage; - } - - @Deprecated - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - @EditableProperty(name = "Voltage") - public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward comptibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } - return voltageNew; - } - - public void setVoltageNew(org.diylc.core.measures.Voltage voltageNew) { - this.voltageNew = voltageNew; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(4, height / 2 - 3, width - 8, 6); - g2d.setColor(MARKER_COLOR); - g2d.fillRect(width - 9, height / 2 - 3, 5, 6); - g2d.setColor(TICK_COLOR); - g2d.drawLine(width - 6, height / 2 - 1, width - 6, height / 2 + 1); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(4, height / 2 - 3, width - 8, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @EditableProperty(name = "Marker") - public Color getMarkerColor() { - return markerColor; - } - - public void setMarkerColor(Color coverColor) { - this.markerColor = coverColor; - } - - @EditableProperty(name = "Tick") - public Color getTickColor() { - return tickColor; - } - - public void setTickColor(Color tickColor) { - this.tickColor = tickColor; - } - - @EditableProperty(name = "Polarized") - public boolean getPolarized() { - return polarized; - } - - public void setPolarized(boolean polarized) { - this.polarized = polarized; - } - - @Override - protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels())); - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - if (polarized) { - int width = getClosestOdd(getWidth().convertToPixels()); - int markerLength = (int) (getLength().convertToPixels() * 0.2); - if (!outlineMode) { - g2d.setColor(markerColor); - g2d.fillRect((int) getLength().convertToPixels() - markerLength, 0, markerLength, - width); - } - Color finalTickColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalTickColor = theme.getOutlineColor(); - } else { - finalTickColor = tickColor; - } - g2d.setColor(finalTickColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.drawLine((int) getLength().convertToPixels() - markerLength / 2, - (int) (width / 2 - width * 0.15), (int) getLength().convertToPixels() - - markerLength / 2, (int) (width / 2 + width * 0.15)); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialFilmCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialFilmCapacitor.java deleted file mode 100644 index b8e8ed9f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AxialFilmCapacitor.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; - -@ComponentDescriptor(name = "Film Capacitor (axial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Axial film capacitor, similar to Mallory 150s", zOrder = IDIYComponent.COMPONENT) -public class AxialFilmCapacitor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#FFE303"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private Capacitance value = new Capacitance(22d, CapacitanceUnit.nF); - @Deprecated - private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage(63d, - VoltageUnit.V); - - public AxialFilmCapacitor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - protected boolean supportsStandingMode() { - return true; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @Deprecated - public Voltage getVoltage() { - return voltage; - } - - @Deprecated - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - @EditableProperty(name = "Voltage") - public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward comptibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } - return voltageNew; - } - - public void setVoltageNew(org.diylc.core.measures.Voltage voltageNew) { - this.voltageNew = voltageNew; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(4, height / 2 - 3, width - 8, 6); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(4, height / 2 - 3, width - 8, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @Override - protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java deleted file mode 100644 index 8f9c3689..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.GeneralPath; - -import org.diylc.components.AbstractSchematicLeadedSymbol; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; - -@ComponentDescriptor(name = "Capacitor (schematic symbol)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Capacitor schematic symbol with an optional polarity sign", zOrder = IDIYComponent.COMPONENT) -public class CapacitorSymbol extends AbstractSchematicLeadedSymbol { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_LENGTH = new Size(0.05, SizeUnit.in); - public static Size DEFAULT_WIDTH = new Size(0.15, SizeUnit.in); - - private Capacitance value = new Capacitance(22d, CapacitanceUnit.nF); - @Deprecated - private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage(63d, - VoltageUnit.V); - private boolean polarized = false; - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @Deprecated - public Voltage getVoltage() { - return voltage; - } - - @Deprecated - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - @EditableProperty(name = "Voltage") - public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward compatibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } - return voltageNew; - } - - public void setVoltageNew(org.diylc.core.measures.Voltage voltageNew) { - this.voltageNew = voltageNew; - } - - @EditableProperty - public boolean getPolarized() { - return polarized; - } - - public void setPolarized(boolean polarized) { - this.polarized = polarized; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, 13, height / 2); - g2d.drawLine(width - 13, height / 2, width, height / 2); - g2d.setColor(COLOR); - g2d.drawLine(14, height / 2 - 6, 14, height / 2 + 6); - g2d.drawLine(width - 14, height / 2 - 6, width - 14, height / 2 + 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_WIDTH; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_LENGTH; - } - - @Override - protected Shape getBodyShape() { - GeneralPath polyline = new GeneralPath(); - double length = getLength().convertToPixels(); - double width = getWidth().convertToPixels(); - polyline.moveTo(0, 0); - polyline.lineTo(0, width); - polyline.moveTo(length, 0); - polyline.lineTo(length, width); - return polyline; - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - if (polarized) { - // Draw + sign. - g2d.setColor(getBorderColor()); - int plusSize = getClosestOdd(getWidth().convertToPixels() / 4); - int x = -plusSize; - int y = plusSize; - g2d.drawLine(x - plusSize / 2, y, x + plusSize / 2, y); - g2d.drawLine(x, y - plusSize / 2, x, y + plusSize / 2); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/PotentiometerPanel.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/PotentiometerPanel.java deleted file mode 100644 index 1ee92aa8..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/PotentiometerPanel.java +++ /dev/null @@ -1,278 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Potentiometer (panel mount)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.SINGLE_CLICK, instanceNamePrefix = "VR", description = "Panel mount potentiometer with solder lugs", zOrder = IDIYComponent.COMPONENT, stretchable = false) -public class PotentiometerPanel extends AbstractPotentiometer { - - private static final long serialVersionUID = 1L; - - protected static Size BODY_DIAMETER = new Size(1d, SizeUnit.in); - protected static Size SPACING = new Size(0.3d, SizeUnit.in); - protected static Size LUG_DIAMETER = new Size(0.15d, SizeUnit.in); - protected static Color BODY_COLOR = Color.gray.brighter(); - protected static Color BORDER_COLOR = Color.gray; - - protected Size bodyDiameter = BODY_DIAMETER; - protected Size spacing = SPACING; - protected Size lugDiameter = LUG_DIAMETER; - protected Color bodyColor = BODY_COLOR; - protected Color borderColor = BORDER_COLOR; - // Array of 7 elements: 3 lug connectors, 1 pot body and 3 lugs - transient protected Area[] body = null; - - public PotentiometerPanel() { - controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - updateControlPoints(); - } - - protected void updateControlPoints() { - int spacing = (int) this.spacing.convertToPixels(); - switch (orientation) { - case DEFAULT: - controlPoints[1].setLocation(controlPoints[0].x + spacing, controlPoints[0].y); - controlPoints[2].setLocation(controlPoints[0].x + 2 * spacing, controlPoints[0].y); - break; - case _90: - controlPoints[1].setLocation(controlPoints[0].x, controlPoints[0].y + spacing); - controlPoints[2].setLocation(controlPoints[0].x, controlPoints[0].y + 2 * spacing); - break; - case _180: - controlPoints[1].setLocation(controlPoints[0].x - spacing, controlPoints[0].y); - controlPoints[2].setLocation(controlPoints[0].x - 2 * spacing, controlPoints[0].y); - break; - case _270: - controlPoints[1].setLocation(controlPoints[0].x, controlPoints[0].y - spacing); - controlPoints[2].setLocation(controlPoints[0].x, controlPoints[0].y - 2 * spacing); - break; - default: - break; - } - } - - public Area[] getBody() { - int spacing = (int) this.spacing.convertToPixels(); - int diameter = getClosestOdd(bodyDiameter.convertToPixels()); - if (body == null) { - body = new Area[7]; - - // Add lugs. - int lugDiameter = getClosestOdd(this.lugDiameter.convertToPixels()); - int holeDiameter = getClosestOdd(this.lugDiameter.convertToPixels() / 2); - for (int i = 0; i < 3; i++) { - Area area = new Area(new Ellipse2D.Double(controlPoints[i].x - lugDiameter / 2, - controlPoints[i].y - lugDiameter / 2, lugDiameter, lugDiameter)); - body[4 + i] = area; - } - - switch (orientation) { - case DEFAULT: - body[3] = new Area(new Ellipse2D.Double( - controlPoints[0].x + spacing - diameter / 2, controlPoints[0].y - spacing - / 2 - diameter, diameter, diameter)); - for (int i = 0; i < 3; i++) { - body[i] = new Area(new Rectangle2D.Double( - controlPoints[i].x - holeDiameter / 2, controlPoints[i].y - - (spacing + diameter) / 2, holeDiameter, - (spacing + diameter) / 2)); - } - break; - case _90: - body[3] = new Area(new Ellipse2D.Double(controlPoints[0].x + spacing / 2, - controlPoints[0].y + spacing - diameter / 2, diameter, diameter)); - for (int i = 0; i < 3; i++) { - body[i] = new Area(new Rectangle2D.Double(controlPoints[i].x, - controlPoints[i].y - holeDiameter / 2, (spacing + diameter) / 2, - holeDiameter)); - } - break; - case _180: - body[3] = new Area(new Ellipse2D.Double( - controlPoints[0].x - spacing - diameter / 2, controlPoints[0].y + spacing - / 2, diameter, diameter)); - for (int i = 0; i < 3; i++) { - body[i] = new Area(new Rectangle2D.Double( - controlPoints[i].x - holeDiameter / 2, controlPoints[i].y, - holeDiameter, (spacing + diameter) / 2)); - } - break; - case _270: - body[3] = new Area(new Ellipse2D.Double( - controlPoints[0].x - spacing / 2 - diameter, controlPoints[0].y - spacing - - diameter / 2, diameter, diameter)); - for (int i = 0; i < 3; i++) { - body[i] = new Area(new Rectangle2D.Double(controlPoints[i].x - - (spacing + diameter) / 2, controlPoints[i].y - holeDiameter / 2, - (spacing + diameter) / 2, holeDiameter)); - } - break; - default: - break; - } - for (int i = 0; i < 3; i++) { - for (int j = 3; j < 7; j++) { - body[i].subtract(body[j]); - } - } - // Make holes in the lugs. - for (int i = 0; i < 3; i++) { - body[4 + i].subtract(new Area(new Ellipse2D.Double(controlPoints[i].x - - holeDiameter / 2, controlPoints[i].y - holeDiameter / 2, holeDiameter, - holeDiameter))); - } - } - return body; - } - - @Override - public void setControlPoint(Point point, int index) { - super.setControlPoint(point, index); - body = null; - } - - @Override - public void setOrientation(Orientation orientation) { - super.setOrientation(orientation); - updateControlPoints(); - body = null; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - for (Area shape : getBody()) { - if (shape != null) { - g2d.setColor(bodyColor); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.fill(shape); - g2d.setComposite(oldComposite); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : borderColor); - g2d.draw(shape); - } - } - // Draw caption. - g2d.setFont(LABEL_FONT); - g2d - .setColor(componentState == ComponentState.SELECTED ? LABEL_COLOR_SELECTED - : LABEL_COLOR); - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D bodyRect = getBody()[3].getBounds2D(); - Rectangle2D rect = fontMetrics.getStringBounds(getName(), g2d); - - int textHeight = (int) rect.getHeight(); - int textWidth = (int) rect.getWidth(); - int panelHeight = (int) bodyRect.getHeight(); - int panelWidth = (int) bodyRect.getWidth(); - - int x = (panelWidth - textWidth) / 2; - int y = panelHeight / 2 - textHeight + fontMetrics.getAscent(); - - g2d.drawString(getName(), (int) (bodyRect.getX() + x), (int) (bodyRect.getY() + y)); - - // Draw value. - rect = fontMetrics.getStringBounds(getValue().toString(), g2d); - - textHeight = (int) rect.getHeight(); - textWidth = (int) rect.getWidth(); - - x = (panelWidth - textWidth) / 2; - y = panelHeight / 2 + fontMetrics.getAscent(); - - g2d.drawString(getValue().toString(), (int) (bodyRect.getX() + x), - (int) (bodyRect.getY() + y)); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 4 * width / 32; - int spacing = width / 3 - 1; - g2d.setColor(BORDER_COLOR); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2 * width / 32)); - g2d.drawLine(width / 2 - spacing, height / 2, width / 2 - spacing, height - margin); - g2d.drawLine(width / 2 + spacing, height / 2, width / 2 + spacing, height - margin); - g2d.drawLine(width / 2, height / 2, width / 2, height - margin); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(4 * width / 32)); - g2d.drawLine(width / 2 - spacing, height - margin, width / 2 - spacing, height - margin); - g2d.drawLine(width / 2 + spacing, height - margin, width / 2 + spacing, height - margin); - g2d.drawLine(width / 2, height - margin, width / 2, height - margin); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(BODY_COLOR); - g2d.fillOval(margin, margin / 2, width - 2 * margin, height - 2 * margin); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(margin, margin / 2, width - 2 * margin, height - 2 * margin); - } - - @EditableProperty - public Size getSpacing() { - return spacing; - } - - public void setSpacing(Size spacing) { - this.spacing = spacing; - updateControlPoints(); - body = null; - } - - @EditableProperty(name = "Diameter") - public Size getBodyDiameter() { - return bodyDiameter; - } - - public void setBodyDiameter(Size bodyDiameter) { - this.bodyDiameter = bodyDiameter; - } - - @EditableProperty(name = "Lug size") - public Size getLugDiameter() { - return lugDiameter; - } - - public void setLugDiameter(Size lugDiameter) { - this.lugDiameter = lugDiameter; - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/PotentiometerValue.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/PotentiometerValue.java deleted file mode 100644 index 26f3caee..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/PotentiometerValue.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.diylc.components.passive; - -import org.diylc.core.measures.Resistance; - -public class PotentiometerValue { - - private Resistance resistance; - private Taper taper; - - public PotentiometerValue(Resistance resistance, Taper taper) { - super(); - this.resistance = resistance; - this.taper = taper; - } - - public Resistance getResistance() { - return resistance; - } - - public Taper getTaper() { - return taper; - } - - @Override - public String toString() { - return resistance.toString() + " " + taper.toString(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Power.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Power.java deleted file mode 100644 index f925e2cb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Power.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.diylc.components.passive; - -import org.diylc.core.measures.PowerUnit; - -public enum Power { - - EIGHT("1/8W"), QUARTER("1/4W"), HALF("1/2W"), ONE("1W"), TWO("2W"), FIVE("5W"), TEN("10W"), FIFTY( - "50W"), HUNDRED("100W"); - - String label; - - Power(String label) { - this.label = label; - } - - @Override - public String toString() { - return label; - } - - public org.diylc.core.measures.Power convertToNewFormat() { - org.diylc.core.measures.Power powerNew; - switch (this) { - case EIGHT: - powerNew = new org.diylc.core.measures.Power(1 / 8d, PowerUnit.W); - break; - case FIVE: - powerNew = new org.diylc.core.measures.Power(5d, PowerUnit.W); - break; - case FIFTY: - powerNew = new org.diylc.core.measures.Power(50d, PowerUnit.W); - break; - case HALF: - powerNew = new org.diylc.core.measures.Power(1 / 2d, PowerUnit.W); - break; - case HUNDRED: - powerNew = new org.diylc.core.measures.Power(100d, PowerUnit.W); - break; - case ONE: - powerNew = new org.diylc.core.measures.Power(1d, PowerUnit.W); - break; - case QUARTER: - powerNew = new org.diylc.core.measures.Power(1 / 4d, PowerUnit.W); - break; - case TEN: - powerNew = new org.diylc.core.measures.Power(10d, PowerUnit.W); - break; - case TWO: - powerNew = new org.diylc.core.measures.Power(2d, PowerUnit.W); - break; - default: - powerNew = new org.diylc.core.measures.Power(1 / 2d, PowerUnit.W); - } - return powerNew; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java deleted file mode 100644 index 876a800d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Ellipse2D; - -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Ceramic Capacitor (radial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Standard radial ceramic capacitor", zOrder = IDIYComponent.COMPONENT) -public class RadialCeramicDiskCapacitor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#F0E68C"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private Capacitance value = new Capacitance(470d, CapacitanceUnit.pF); - private Voltage voltage = Voltage._63V; - - public RadialCeramicDiskCapacitor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @EditableProperty - public Voltage getVoltage() { - return voltage; - } - - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillOval(4, height / 2 - 3, width - 8, 6); - g2d.setColor(BORDER_COLOR); - g2d.drawOval(4, height / 2 - 3, width - 8, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @Override - protected Shape getBodyShape() { - return new Ellipse2D.Double(0f, 0f, getLength().convertToPixels(), getClosestOdd(getWidth() - .convertToPixels())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialElectrolytic.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialElectrolytic.java deleted file mode 100644 index 4ca98002..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialElectrolytic.java +++ /dev/null @@ -1,203 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Electrolytic Capacitor", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Vertical mounted electrolytic capacitor, polarized or bipolar", zOrder = IDIYComponent.COMPONENT) -public class RadialElectrolytic extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_SIZE = new Size(1d / 2, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#EAADEA"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - public static Color MARKER_COLOR = Color.gray; - public static Color TICK_COLOR = Color.white; - - private Capacitance value = new Capacitance(1d, CapacitanceUnit.uF); - @Deprecated - private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage(63d, - VoltageUnit.V); - - private Color markerColor = MARKER_COLOR; - private Color tickColor = TICK_COLOR; - private boolean polarized = true; - - public RadialElectrolytic() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @Deprecated - public Voltage getVoltage() { - return voltage; - } - - @Deprecated - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - @EditableProperty(name = "Voltage") - public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward comptibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } - return voltageNew; - } - - public void setVoltageNew(org.diylc.core.measures.Voltage voltageNew) { - this.voltageNew = voltageNew; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BODY_COLOR); - int margin = 3; - Ellipse2D body = new Ellipse2D.Double(margin, margin, getClosestOdd(width - 2 * margin), - getClosestOdd(width - 2 * margin)); - g2d.fill(body); - Area marker = new Area(body); - marker.subtract(new Area(new Rectangle2D.Double(margin, margin, width - 4 * margin, - getClosestOdd(width - 2 * margin)))); - g2d.setColor(MARKER_COLOR); - g2d.fill(marker); - g2d.setColor(TICK_COLOR); - g2d.drawLine(width - 2 * margin, height / 2 - 2, width - 2 * margin, height / 2 + 2); - g2d.setColor(BORDER_COLOR); - g2d.draw(body); - // g2d.setColor(COVER_COLOR.darker()); - // g2d.drawLine(innerMargin + 2, innerMargin + 2, width - innerMargin - - // 2, width - innerMargin - // - 2); - // g2d.drawLine(innerMargin + 2, width - innerMargin - 2, width - - // innerMargin - 2, - // innerMargin + 2); - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - if (polarized) { - int totalDiameter = getClosestOdd(getLength().convertToPixels()); - if (!outlineMode) { - Area area = new Area(getBodyShape()); - area.subtract(new Area(new Rectangle2D.Double(0, 0, totalDiameter * 0.8, - totalDiameter))); - g2d.setColor(markerColor); - g2d.fill(area); - } - Color finalTickColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalTickColor = theme.getOutlineColor(); - } else { - finalTickColor = tickColor; - } - g2d.setColor(finalTickColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.drawLine((int) (totalDiameter * 0.9), totalDiameter / 2 - - (int) (totalDiameter * 0.05), (int) (totalDiameter * 0.9), totalDiameter / 2 - + (int) (totalDiameter * 0.05)); - } - // int coverDiameter = getClosestOdd(totalDiameter * 3 / 4); - // g2d.setColor(coverColor); - // int position = (totalDiameter - coverDiameter) / 2; - // g2d.fillOval(position, position, coverDiameter, coverDiameter); - // g2d.setColor(coverColor.darker()); - // g2d.drawLine(position + coverDiameter / 5, position + coverDiameter / - // 5, position + 4 - // * coverDiameter / 5, position + 4 * coverDiameter / 5); - // g2d.drawLine(position + coverDiameter / 5, position + 4 * - // coverDiameter / 5, position + 4 - // * coverDiameter / 5, position + coverDiameter / 5); - } - - @Override - protected Size getDefaultWidth() { - return null; - } - - @Override - public Size getWidth() { - return super.getWidth(); - } - - @Override - protected Size getDefaultLength() { - // We'll reuse width property to set the diameter. - return DEFAULT_SIZE; - } - - @EditableProperty(name = "Diameter") - @Override - public Size getLength() { - return super.getLength(); - } - - @EditableProperty(name = "Marker") - public Color getMarkerColor() { - return markerColor; - } - - public void setMarkerColor(Color coverColor) { - this.markerColor = coverColor; - } - - @EditableProperty(name = "Tick") - public Color getTickColor() { - return tickColor; - } - - public void setTickColor(Color tickColor) { - this.tickColor = tickColor; - } - - @EditableProperty(name = "Polarized") - public boolean getPolarized() { - return polarized; - } - - public void setPolarized(boolean polarized) { - this.polarized = polarized; - } - - @Override - protected Shape getBodyShape() { - return new Ellipse2D.Double(0f, 0f, getClosestOdd(getLength().convertToPixels()), - getClosestOdd(getLength().convertToPixels())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java deleted file mode 100644 index 5da8ff4b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialFilmCapacitor.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Capacitance; -import org.diylc.core.measures.CapacitanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.core.measures.VoltageUnit; - -@ComponentDescriptor(name = "Film Capacitor (radial)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", description = "Radial film capacitor, similar to Sprague Orange Drop", zOrder = IDIYComponent.COMPONENT) -public class RadialFilmCapacitor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 4, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#FF8000"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private Capacitance value = new Capacitance(123d, CapacitanceUnit.nF); - @Deprecated - private Voltage voltage = Voltage._63V; - private org.diylc.core.measures.Voltage voltageNew = new org.diylc.core.measures.Voltage(63d, - VoltageUnit.V); - - public RadialFilmCapacitor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public Capacitance getValue() { - return value; - } - - public void setValue(Capacitance value) { - this.value = value; - } - - @Deprecated - public Voltage getVoltage() { - return voltage; - } - - @Deprecated - public void setVoltage(Voltage voltage) { - this.voltage = voltage; - } - - @EditableProperty(name = "Voltage") - public org.diylc.core.measures.Voltage getVoltageNew() { - // Backward comptibility - if (voltageNew == null) { - voltageNew = voltage.convertToNewFormat(); - voltage = null; - // Clear old value, don't need it anymore - } - return voltageNew; - } - - public void setVoltageNew(org.diylc.core.measures.Voltage voltageNew) { - this.voltageNew = voltageNew; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect(4, height / 2 - 3, width - 8, 6, 5, 5); - g2d.setColor(BORDER_COLOR); - g2d.drawRoundRect(4, height / 2 - 3, width - 8, 6, 5, 5); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @Override - protected Shape getBodyShape() { - double radius = getWidth().convertToPixels() * 0.7; - return new RoundRectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels()), radius, radius); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Resistor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Resistor.java deleted file mode 100644 index a13adbe3..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Resistor.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.ObjectCache; -import org.diylc.common.ResistorColorCode; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.annotations.PositiveMeasureValidator; -import org.diylc.core.measures.PowerUnit; -import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Resistor", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "R", description = "", zOrder = IDIYComponent.COMPONENT) -public class Resistor extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 2, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#82CFFD"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - public static int BAND_SPACING = 5; - public static int FIRST_BAND = 4; - - private Resistance value = new Resistance(100d, ResistanceUnit.K); - @Deprecated - private Power power = Power.HALF; - private org.diylc.core.measures.Power powerNew = new org.diylc.core.measures.Power(0.5, - PowerUnit.W); - private ResistorColorCode colorCode = ResistorColorCode._5_BAND; - - public Resistor() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - protected boolean supportsStandingMode() { - return true; - } - - @EditableProperty(validatorClass = PositiveMeasureValidator.class) - public Resistance getValue() { - return value; - } - - public void setValue(Resistance value) { - this.value = value; - } - - @Deprecated - public Power getPower() { - return power; - } - - @Deprecated - public void setPower(Power power) { - this.power = power; - } - - @EditableProperty(name = "Power rating") - public org.diylc.core.measures.Power getPowerNew() { - // Backward compatibility - if (powerNew == null) { - powerNew = power.convertToNewFormat(); - // Clear old value, don't need it anymore - power = null; - } - return powerNew; - } - - public void setPowerNew(org.diylc.core.measures.Power powerNew) { - this.powerNew = powerNew; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(4, height / 2 - 3, width - 8, 6); - g2d.setColor(Color.red); - g2d.drawLine(7, height / 2 - 3, 7, height / 2 + 3); - g2d.setColor(Color.orange); - g2d.drawLine(11, height / 2 - 3, 11, height / 2 + 3); - g2d.setColor(Color.black); - g2d.drawLine(15, height / 2 - 3, 15, height / 2 + 3); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(4, height / 2 - 3, width - 8, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @EditableProperty(name = "Color code") - public ResistorColorCode getColorCode() { - return colorCode; - } - - public void setColorCode(ResistorColorCode colorCode) { - this.colorCode = colorCode; - } - - @Override - protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels())); - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - // int width = getWidth().convertToPixels(); - if (colorCode == ResistorColorCode.NONE || outlineMode) { - return; - } - int height = getClosestOdd(getWidth().convertToPixels()); - Color[] bands = value.getColorCode(colorCode); - int x = FIRST_BAND; - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - for (int i = 0; i < bands.length; i++) { - g2d.setColor(bands[i]); - g2d.drawLine(x, 1, x, height - 1); - x += BAND_SPACING; - } - } - - @Override - protected int getLabelOffset(int bodyWidth, int labelWidth) { - Color[] bands = value.getColorCode(colorCode); - int bandArea = FIRST_BAND + BAND_SPACING * (bands.length - 1); - // Only offset the label if overlaping with the band area. - if (labelWidth > bodyWidth - 2 * bandArea) - return bandArea / 2; - return 0; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java deleted file mode 100644 index 2ed5d7ba..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.GeneralPath; - -import org.diylc.components.AbstractSchematicLeadedSymbol; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.PowerUnit; -import org.diylc.core.measures.Resistance; -import org.diylc.core.measures.ResistanceUnit; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Resistor (schematic symbol)", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "R", description = "Resistor schematic symbol", zOrder = IDIYComponent.COMPONENT) -public class ResistorSymbol extends AbstractSchematicLeadedSymbol { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_LENGTH = new Size(0.3, SizeUnit.in); - public static Size DEFAULT_WIDTH = new Size(0.08, SizeUnit.in); - - private Resistance value = new Resistance(100d, ResistanceUnit.K); - @Deprecated - private Power power = Power.HALF; - private org.diylc.core.measures.Power powerNew = new org.diylc.core.measures.Power(0.5, - PowerUnit.W); - - @EditableProperty - public Resistance getValue() { - return value; - } - - public void setValue(Resistance value) { - this.value = value; - } - - @Deprecated - public Power getPower() { - return power; - } - - @Deprecated - public void setPower(Power power) { - this.power = power; - } - - @EditableProperty(name = "Power rating") - public org.diylc.core.measures.Power getPowerNew() { - // Backward compatibility - if (powerNew == null) { - powerNew = power.convertToNewFormat(); - // Clear old value, don't need it anymore - power = null; - } - return powerNew; - } - - public void setPowerNew(org.diylc.core.measures.Power powerNew) { - this.powerNew = powerNew; - } - - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, 4, height / 2); - g2d.drawLine(width - 4, height / 2, width, height / 2); - g2d.setColor(COLOR); - g2d.drawPolyline(new int[] { 4, 6, 10, 14, 18, 22, 26, 28 }, new int[] { height / 2, - height / 2 + 2, height / 2 - 2, height / 2 + 2, height / 2 - 2, height / 2 + 2, - height / 2 - 2, height / 2 }, 8); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_WIDTH; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_LENGTH; - } - - @Override - protected Shape getBodyShape() { - GeneralPath polyline = new GeneralPath(); - double length = getLength().convertToPixels(); - double width = getWidth().convertToPixels(); - polyline.moveTo(0, width / 2); - polyline.lineTo(length / 16, width); - polyline.lineTo(3 * length / 16, 0); - polyline.lineTo(5 * length / 16, width); - polyline.lineTo(7 * length / 16, 0); - polyline.lineTo(9 * length / 16, width); - polyline.lineTo(11 * length / 16, 0); - polyline.lineTo(13 * length / 16, width); - polyline.lineTo(15 * length / 16, 0); - polyline.lineTo(length, width / 2); - return polyline; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorValue.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorValue.java deleted file mode 100644 index 4fbe5c80..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorValue.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.diylc.components.passive; - -import org.diylc.core.measures.Resistance; - -public class ResistorValue { - - private Resistance resistance; - private Power power; - - public ResistorValue(Resistance resistance, Power power) { - super(); - this.resistance = resistance; - this.power = power; - } - - public Resistance getResistance() { - return resistance; - } - - public Power getPower() { - return power; - } - - @Override - public String toString() { - return resistance.toString() + power.toString(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Taper.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Taper.java deleted file mode 100644 index 5dcd8f93..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Taper.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.diylc.components.passive; - -public enum Taper { - - LIN, LOG, REV_LOG, W, S; - - @Override - public String toString() { - return name().substring(0, 1).toUpperCase() - + name().substring(1).toLowerCase().replace("_", " "); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java deleted file mode 100644 index f117ccf7..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java +++ /dev/null @@ -1,375 +0,0 @@ -package org.diylc.components.passive; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.core.ComponentState; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "Trimmer Potentiometer", author = "Branislav Stojkovic", category = "Passive", creationMethod = CreationMethod.SINGLE_CLICK, instanceNamePrefix = "VR", description = "Various types of board mounted trimmer potentiometers", zOrder = IDIYComponent.COMPONENT, stretchable = false) -public class TrimmerPotentiometer extends AbstractPotentiometer { - - private static final long serialVersionUID = 1L; - - protected static Size FLAT_BODY_SIZE = new Size(9.5d, SizeUnit.mm); - protected static Size FLAT_SHAFT_SIZE = new Size(4d, SizeUnit.mm); - protected static Size VERTICAL_BODY_LENGTH = new Size(9.5d, SizeUnit.mm); - protected static Size VERTICAL_BODY_WIDTH = new Size(4.5d, SizeUnit.mm); - protected static Size SPACING = new Size(0.1d, SizeUnit.in); - private static Color BODY_COLOR = Color.decode("#FFFFE0"); - private static Color BORDER_COLOR = Color.decode("#8E8E38"); - private static Color SHAFT_COLOR = Color.decode("#FFFFE0"); - private static Color SHAFT_BORDER_COLOR = Color.decode("#8E8E38"); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Size PIN_SIZE = new Size(0.03d, SizeUnit.in); - - protected Color bodyColor = BODY_COLOR; - protected Color borderColor = BORDER_COLOR; - // Array of 7 elements: 3 lug connectors, 1 pot body and 3 lugs - transient protected Shape[] body = null; - - protected TrimmerType type = TrimmerType.FLAT_SMALL; - - public TrimmerPotentiometer() { - controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - updateControlPoints(); - } - - protected void updateControlPoints() { - int spacing = (int) SPACING.convertToPixels(); - int dx1 = 0; - int dy1 = 0; - int dx2 = 0; - int dy2 = 0; - switch (orientation) { - case DEFAULT: - switch (type) { - case FLAT_SMALL: - dx1 = 2 * spacing; - dy1 = spacing; - dx2 = 0; - dy2 = 2 * spacing; - break; - case FLAT_LARGE: - dx1 = 4 * spacing; - dy1 = spacing; - dx2 = 0; - dy2 = 2 * spacing; - break; - case VERTICAL_INLINE: - dx1 = 0; - dy1 = spacing; - dx2 = 0; - dy2 = 2 * spacing; - break; - case VERTICAL_OFFSET: - dx1 = spacing; - dy1 = spacing; - dx2 = 0; - dy2 = 2 * spacing; - break; - } - break; - case _90: - switch (type) { - case FLAT_SMALL: - dx1 = -spacing; - dy1 = 2 * spacing; - dx2 = -2 * spacing; - dy2 = 0; - break; - case FLAT_LARGE: - dx1 = -spacing; - dy1 = 4 * spacing; - dx2 = -2 * spacing; - dy2 = 0; - break; - case VERTICAL_INLINE: - dx1 = -spacing; - dy1 = 0; - dx2 = -2 * spacing; - dy2 = 0; - break; - case VERTICAL_OFFSET: - dx1 = -spacing; - dy1 = spacing; - dx2 = -2 * spacing; - dy2 = 0; - break; - } - break; - case _180: - switch (type) { - case FLAT_SMALL: - dx1 = -2 * spacing; - dy1 = -spacing; - dx2 = 0; - dy2 = -2 * spacing; - break; - case FLAT_LARGE: - dx1 = -4 * spacing; - dy1 = -spacing; - dx2 = 0; - dy2 = -2 * spacing; - break; - case VERTICAL_INLINE: - dx1 = 0; - dy1 = -spacing; - dx2 = 0; - dy2 = -2 * spacing; - break; - case VERTICAL_OFFSET: - dx1 = -spacing; - dy1 = -spacing; - dx2 = 0; - dy2 = -2 * spacing; - break; - } - break; - case _270: - switch (type) { - case FLAT_SMALL: - dx1 = spacing; - dy1 = -2 * spacing; - dx2 = 2 * spacing; - dy2 = 0; - break; - case FLAT_LARGE: - dx1 = spacing; - dy1 = -4 * spacing; - dx2 = 2 * spacing; - dy2 = 0; - break; - case VERTICAL_INLINE: - dx1 = spacing; - dy1 = 0; - dx2 = 2 * spacing; - dy2 = 0; - break; - case VERTICAL_OFFSET: - dx1 = spacing; - dy1 = -spacing; - dx2 = 2 * spacing; - dy2 = 0; - break; - } - break; - default: - break; - } - controlPoints[1].setLocation(controlPoints[0].x + dx1, controlPoints[0].y + dy1); - controlPoints[2].setLocation(controlPoints[0].x + dx2, controlPoints[0].y + dy2); - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[2]; - - // Calculate the center point as center of the minimum bounding - // rectangle. - int centerX = (Math.max(Math.max(controlPoints[0].x, controlPoints[1].x), - controlPoints[2].x) + Math.min( - Math.min(controlPoints[0].x, controlPoints[1].x), controlPoints[2].x)) / 2; - int centerY = (Math.max(Math.max(controlPoints[0].y, controlPoints[1].y), - controlPoints[2].y) + Math.min( - Math.min(controlPoints[0].y, controlPoints[1].y), controlPoints[2].y)) / 2; - - // Calculate body dimensions based on the selected type. - int length = 0; - int width = 0; - switch (type) { - case FLAT_LARGE: - case FLAT_SMALL: - length = getClosestOdd(FLAT_BODY_SIZE.convertToPixels()); - width = length; - int shaftSize = getClosestOdd(FLAT_SHAFT_SIZE.convertToPixels()); - Area shaft = new Area(new Ellipse2D.Double(centerX - shaftSize / 2, centerY - - shaftSize / 2, shaftSize, shaftSize)); - Area slot = new Area(new Rectangle2D.Double(centerX - shaftSize / 2, centerY - - shaftSize / 8, shaftSize, shaftSize / 4)); - slot.transform(AffineTransform.getRotateInstance(Math.PI / 4, centerX, centerY)); - shaft.subtract(slot); - body[1] = shaft; - break; - case VERTICAL_INLINE: - case VERTICAL_OFFSET: - length = getClosestOdd(VERTICAL_BODY_LENGTH.convertToPixels()); - width = getClosestOdd(VERTICAL_BODY_WIDTH.convertToPixels()); - break; - } - if (orientation == Orientation.DEFAULT || orientation == Orientation._180) { - int p = length; - length = width; - width = p; - } - body[0] = new Rectangle2D.Double(centerX - length / 2, centerY - width / 2, length, - width); - } - return body; - } - - @Override - public void setControlPoint(Point point, int index) { - super.setControlPoint(point, index); - body = null; - } - - @Override - public void setOrientation(Orientation orientation) { - super.setOrientation(orientation); - updateControlPoints(); - body = null; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - Shape mainShape = getBody()[0]; - Shape shaftShape = getBody()[1]; - if (mainShape != null) { - g2d.setColor(bodyColor); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.fill(mainShape); - if (shaftShape != null) { - g2d.setColor(SHAFT_COLOR); - g2d.fill(shaftShape); - g2d.setColor(SHAFT_BORDER_COLOR); - g2d.draw(shaftShape); - } - g2d.setComposite(oldComposite); - g2d.setColor(componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); - g2d.draw(mainShape); - } - - // Draw pins. - int pinSize = getClosestOdd(PIN_SIZE.convertToPixels()); - for (Point point : controlPoints) { - g2d.setColor(PIN_COLOR); - g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - } - - // Draw label. - g2d.setFont(LABEL_FONT); - g2d - .setColor(componentState == ComponentState.SELECTED ? LABEL_COLOR_SELECTED - : LABEL_COLOR); - FontMetrics fontMetrics = g2d.getFontMetrics(); - Rectangle2D bodyRect = getBody()[0].getBounds2D(); - Rectangle2D rect = fontMetrics.getStringBounds(getName(), g2d); - - int textHeight = (int) rect.getHeight(); - int textWidth = (int) rect.getWidth(); - int panelHeight = (int) bodyRect.getHeight(); - int panelWidth = (int) bodyRect.getWidth(); - - int x = (panelWidth - textWidth) / 2; - int y = (panelHeight - textHeight) / 2 + fontMetrics.getAscent(); - - g2d.drawString(getName(), (int) (bodyRect.getX() + x), (int) (bodyRect.getY() + y)); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 4; - g2d.setColor(BODY_COLOR); - g2d.fillRect(margin, margin, width - 2 * margin, width - 2 * margin); - g2d.setColor(BORDER_COLOR); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawRect(margin, margin, width - 2 * margin, width - 2 * margin); - int shaftSize = 11; - int slotSize = 2; - Area area = new Area(new Ellipse2D.Double(width / 2 - shaftSize / 2, width / 2 - shaftSize - / 2, shaftSize, shaftSize)); - Area slot = new Area(new Rectangle2D.Double(0, width / 2 - slotSize / 2, width, slotSize)); - slot.transform(AffineTransform.getRotateInstance(Math.PI / 4, width / 2, width / 2)); - area.subtract(slot); - g2d.setColor(SHAFT_COLOR); - g2d.fill(area); - g2d.setColor(SHAFT_BORDER_COLOR); - g2d.draw(area); - - int pinSize = 3; - g2d.setColor(PIN_COLOR); - g2d.fillOval(margin - pinSize / 2, 10 - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(margin - pinSize / 2, 10 - pinSize / 2, pinSize, pinSize); - - g2d.setColor(PIN_COLOR); - g2d.fillOval(margin - pinSize / 2, 21 - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(margin - pinSize / 2, 21 - pinSize / 2, pinSize, pinSize); - - g2d.setColor(PIN_COLOR); - g2d.fillOval(width - margin - pinSize / 2, width / 2 - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(width - margin - pinSize / 2, width / 2 - pinSize / 2, pinSize, pinSize); - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @EditableProperty - public TrimmerType getType() { - return type; - } - - public void setType(TrimmerType type) { - this.type = type; - updateControlPoints(); - body = null; - } - - public static enum TrimmerType { - FLAT_LARGE, FLAT_SMALL, VERTICAL_INLINE, VERTICAL_OFFSET; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase().replace("_", " "); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Voltage.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Voltage.java deleted file mode 100644 index e27b308a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Voltage.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.diylc.components.passive; - -import org.diylc.core.measures.VoltageUnit; - -public enum Voltage { - - _16V, _25V, _63V, _100V, _160V, _250V, _300V, _350V, _400V, _500V, _630V, _1KV; - - @Override - public String toString() { - return name().replace("_", ""); - } - - public org.diylc.core.measures.Voltage convertToNewFormat() { - org.diylc.core.measures.Voltage voltageNew; - switch (this) { - case _100V: - voltageNew = new org.diylc.core.measures.Voltage(100d, VoltageUnit.V); - break; - case _160V: - voltageNew = new org.diylc.core.measures.Voltage(160d, VoltageUnit.V); - break; - case _16V: - voltageNew = new org.diylc.core.measures.Voltage(16d, VoltageUnit.V); - break; - case _1KV: - voltageNew = new org.diylc.core.measures.Voltage(1d, VoltageUnit.KV); - break; - case _250V: - voltageNew = new org.diylc.core.measures.Voltage(250d, VoltageUnit.V); - break; - case _25V: - voltageNew = new org.diylc.core.measures.Voltage(25d, VoltageUnit.V); - break; - case _300V: - voltageNew = new org.diylc.core.measures.Voltage(300d, VoltageUnit.V); - break; - case _350V: - voltageNew = new org.diylc.core.measures.Voltage(350d, VoltageUnit.V); - break; - case _400V: - voltageNew = new org.diylc.core.measures.Voltage(400d, VoltageUnit.V); - break; - case _500V: - voltageNew = new org.diylc.core.measures.Voltage(500d, VoltageUnit.V); - break; - case _630V: - voltageNew = new org.diylc.core.measures.Voltage(630d, VoltageUnit.V); - break; - case _63V: - voltageNew = new org.diylc.core.measures.Voltage(63d, VoltageUnit.V); - break; - default: - voltageNew = new org.diylc.core.measures.Voltage(100d, VoltageUnit.V); - } - return voltageNew; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractDiodeSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractDiodeSymbol.java deleted file mode 100644 index 2fe93373..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractDiodeSymbol.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Shape; - -import org.diylc.components.AbstractLeadedComponent; - -public abstract class AbstractDiodeSymbol extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - @Override - protected boolean shouldShadeLeads() { - return false; - } - - @Override - protected Shape getBodyShape() { - return null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorSymbol.java deleted file mode 100644 index 7114e7b4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorSymbol.java +++ /dev/null @@ -1,173 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.Display; -import org.diylc.common.HorizontalAlignment; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -public abstract class AbstractTransistorSymbol extends AbstractComponent { - - private static final long serialVersionUID = 1L; - - public static Size PIN_SPACING = new Size(0.1d, SizeUnit.in); - public static Color COLOR = Color.black; - - protected String value = ""; - protected Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), - new Point(0, 0) }; - protected Color color = COLOR; - protected Display display = Display.NAME; - transient protected Shape[] body; - - public AbstractTransistorSymbol() { - super(); - updateControlPoints(); - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - Color finalColor; - if (componentState == ComponentState.SELECTED) { - finalColor = SELECTION_COLOR; - } else if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalColor = theme.getOutlineColor(); - } else { - finalColor = color; - } - g2d.setColor(finalColor); - - // Draw transistor - - int x = controlPoints[0].x; - int y = controlPoints[0].y; - - Shape[] body = getBody(); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.draw(body[0]); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.draw(body[1]); - - g2d.fill(body[2]); - - // Draw label - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - drawCenteredText(g2d, display == Display.VALUE ? getValue() : getName(), - x + pinSpacing * 2, y, HorizontalAlignment.LEFT, VerticalAlignment.CENTER); - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - private void updateControlPoints() { - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - // Update control points. - int x = controlPoints[0].x; - int y = controlPoints[0].y; - - controlPoints[1].x = x + pinSpacing * 2; - controlPoints[1].y = y - pinSpacing * 2; - - controlPoints[2].x = x + pinSpacing * 2; - controlPoints[2].y = y + pinSpacing * 2; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @EditableProperty - @Override - public String getValue() { - return this.value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - // Invalidate body - body = null; - } - - @EditableProperty - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - @EditableProperty - public Display getDisplay() { - return display; - } - - public void setDisplay(Display display) { - this.display = display; - } - - /** - * Returns transistor shape consisting of 3 parts, in this order: main body, - * connectors, polarity arrow. - * - * @return - */ - protected abstract Shape[] getBody(); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTPolarity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTPolarity.java deleted file mode 100644 index 15590148..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTPolarity.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.components.semiconductors; - -public enum BJTPolarity { - - NPN, PNP; - - @Override - public String toString() { - return name(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java deleted file mode 100644 index 95cabfc4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Graphics2D; -import java.awt.Polygon; -import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Area; -import java.awt.geom.GeneralPath; - -import org.diylc.common.ObjectCache; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -@ComponentDescriptor(name = "BJT Symbol", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "Q", description = "Bipolar junction transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class BJTSymbol extends AbstractTransistorSymbol { - - private static final long serialVersionUID = 1L; - - protected BJTPolarity polarity = BJTPolarity.NPN; - - public Shape[] getBody() { - if (body == null) { - body = new Shape[3]; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - - GeneralPath polyline = new GeneralPath(); - - polyline.moveTo(x + pinSpacing / 2, y - pinSpacing); - polyline.lineTo(x + pinSpacing / 2, y + pinSpacing); - - body[0] = polyline; - - polyline = new GeneralPath(); - - polyline.moveTo(x, y); - polyline.lineTo(x + pinSpacing / 2, y); - polyline.moveTo(x + pinSpacing / 2, y - pinSpacing / 2); - polyline.lineTo(x + pinSpacing * 2, y - pinSpacing); - polyline.lineTo(x + pinSpacing * 2, y - pinSpacing * 2); - polyline.moveTo(x + pinSpacing / 2, y + pinSpacing / 2); - polyline.lineTo(x + pinSpacing * 2, y + pinSpacing); - polyline.lineTo(x + pinSpacing * 2, y + pinSpacing * 2); - body[1] = polyline; - - Area arrow; - double theta; - if (polarity == BJTPolarity.NPN) { - theta = Math.atan(1.0 / 3); - arrow = new Area(new Polygon(new int[] { x + pinSpacing, x + pinSpacing, - x + pinSpacing * 10 / 6 }, new int[] { y - pinSpacing / 5 + pinSpacing / 2, - y + pinSpacing / 5 + pinSpacing / 2, y + pinSpacing / 2 }, 3)); - arrow.transform(AffineTransform.getRotateInstance(theta, x + pinSpacing / 2, y - + pinSpacing / 2)); - } else { - theta = -Math.atan(1.0 / 3); - arrow = new Area(new Polygon(new int[] { x + pinSpacing, x + pinSpacing * 10 / 6, - x + pinSpacing * 10 / 6 }, new int[] { y - pinSpacing / 2, - y - pinSpacing / 5 - pinSpacing / 2, y + pinSpacing / 5 - pinSpacing / 2 }, - 3)); - arrow.transform(AffineTransform.getRotateInstance(theta, x + pinSpacing / 2, y - - pinSpacing / 2)); - } - body[2] = arrow; - } - return body; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(COLOR); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.drawLine(width / 3, height / 5, width / 3, height * 4 / 5); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawLine(width / 8, height / 2, width / 3, height / 2); - - g2d.drawLine(width * 3 / 4, 1, width * 3 / 4, height / 4); - g2d.drawLine(width / 3, height / 3 + 1, width * 3 / 4, height / 4); - - g2d.drawLine(width * 3 / 4, height - 1, width * 3 / 4, height * 3 / 4); - g2d.drawLine(width / 3, height * 2 / 3 - 1, width * 3 / 4, height * 3 / 4); - } - - @EditableProperty(name = "Polarity") - public BJTPolarity getPolarity() { - return polarity; - } - - public void setPolarity(BJTPolarity polarity) { - this.polarity = polarity; - // Invalidate body - body = null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java deleted file mode 100644 index 2ba52f9e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java +++ /dev/null @@ -1,372 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; -import java.awt.geom.RoundRectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.Display; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "DIL IC", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "IC", description = "IC with rectangular housing and two parallel rows of pins", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class DIL_IC extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color BODY_COLOR = Color.gray; - public static Color BORDER_COLOR = Color.gray.darker(); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Color INDENT_COLOR = Color.gray.darker(); - public static Color LABEL_COLOR = Color.white; - public static int EDGE_RADIUS = 6; - public static Size PIN_SIZE = new Size(0.04d, SizeUnit.in); - public static Size INDENT_SIZE = new Size(0.07d, SizeUnit.in); - - private String value = ""; - private Orientation orientation = Orientation.DEFAULT; - private PinCount pinCount = PinCount._8; - private Size pinSpacing = new Size(0.1d, SizeUnit.in); - private Size rowSpacing = new Size(0.3d, SizeUnit.in); - private Point[] controlPoints = new Point[] { new Point(0, 0) }; - protected Display display = Display.NAME; - // new Point(0, pinSpacing.convertToPixels()), - // new Point(0, 2 * pinSpacing.convertToPixels()), - // new Point(0, 3 * pinSpacing.convertToPixels()), - // new Point(3 * pinSpacing.convertToPixels(), 0), - // new Point(3 * pinSpacing.convertToPixels(), - // pinSpacing.convertToPixels()), - // new Point(3 * pinSpacing.convertToPixels(), 2 * - // pinSpacing.convertToPixels()), - // new Point(3 * pinSpacing.convertToPixels(), 3 * - // pinSpacing.convertToPixels()) }; - transient private Area[] body; - - public DIL_IC() { - super(); - updateControlPoints(); - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Reset body shape. - body = null; - } - - @EditableProperty(name = "Pins") - public PinCount getPinCount() { - return pinCount; - } - - public void setPinCount(PinCount pinCount) { - this.pinCount = pinCount; - updateControlPoints(); - // Reset body shape; - body = null; - } - - @EditableProperty(name = "Pin spacing") - public Size getPinSpacing() { - return pinSpacing; - } - - public void setPinSpacing(Size pinSpacing) { - this.pinSpacing = pinSpacing; - } - - @EditableProperty(name = "Row spacing") - public Size getRowSpacing() { - return rowSpacing; - } - - public void setRowSpacing(Size rowSpacing) { - this.rowSpacing = rowSpacing; - updateControlPoints(); - // Reset body shape; - body = null; - } - - @EditableProperty - public Display getDisplay() { - if (display == null) { - display = Display.VALUE; - } - return display; - } - - public void setDisplay(Display display) { - this.display = display; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - private void updateControlPoints() { - Point firstPoint = controlPoints[0]; - controlPoints = new Point[pinCount.getValue()]; - controlPoints[0] = firstPoint; - int pinSpacing = (int) this.pinSpacing.convertToPixels(); - int rowSpacing = (int) this.rowSpacing.convertToPixels(); - // Update control points. - int dx1; - int dy1; - int dx2; - int dy2; - for (int i = 0; i < pinCount.getValue() / 2; i++) { - switch (orientation) { - case DEFAULT: - dx1 = 0; - dy1 = i * pinSpacing; - dx2 = rowSpacing; - dy2 = i * pinSpacing; - break; - case _90: - dx1 = -i * pinSpacing; - dy1 = 0; - dx2 = -i * pinSpacing; - dy2 = rowSpacing; - break; - case _180: - dx1 = 0; - dy1 = -i * pinSpacing; - dx2 = -rowSpacing; - dy2 = -i * pinSpacing; - break; - case _270: - dx1 = i * pinSpacing; - dy1 = 0; - dx2 = i * pinSpacing; - dy2 = -rowSpacing; - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - controlPoints[i] = new Point(firstPoint.x + dx1, firstPoint.y + dy1); - controlPoints[i + pinCount.getValue() / 2] = new Point(firstPoint.x + dx2, firstPoint.y - + dy2); - } - } - - public Area[] getBody() { - if (body == null) { - body = new Area[2]; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int width; - int height; - int pinSize = (int) PIN_SIZE.convertToPixels(); - int pinSpacing = (int) this.pinSpacing.convertToPixels(); - int rowSpacing = (int) this.rowSpacing.convertToPixels(); - Area indentation = null; - int indentationSize = getClosestOdd(INDENT_SIZE.convertToPixels()); - switch (orientation) { - case DEFAULT: - width = rowSpacing - pinSize; - height = (pinCount.getValue() / 2) * pinSpacing; - x += pinSize / 2; - y -= pinSpacing / 2; - indentation = new Area(new Ellipse2D.Double(x + width / 2 - indentationSize / 2, y - - indentationSize / 2, indentationSize, indentationSize)); - break; - case _90: - width = (pinCount.getValue() / 2) * pinSpacing; - height = rowSpacing - pinSize; - x -= (pinSpacing / 2) + width - pinSpacing; - y += pinSize / 2; - indentation = new Area(new Ellipse2D.Double(x + width - indentationSize / 2, y - + height / 2 - indentationSize / 2, indentationSize, indentationSize)); - break; - case _180: - width = rowSpacing - pinSize; - height = (pinCount.getValue() / 2) * pinSpacing; - x -= rowSpacing - pinSize / 2; - y -= (pinSpacing / 2) + height - pinSpacing; - indentation = new Area(new Ellipse2D.Double(x + width / 2 - indentationSize / 2, y - + height - indentationSize / 2, indentationSize, indentationSize)); - break; - case _270: - width = (pinCount.getValue() / 2) * pinSpacing; - height = rowSpacing - pinSize; - x -= pinSpacing / 2; - y += pinSize / 2 - rowSpacing; - indentation = new Area(new Ellipse2D.Double(x - indentationSize / 2, y + height / 2 - - indentationSize / 2, indentationSize, indentationSize)); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - body[0] = new Area(new RoundRectangle2D.Double(x, y, width, height, EDGE_RADIUS, - EDGE_RADIUS)); - body[1] = indentation; - if (indentation != null) { - indentation.intersect(body[0]); - } - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - Area mainArea = getBody()[0]; - if (!outlineMode) { - int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; - for (Point point : controlPoints) { - g2d.setColor(PIN_COLOR); - g2d.fillRect(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawRect(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - } - } - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - g2d.fill(mainArea); - g2d.setComposite(oldComposite); - - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR; - } - g2d.setColor(finalBorderColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (outlineMode) { - Area area = new Area(mainArea); - area.subtract(getBody()[1]); - g2d.draw(area); - } else { - g2d.draw(mainArea); - if (getBody()[1] != null) { - g2d.setColor(INDENT_COLOR); - g2d.fill(getBody()[1]); - } - } - // Draw label. - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont()); - String label = display == Display.NAME ? getName() : getValue(); - Rectangle2D rect = fontMetrics.getStringBounds(label, g2d); - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - // Center text horizontally and vertically - Rectangle bounds = mainArea.getBounds(); - int x = bounds.x + (bounds.width - textWidth) / 2; - int y = bounds.y + (bounds.height - textHeight) / 2 + fontMetrics.getAscent(); - g2d.drawString(label, x, y); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int radius = 6 * width / 32; - g2d.setColor(BODY_COLOR); - g2d.fillRoundRect(width / 6, 1, 4 * width / 6, height - 4, radius, radius); - g2d.setColor(BORDER_COLOR); - g2d.drawRoundRect(width / 6, 1, 4 * width / 6, height - 4, radius, radius); - int pinSize = 2 * width / 32; - g2d.setColor(PIN_COLOR); - for (int i = 0; i < 4; i++) { - g2d.fillRect(width / 6 - pinSize, (height / 5) * (i + 1) - 1, pinSize, pinSize); - g2d.fillRect(5 * width / 6 + 1, (height / 5) * (i + 1) - 1, pinSize, pinSize); - } - } - - public static enum PinCount { - - _4, _6, _8, _10, _12, _14, _16, _18, _20, _22, _24, _26, _28, _30, _32, _34, _36, _38, _40, _42, _44, _46, _48, _50; - - @Override - public String toString() { - return name().replace("_", ""); - } - - public int getValue() { - return Integer.parseInt(toString()); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DiodePlastic.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DiodePlastic.java deleted file mode 100644 index bd7d4e2f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/DiodePlastic.java +++ /dev/null @@ -1,111 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Theme; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Diode (plastic)", author = "Branislav Stojkovic", category = "Semiconductors", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", description = "Plastic diode, like most rectifier, zener, schottky, etc.", zOrder = IDIYComponent.COMPONENT) -public class DiodePlastic extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_WIDTH = new Size(1d / 4, SizeUnit.in); - public static Size DEFAULT_HEIGHT = new Size(1d / 8, SizeUnit.in); - public static Size MARKER_WIDTH = new Size(1d, SizeUnit.mm); - public static Color BODY_COLOR = Color.darkGray; - public static Color MARKER_COLOR = Color.decode("#DDDDDD"); - public static Color LABEL_COLOR = Color.white; - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private String value = ""; - private Color markerColor = MARKER_COLOR; - - public DiodePlastic() { - super(); - this.labelColor = LABEL_COLOR; - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @Override - protected boolean supportsStandingMode() { - return true; - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - g2d.setColor(BODY_COLOR); - g2d.fillRect(6, height / 2 - 3, width - 12, 6); - g2d.setColor(MARKER_COLOR); - int markerWidth = 4 * width / 32; - g2d.fillRect(width - 6 - markerWidth, height / 2 - 3, markerWidth, 6); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(6, height / 2 - 3, width - 12, 6); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_HEIGHT; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_WIDTH; - } - - @Override - protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), - getClosestOdd(getWidth().convertToPixels())); - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - Color finalMarkerColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalMarkerColor = theme.getOutlineColor(); - } else { - finalMarkerColor = markerColor; - } - g2d.setColor(finalMarkerColor); - int width = (int) getLength().convertToPixels(); - int markerWidth = (int) MARKER_WIDTH.convertToPixels(); - g2d.fillRect(width - markerWidth, 0, markerWidth, getClosestOdd(getWidth() - .convertToPixels())); - } - - @EditableProperty(name = "Marker") - public Color getMarkerColor() { - return markerColor; - } - - public void setMarkerColor(Color markerColor) { - this.markerColor = markerColor; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/FETPolarity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/FETPolarity.java deleted file mode 100644 index f5cc48bb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/FETPolarity.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.diylc.components.semiconductors; - -public enum FETPolarity { - - NEGATIVE, POSITIVE; - - @Override - public String toString() { - return name().substring(0, 1) + name().substring(1).toLowerCase(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICPointCount.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICPointCount.java deleted file mode 100644 index acca6be6..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICPointCount.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.diylc.components.semiconductors; - -public enum ICPointCount { - _3("3", 3), _5("5", 5); - - private String title; - private int value; - - private ICPointCount(String title, int value) { - this.title = title; - this.value = value; - } - - @Override - public String toString() { - return title; - } - - public int getValue() { - return value; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java deleted file mode 100644 index 962ae81d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java +++ /dev/null @@ -1,258 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Polygon; -import java.awt.Shape; -import java.awt.geom.Area; -import java.awt.geom.GeneralPath; -import java.awt.geom.Rectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.Display; -import org.diylc.common.HorizontalAlignment; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.VerticalAlignment; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "IC Symbol", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "IC", description = "IC symbol with 3 or 5 contacts", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class ICSymbol extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Size PIN_SPACING = new Size(0.1d, SizeUnit.in); - public static Color BODY_COLOR = Color.white; - public static Color BORDER_COLOR = Color.black; - - protected ICPointCount icPointCount = ICPointCount._5; - protected String value = ""; - protected Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), - new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - protected Color bodyColor = BODY_COLOR; - protected Color borderColor = BORDER_COLOR; - protected Display display = Display.NAME; - transient private Shape[] body; - - public ICSymbol() { - super(); - updateControlPoints(); - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - - Shape[] body = getBody(); - - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor); - g2d.fill(body[0]); - g2d.setComposite(oldComposite); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = theme.getOutlineColor(); - } else { - finalBorderColor = borderColor; - } - g2d.setColor(finalBorderColor); - // Draw contacts - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.draw(body[1]); - // Draw triangle - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.draw(body[0]); - // Draw label - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - int x = (controlPoints[0].x + controlPoints[2].x) / 2; - drawCenteredText(g2d, display == Display.VALUE ? getValue() : getName(), x, - controlPoints[0].y + pinSpacing, HorizontalAlignment.CENTER, - VerticalAlignment.CENTER); - // Draw +/- markers - drawCenteredText(g2d, "-", controlPoints[0].x + pinSpacing, controlPoints[0].y, - HorizontalAlignment.CENTER, VerticalAlignment.CENTER); - drawCenteredText(g2d, "+", controlPoints[1].x + pinSpacing, controlPoints[1].y, - HorizontalAlignment.CENTER, VerticalAlignment.CENTER); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 3 * width / 32; - Area area = new Area(new Polygon(new int[] { margin, margin, width - margin }, new int[] { - margin, height - margin, height / 2 }, 3)); - // area.subtract(new Area(new Rectangle2D.Double(0, 0, 2 * margin, - // height))); - area.intersect(new Area(new Rectangle2D.Double(2 * margin, 0, width, height))); - g2d.setColor(BODY_COLOR); - g2d.fill(area); - g2d.setColor(BORDER_COLOR); - g2d.setFont(LABEL_FONT.deriveFont(8f)); - drawCenteredText(g2d, "-", 3 * margin, height / 3, HorizontalAlignment.CENTER, - VerticalAlignment.CENTER); - drawCenteredText(g2d, "+", 3 * margin + 1, height * 2 / 3, HorizontalAlignment.CENTER, - VerticalAlignment.CENTER); - // g2d.setStroke(new BasicStroke(1f, BasicStroke.CAP_ROUND, - // BasicStroke.JOIN_ROUND)); - g2d.draw(area); - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public int getControlPointCount() { - return icPointCount.getValue(); - } - - private void updateControlPoints() { - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - // Update control points. - int x = controlPoints[0].x; - int y = controlPoints[0].y; - - controlPoints[1].x = x; - controlPoints[1].y = y + pinSpacing * 2; - - controlPoints[2].x = x + pinSpacing * 6; - controlPoints[2].y = y + pinSpacing; - - controlPoints[3].x = x + pinSpacing * 3; - controlPoints[3].y = y - pinSpacing; - - controlPoints[4].x = x + pinSpacing * 3; - controlPoints[4].y = y + pinSpacing * 3; - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[2]; - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - int x = controlPoints[0].x; - int y = controlPoints[0].y; - Shape triangle = new Polygon(new int[] { x + pinSpacing / 2, x + pinSpacing * 11 / 2, - x + pinSpacing / 2 }, new int[] { y - pinSpacing * 3 / 2, y + pinSpacing, - y + pinSpacing * 7 / 2 }, 3); - body[0] = triangle; - - GeneralPath polyline = new GeneralPath(); - polyline.moveTo(controlPoints[0].x, controlPoints[0].y); - polyline.lineTo(controlPoints[0].x + pinSpacing / 2, controlPoints[0].y); - polyline.moveTo(controlPoints[1].x, controlPoints[1].y); - polyline.lineTo(controlPoints[1].x + pinSpacing / 2, controlPoints[1].y); - polyline.moveTo(controlPoints[2].x, controlPoints[2].y); - polyline.lineTo(controlPoints[2].x - pinSpacing / 2, controlPoints[2].y); - if (icPointCount == ICPointCount._5) { - polyline.moveTo(controlPoints[3].x, controlPoints[3].y); - polyline.lineTo(controlPoints[3].x, controlPoints[3].y + pinSpacing * 3 / 4); - polyline.moveTo(controlPoints[4].x, controlPoints[4].y); - polyline.lineTo(controlPoints[4].x, controlPoints[4].y - pinSpacing * 3 / 4); - } - body[1] = polyline; - } - return body; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.WHEN_SELECTED; - } - - @EditableProperty - @Override - public String getValue() { - return this.value; - } - - @Override - public void setValue(String value) { - this.value = value; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - @EditableProperty(name = "Contacts") - public ICPointCount getIcPointCount() { - return icPointCount; - } - - public void setIcPointCount(ICPointCount icPointCount) { - this.icPointCount = icPointCount; - updateControlPoints(); - body = null; - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @EditableProperty - public Display getDisplay() { - return display; - } - - public void setDisplay(Display display) { - this.display = display; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java deleted file mode 100644 index 3f48f003..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Graphics2D; -import java.awt.Polygon; -import java.awt.Shape; -import java.awt.geom.GeneralPath; - -import org.diylc.common.ObjectCache; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -@ComponentDescriptor(name = "JFET Symbol", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "Q", description = "JFET transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class JFETSymbol extends AbstractTransistorSymbol { - - private static final long serialVersionUID = 1L; - - protected FETPolarity polarity = FETPolarity.NEGATIVE; - - public Shape[] getBody() { - if (body == null) { - body = new Shape[3]; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - - GeneralPath polyline = new GeneralPath(); - - polyline.moveTo(x + pinSpacing, y - pinSpacing); - polyline.lineTo(x + pinSpacing, y + pinSpacing); - - body[0] = polyline; - - polyline = new GeneralPath(); - - polyline.moveTo(x, y); - polyline.lineTo(x + pinSpacing, y); - polyline.moveTo(x + pinSpacing, y - pinSpacing * 7 / 8); - polyline.lineTo(x + pinSpacing * 2, y - pinSpacing * 7 / 8); - polyline.lineTo(x + pinSpacing * 2, y - pinSpacing * 2); - polyline.moveTo(x + pinSpacing, y + pinSpacing * 7 / 8); - polyline.lineTo(x + pinSpacing * 2, y + pinSpacing * 7 / 8); - polyline.lineTo(x + pinSpacing * 2, y + pinSpacing * 2); - body[1] = polyline; - - Polygon arrow; - if (polarity == FETPolarity.NEGATIVE) { - arrow = new Polygon(new int[] { x + pinSpacing * 2 / 6, x + pinSpacing * 2 / 6, - x + pinSpacing * 6 / 6 }, new int[] { y - pinSpacing / 5, - y + pinSpacing / 5, y }, 3); - } else { - arrow = new Polygon(new int[] { x + pinSpacing / 6, x + pinSpacing * 5 / 6, - x + pinSpacing * 5 / 6 }, new int[] { y, y + pinSpacing / 5, - y - pinSpacing / 5 }, 3); - } - body[2] = arrow; - } - return body; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(COLOR); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.drawLine(width / 2, height / 5, width / 2, height * 4 / 5); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawLine(width / 5, height / 2, width / 2, height / 2); - - g2d.drawLine(width * 3 / 4, 1, width * 3 / 4, height / 4); - g2d.drawLine(width / 2, height / 4, width * 3 / 4, height / 4); - - g2d.drawLine(width * 3 / 4, height - 1, width * 3 / 4, height * 3 / 4); - g2d.drawLine(width / 2, height * 3 / 4, width * 3 / 4, height * 3 / 4); - } - - @EditableProperty(name = "Channel") - public FETPolarity getPolarity() { - return polarity; - } - - public void setPolarity(FETPolarity polarity) { - this.polarity = polarity; - // Invalidate body - body = null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/LED.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/LED.java deleted file mode 100644 index e58abe2a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/LED.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Shape; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.common.ObjectCache; -import org.diylc.components.AbstractLeadedComponent; -import org.diylc.core.CreationMethod; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; - -@ComponentDescriptor(name = "LED", author = "Branislav Stojkovic", category = "Semiconductors", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", description = "Light Emitting Diode", zOrder = IDIYComponent.COMPONENT) -public class LED extends AbstractLeadedComponent { - - private static final long serialVersionUID = 1L; - - public static Size DEFAULT_SIZE = new Size(5d, SizeUnit.mm); - public static Color BODY_COLOR = Color.decode("#5DFC0A"); - public static Color BORDER_COLOR = BODY_COLOR.darker(); - - private String value = ""; - - public LED() { - super(); - this.bodyColor = BODY_COLOR; - this.borderColor = BORDER_COLOR; - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.rotate(-Math.PI / 4, width / 2, height / 2); - g2d.setColor(LEAD_COLOR); - g2d.drawLine(0, height / 2, width, height / 2); - - int margin = 4 * width / 32; - Area area = new Area(new Ellipse2D.Double(margin, margin, width - 2 * margin, width - 2 - * margin)); - area.intersect(new Area(new Rectangle2D.Double(margin, margin, width - 5 * margin / 2, - width - 2 * margin))); - g2d.setColor(BODY_COLOR); - g2d.fill(area); - g2d.setColor(BORDER_COLOR); - g2d.draw(area); - g2d - .drawOval(margin * 2 - 1, margin * 2 - 1, width - 4 * margin + 2, width - 4 - * margin + 2); - } - - @Override - protected Size getDefaultWidth() { - return DEFAULT_SIZE; - } - - @Override - protected Size getDefaultLength() { - return DEFAULT_SIZE; - } - - @Override - protected Shape getBodyShape() { - int size = getClosestOdd((int) (getLength().convertToPixels() * 1.2)); - Area area = new Area(new Ellipse2D.Double(0, 0, size, size)); - area.intersect(new Area(new Rectangle2D.Double(0, 0, getLength().convertToPixels() * 1.15, - size))); - return area; - } - - @Override - protected void decorateComponentBody(Graphics2D g2d, boolean outlineMode) { - if (!outlineMode) { - int size = getClosestOdd((int) (getLength().convertToPixels() * 1.2)); - int innerSize = getClosestOdd(getLength().convertToPixels()); - int x = (size - innerSize) / 2; - Shape s = new Ellipse2D.Double(x, x, innerSize, innerSize); - g2d.setColor(getBorderColor()); - g2d.draw(s); - } - } - - @EditableProperty(name = "Size") - @Override - public Size getLength() { - return super.getLength(); - } - - @Override - public Size getWidth() { - return super.getWidth(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java deleted file mode 100644 index 562ea206..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.Graphics2D; -import java.awt.Polygon; -import java.awt.Shape; -import java.awt.geom.GeneralPath; - -import org.diylc.common.ObjectCache; -import org.diylc.core.IDIYComponent; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; - -@ComponentDescriptor(name = "MOSFET Symbol", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "Q", description = "MOSFET transistor schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class MOSFETSymbol extends AbstractTransistorSymbol { - - private static final long serialVersionUID = 1L; - - protected FETPolarity polarity = FETPolarity.NEGATIVE; - - public Shape[] getBody() { - if (body == null) { - body = new Shape[3]; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - - GeneralPath polyline = new GeneralPath(); - - polyline.moveTo(x + pinSpacing / 2, y - pinSpacing + 1); - polyline.lineTo(x + pinSpacing / 2, y + pinSpacing - 1); - polyline.moveTo(x + pinSpacing, y - pinSpacing + 1); - polyline.lineTo(x + pinSpacing, y + pinSpacing - 1); - body[0] = polyline; - - polyline = new GeneralPath(); - - polyline.moveTo(x + pinSpacing, y - pinSpacing); - polyline.lineTo(x + pinSpacing * 2, y - pinSpacing); - polyline.moveTo(x + pinSpacing, y + pinSpacing); - polyline.lineTo(x + pinSpacing * 2, y + pinSpacing); - polyline.moveTo(x, y); - polyline.lineTo(x + pinSpacing / 2, y); - polyline.moveTo(x + pinSpacing * 2, y - pinSpacing * 2); - polyline.lineTo(x + pinSpacing * 2, y - pinSpacing); - polyline.moveTo(x + pinSpacing * 2, y + pinSpacing * 2); - polyline.lineTo(x + pinSpacing * 2, y + pinSpacing); - body[1] = polyline; - - Polygon arrow; - if (polarity == FETPolarity.NEGATIVE) { - arrow = new Polygon(new int[] { x + pinSpacing * 8 / 6, x + pinSpacing * 8 / 6, - x + pinSpacing * 12 / 6 }, new int[] { y + pinSpacing * 6 / 5, - y + pinSpacing * 4 / 5, y + pinSpacing }, 3); - } else { - arrow = new Polygon(new int[] { x + pinSpacing * 7 / 6, x + pinSpacing * 11 / 6, - x + pinSpacing * 11 / 6 }, new int[] { y - pinSpacing, - y - pinSpacing * 6 / 5, y - pinSpacing * 4 / 5 }, 3); - } - body[2] = arrow; - } - return body; - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(COLOR); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); - g2d.drawLine(width * 2 / 5, height / 4 + 1, width * 2 / 5, height * 3 / 4 - 1); - g2d.drawLine(width * 3 / 5, height / 4 + 1, width * 3 / 5, height * 3 / 4 - 1); - - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.drawLine(width / 5, height / 2, width * 2 / 5, height / 2); - - g2d.drawLine(width * 4 / 5, 1, width * 4 / 5, height / 4); - g2d.drawLine(width * 4 / 5, height / 4, width * 3 / 5, height / 4); - - g2d.drawLine(width * 4 / 5, height - 1, width * 4 / 5, height * 3 / 4); - g2d.drawLine(width * 4 / 5, height * 3 / 4, width * 3 / 5, height * 3 / 4); - } - - @EditableProperty(name = "Channel") - public FETPolarity getPolarity() { - return polarity; - } - - public void setPolarity(FETPolarity polarity) { - this.polarity = polarity; - // Invalidate body - body = null; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java deleted file mode 100644 index c29f5cef..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java +++ /dev/null @@ -1,322 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.Rectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.Display; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Transistor (TO-220 package)", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "Q", description = "Transistors with metal tab for heat sink mounting", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class TransistorTO220 extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color BODY_COLOR = Color.gray; - public static Color BORDER_COLOR = Color.gray.darker(); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Color TAB_COLOR = Color.decode("#C3E4ED"); - public static Color TAB_BORDER_COLOR = TAB_COLOR.darker(); - public static Color LABEL_COLOR = Color.white; - public static Size PIN_SIZE = new Size(0.03d, SizeUnit.in); - public static Size PIN_SPACING = new Size(0.1d, SizeUnit.in); - public static Size BODY_WIDTH = new Size(0.4d, SizeUnit.in); - public static Size BODY_HEIGHT = new Size(4.5d, SizeUnit.mm); - public static Size TAB_THICKNESS = new Size(1d, SizeUnit.mm); - - private String value = ""; - private Orientation orientation = Orientation.DEFAULT; - private Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - transient private Shape[] body; - private Color bodyColor = BODY_COLOR; - private Color borderColor = BORDER_COLOR; - private Color tabColor = TAB_COLOR; - private Color tabBorderColor = TAB_BORDER_COLOR; - private Display display = Display.NAME; - - public TransistorTO220() { - super(); - updateControlPoints(); - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Reset body shape; - body = null; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - private void updateControlPoints() { - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - // Update control points. - int x = controlPoints[0].x; - int y = controlPoints[0].y; - switch (orientation) { - case DEFAULT: - controlPoints[1].setLocation(x, y + pinSpacing); - controlPoints[2].setLocation(x, y + 2 * pinSpacing); - break; - case _90: - controlPoints[1].setLocation(x - pinSpacing, y); - controlPoints[2].setLocation(x - 2 * pinSpacing, y); - break; - case _180: - controlPoints[1].setLocation(x, y - pinSpacing); - controlPoints[2].setLocation(x, y - 2 * pinSpacing); - break; - case _270: - controlPoints[1].setLocation(x + pinSpacing, y); - controlPoints[2].setLocation(x + 2 * pinSpacing, y); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - } - - public Shape[] getBody() { - if (body == null) { - body = new Shape[2]; - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - int bodyWidth = getClosestOdd(BODY_WIDTH.convertToPixels()); - int bodyHeight = getClosestOdd(BODY_HEIGHT.convertToPixels()); - int tabThickness = (int) TAB_THICKNESS.convertToPixels(); - - switch (orientation) { - case DEFAULT: - body[0] = new Rectangle2D.Double(x - bodyHeight / 2, - y + pinSpacing - bodyWidth / 2, bodyHeight, bodyWidth); - body[1] = new Rectangle2D.Double(x + bodyHeight / 2 - tabThickness, y + pinSpacing - - bodyWidth / 2, tabThickness, bodyWidth); - break; - case _90: - body[0] = new Rectangle2D.Double(x - pinSpacing - bodyWidth / 2, - y - bodyHeight / 2, bodyWidth, bodyHeight); - body[1] = new Rectangle2D.Double(x - pinSpacing - bodyWidth / 2, y + bodyHeight / 2 - - tabThickness, bodyWidth, tabThickness); - break; - case _180: - body[0] = new Rectangle2D.Double(x - bodyHeight / 2, - y - pinSpacing - bodyWidth / 2, bodyHeight, bodyWidth); - body[1] = new Rectangle2D.Double(x - bodyHeight / 2, - y - pinSpacing - bodyWidth / 2, tabThickness, bodyWidth); - break; - case _270: - body[0] = new Rectangle2D.Double(x + pinSpacing - bodyWidth / 2, - y - bodyHeight / 2, bodyWidth, bodyHeight); - body[1] = new Rectangle2D.Double(x + pinSpacing - bodyWidth / 2, - y - bodyHeight / 2, bodyWidth, tabThickness); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; - Shape mainArea = getBody()[0]; - Shape tabArea = getBody()[1]; - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor); - g2d.fill(mainArea); - Color finalTabColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalTabColor = theme.getOutlineColor(); - } else { - finalTabColor = tabColor; - } - g2d.setColor(finalTabColor); - g2d.fill(tabArea); - g2d.setComposite(oldComposite); - if (!outlineMode) { - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.setColor(tabBorderColor); - g2d.draw(tabArea); - } - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor; - } - g2d.setColor(finalBorderColor); - g2d.draw(mainArea); - - // Draw pins. - if (!outlineMode) { - for (Point point : controlPoints) { - g2d.setColor(PIN_COLOR); - g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - } - } - - // Draw label. - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - String label = (getDisplay() == Display.NAME) ? getName() : getValue(); - FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont()); - Rectangle2D rect = fontMetrics.getStringBounds(label, g2d); - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - // Center text horizontally and vertically - Rectangle bounds = mainArea.getBounds(); - int x = bounds.x + (bounds.width - textWidth) / 2; - int y = bounds.y + (bounds.height - textHeight) / 2 + fontMetrics.getAscent(); - g2d.drawString(label, x, y); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - g2d.setColor(BODY_COLOR); - int margin = 2 * width / 32; - int thickness = 7 * width / 32; - g2d.fillRect(margin, (height - thickness) / 2, width - margin * 2, thickness); - g2d.setColor(TAB_COLOR); - g2d.fillRect(margin, (height + thickness) / 2 - margin - 1, width - margin * 2, margin); - g2d.setColor(BORDER_COLOR); - g2d.drawRect(margin, (height - thickness) / 2, width - margin * 2, thickness); - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @EditableProperty(name = "Tab") - public Color getTabColor() { - return tabColor; - } - - public void setTabColor(Color tabColor) { - this.tabColor = tabColor; - } - - @EditableProperty(name = "Tab border") - public Color getTabBorderColor() { - return tabBorderColor; - } - - public void setTabBorderColor(Color tabBorderColor) { - this.tabBorderColor = tabBorderColor; - } - - @EditableProperty - public Display getDisplay() { - if (display == null) { - display = Display.NAME; - } - return display; - } - - public void setDisplay(Display display) { - this.display = display; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java deleted file mode 100644 index 033bcc41..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java +++ /dev/null @@ -1,282 +0,0 @@ -package org.diylc.components.semiconductors; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Rectangle2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.Display; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Transistor (TO-92 package)", author = "Branislav Stojkovic", category = "Semiconductors", instanceNamePrefix = "Q", description = "Transistor with small plastic or epoxy body", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class TransistorTO92 extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - public static Color BODY_COLOR = Color.gray; - public static Color BORDER_COLOR = Color.gray.darker(); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Color LABEL_COLOR = Color.white; - public static Size PIN_SIZE = new Size(0.03d, SizeUnit.in); - public static Size PIN_SPACING = new Size(0.1d, SizeUnit.in); - public static Size BODY_DIAMETER = new Size(0.2d, SizeUnit.in); - - private String value = ""; - private Orientation orientation = Orientation.DEFAULT; - private Point[] controlPoints = new Point[] { new Point(0, 0), new Point(0, 0), new Point(0, 0) }; - transient private Area body; - private Color bodyColor = BODY_COLOR; - private Color borderColor = BORDER_COLOR; - protected Display display = Display.NAME; - - public TransistorTO92() { - super(); - updateControlPoints(); - } - - @EditableProperty - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Reset body shape; - body = null; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public boolean isControlPointSticky(int index) { - return true; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - private void updateControlPoints() { - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - // Update control points. - int x = controlPoints[0].x; - int y = controlPoints[0].y; - switch (orientation) { - case DEFAULT: - controlPoints[1].setLocation(x, y + pinSpacing); - controlPoints[2].setLocation(x, y + 2 * pinSpacing); - break; - case _90: - controlPoints[1].setLocation(x - pinSpacing, y); - controlPoints[2].setLocation(x - 2 * pinSpacing, y); - break; - case _180: - controlPoints[1].setLocation(x, y - pinSpacing); - controlPoints[2].setLocation(x, y - 2 * pinSpacing); - break; - case _270: - controlPoints[1].setLocation(x + pinSpacing, y); - controlPoints[2].setLocation(x + 2 * pinSpacing, y); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - } - - public Area getBody() { - if (body == null) { - int x = controlPoints[0].x; - int y = controlPoints[0].y; - int pinSpacing = (int) PIN_SPACING.convertToPixels(); - int bodyDiameter = getClosestOdd(BODY_DIAMETER.convertToPixels()); - - switch (orientation) { - case DEFAULT: - body = new Area(new Ellipse2D.Double(x - bodyDiameter / 2, y + pinSpacing - - bodyDiameter / 2, bodyDiameter, bodyDiameter)); - body.subtract(new Area(new Rectangle2D.Double(x - bodyDiameter, y + pinSpacing - - bodyDiameter / 2, 3 * bodyDiameter / 4, bodyDiameter))); - break; - case _90: - body = new Area(new Ellipse2D.Double(x - pinSpacing - bodyDiameter / 2, y - - bodyDiameter / 2, bodyDiameter, bodyDiameter)); - body.subtract(new Area(new Rectangle2D.Double(x - pinSpacing - bodyDiameter / 2, y - - bodyDiameter, bodyDiameter, 3 * bodyDiameter / 4))); - break; - case _180: - body = new Area(new Ellipse2D.Double(x - bodyDiameter / 2, y - pinSpacing - - bodyDiameter / 2, bodyDiameter, bodyDiameter)); - body.subtract(new Area(new Rectangle2D.Double(x + bodyDiameter / 4, y - pinSpacing - - bodyDiameter / 2, 3 * bodyDiameter / 4, bodyDiameter))); - break; - case _270: - body = new Area(new Ellipse2D.Double(x + pinSpacing - bodyDiameter / 2, y - - bodyDiameter / 2, bodyDiameter, bodyDiameter)); - body.subtract(new Area(new Rectangle2D.Double(x + pinSpacing - bodyDiameter / 2, y - + bodyDiameter / 4, bodyDiameter, 3 * bodyDiameter / 4))); - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - if (checkPointsClipped(g2d.getClip())) { - return; - } - int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; - Area mainArea = getBody(); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor); - g2d.fill(mainArea); - g2d.setComposite(oldComposite); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor; - } - g2d.setColor(finalBorderColor); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - g2d.draw(mainArea); - - if (!outlineMode) { - for (Point point : controlPoints) { - g2d.setColor(PIN_COLOR); - g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize); - } - } - - // Draw label. - g2d.setFont(LABEL_FONT); - Color finalLabelColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED : theme - .getOutlineColor(); - } else { - finalLabelColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? LABEL_COLOR_SELECTED - : LABEL_COLOR; - } - g2d.setColor(finalLabelColor); - String label = (getDisplay() == Display.NAME) ? getName() : getValue(); - FontMetrics fontMetrics = g2d.getFontMetrics(g2d.getFont()); - Rectangle2D rect = fontMetrics.getStringBounds(label, g2d); - int textHeight = (int) (rect.getHeight()); - int textWidth = (int) (rect.getWidth()); - // Center text horizontally and vertically - Rectangle bounds = mainArea.getBounds(); - int x = bounds.x + (bounds.width - textWidth) / 2; - int y = bounds.y + (bounds.height - textHeight) / 2 + fontMetrics.getAscent(); - g2d.drawString(label, x, y); - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - int margin = 3 * width / 32; - Area area = new Area(new Ellipse2D.Double(margin / 2, margin, width - 2 * margin, width - 2 - * margin)); - // area.subtract(new Area(new Rectangle2D.Double(0, 0, 2 * margin, - // height))); - area.intersect(new Area(new Rectangle2D.Double(2 * margin, 0, width, height))); - g2d.setColor(BODY_COLOR); - g2d.fill(area); - g2d.setColor(BORDER_COLOR); - g2d.draw(area); - } - - @EditableProperty(name = "Body") - public Color getBodyColor() { - return bodyColor; - } - - public void setBodyColor(Color bodyColor) { - this.bodyColor = bodyColor; - } - - @EditableProperty(name = "Border") - public Color getBorderColor() { - return borderColor; - } - - public void setBorderColor(Color borderColor) { - this.borderColor = borderColor; - } - - @EditableProperty - public Display getDisplay() { - if (display == null) { - display = Display.NAME; - } - return display; - } - - public void setDisplay(Display display) { - this.display = display; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/tube/TubeSocket.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/tube/TubeSocket.java deleted file mode 100644 index 52c5ca47..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/tube/TubeSocket.java +++ /dev/null @@ -1,327 +0,0 @@ -package org.diylc.components.tube; - -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Composite; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Shape; -import java.awt.geom.Area; -import java.awt.geom.Ellipse2D; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ObjectCache; -import org.diylc.common.Orientation; -import org.diylc.components.AbstractTransparentComponent; -import org.diylc.core.ComponentState; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IDrawingObserver; -import org.diylc.core.Project; -import org.diylc.core.Theme; -import org.diylc.core.VisibilityPolicy; -import org.diylc.core.annotations.ComponentDescriptor; -import org.diylc.core.annotations.EditableProperty; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.utils.Constants; - -@ComponentDescriptor(name = "Tube Socket", author = "Branislav Stojkovic", category = "Tubes", instanceNamePrefix = "V", description = "Various types of tube/valve sockets", stretchable = false, zOrder = IDIYComponent.COMPONENT) -public class TubeSocket extends AbstractTransparentComponent { - - private static final long serialVersionUID = 1L; - - private static Color BODY_COLOR = Color.decode("#FFFFE0"); - private static Color BORDER_COLOR = Color.decode("#8E8E38"); - public static Color PIN_COLOR = Color.decode("#00B2EE"); - public static Color PIN_BORDER_COLOR = PIN_COLOR.darker(); - public static Size PIN_SIZE = new Size(1d, SizeUnit.mm); - public static Size HOLE_SIZE = new Size(5d, SizeUnit.mm); - public static Size TICK_SIZE = new Size(2d, SizeUnit.mm); - - private Base base = Base.B9A; - private String type = ""; - private Orientation orientation = Orientation.DEFAULT; - // private Mount mount = Mount.CHASSIS; - - private Point[] controlPoints = new Point[] { new Point(0, 0) }; - - transient private Shape body; - - public TubeSocket() { - super(); - updateControlPoints(); - } - - @EditableProperty - public Base getBase() { - return base; - } - - public void setBase(Base base) { - this.base = base; - updateControlPoints(); - // Reset body shape - body = null; - } - - @EditableProperty - public Orientation getOrientation() { - return orientation; - } - - public void setOrientation(Orientation orientation) { - this.orientation = orientation; - updateControlPoints(); - // Reset body shape - body = null; - } - - // @EditableProperty - // public Mount getMount() { - // return mount; - // } - // - // public void setMount(Mount mount) { - // this.mount = mount; - // } - - private void updateControlPoints() { - Point firstPoint = controlPoints[0]; - int pinCount; - int pinCircleDiameter; - boolean hasEmptySpace; - switch (base) { - case B7G: - pinCount = 7; - pinCircleDiameter = getClosestOdd(new Size(12d, SizeUnit.mm).convertToPixels()); - hasEmptySpace = true; - break; - case OCTAL: - pinCount = 8; - pinCircleDiameter = getClosestOdd(new Size(17.5d, SizeUnit.mm).convertToPixels()); - hasEmptySpace = false; - break; - case B9A: - pinCount = 9; - pinCircleDiameter = getClosestOdd(new Size(21d, SizeUnit.mm).convertToPixels()); - hasEmptySpace = true; - break; - default: - throw new RuntimeException("Unexpected base: " + base); - } - double angleIncrement = Math.PI * 2 / (hasEmptySpace ? (pinCount + 1) : pinCount); - double initialAngleOffset = hasEmptySpace ? angleIncrement : (angleIncrement / 2); - double initialAngle; - switch (orientation) { - case DEFAULT: - initialAngle = Math.PI / 2 + initialAngleOffset; - break; - case _90: - initialAngle = Math.PI + initialAngleOffset; - break; - case _180: - initialAngle = 3 * Math.PI / 2 + initialAngleOffset; - break; - case _270: - initialAngle = initialAngleOffset; - break; - default: - throw new RuntimeException("Unexpected orientation: " + orientation); - } - controlPoints = new Point[pinCount + 1]; - double angle = initialAngle; - controlPoints[0] = firstPoint; - for (int i = 0; i < pinCount; i++) { - controlPoints[i + 1] = new Point((int) (firstPoint.getX() + Math.cos(angle) - * pinCircleDiameter / 2), (int) (firstPoint.getY() + Math.sin(angle) - * pinCircleDiameter / 2)); - angle += angleIncrement; - } - } - - public Shape getBody() { - if (body == null) { - int bodyDiameter; - switch (base) { - case B7G: - bodyDiameter = getClosestOdd(new Size(17d, SizeUnit.mm).convertToPixels()); - break; - case B9A: - bodyDiameter = getClosestOdd(new Size(19d, SizeUnit.mm).convertToPixels()); - break; - case OCTAL: - bodyDiameter = getClosestOdd(new Size(24.5d, SizeUnit.mm).convertToPixels()); - break; - default: - throw new RuntimeException("Unexpected base: " + base); - } - body = new Ellipse2D.Double(controlPoints[0].x - bodyDiameter / 2, controlPoints[0].y - - bodyDiameter / 2, bodyDiameter, bodyDiameter); - Area bodyArea = new Area(body); - int holeSize = getClosestOdd(HOLE_SIZE.convertToPixels()); - bodyArea.subtract(new Area(new Ellipse2D.Double(controlPoints[0].x - holeSize / 2, - controlPoints[0].y - holeSize / 2, holeSize, holeSize))); - if (base == Base.OCTAL) { - int tickSize = getClosestOdd(TICK_SIZE.convertToPixels()); - double angle = 0; - switch (orientation) { - case DEFAULT: - angle = Math.PI / 2; - break; - case _90: - angle = Math.PI; - break; - case _180: - angle = 3 * Math.PI / 2; - break; - case _270: - angle = 0; - break; - } - int centerX = (int) (controlPoints[0].x + Math.cos(angle) * holeSize / 2); - int centerY = (int) (controlPoints[0].y + Math.sin(angle) * holeSize / 2); - bodyArea.subtract(new Area(new Ellipse2D.Double(centerX - tickSize / 2, centerY - - tickSize / 2, tickSize, tickSize))); - } - body = bodyArea; - } - return body; - } - - @Override - public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, - Project project, IDrawingObserver drawingObserver) { - // g2d.setColor(Color.black); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - // for (int i = 0; i < controlPoints.length; i++) { - // g2d.drawString(Integer.toString(i), controlPoints[i].x, - // controlPoints[i].y); - // } - // Draw body - Shape body = getBody(); - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha - / MAX_ALPHA)); - } - if (componentState != ComponentState.DRAGGING) { - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BODY_COLOR); - g2d.fill(body); - } - g2d.setComposite(oldComposite); - Color finalBorderColor; - if (outlineMode) { - Theme theme = (Theme) ConfigurationManager.getInstance().readObject( - IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : theme - .getOutlineColor(); - } else { - finalBorderColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR; - } - g2d.setColor(finalBorderColor); - g2d.draw(body); - // Draw pins - if (!outlineMode) { - int pinSize = getClosestOdd(PIN_SIZE.convertToPixels()); - for (int i = 1; i < controlPoints.length; i++) { - g2d.setColor(PIN_COLOR); - g2d.fillOval(controlPoints[i].x - pinSize / 2, controlPoints[i].y - pinSize / 2, - pinSize, pinSize); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(controlPoints[i].x - pinSize / 2, controlPoints[i].y - pinSize / 2, - pinSize, pinSize); - } - } - } - - @Override - public void drawIcon(Graphics2D g2d, int width, int height) { - Area area = new Area(new Ellipse2D.Double(1, 1, width - 2, width - 2)); - int center = width / 2; - area.subtract(new Area(new Ellipse2D.Double(center - 2, center - 2, 5, 5))); - g2d.setColor(BODY_COLOR); - g2d.fill(area); - g2d.setColor(BORDER_COLOR); - g2d.draw(area); - - int radius = width / 2 - 6; - for (int i = 0; i < 8; i++) { - int x = (int) (center + Math.cos(i * Math.PI / 4) * radius); - int y = (int) (center + Math.sin(i * Math.PI / 4) * radius); - g2d.setColor(PIN_COLOR); - g2d.fillOval(x - 1, y - 1, 3, 3); - g2d.setColor(PIN_BORDER_COLOR); - g2d.drawOval(x - 1, y - 1, 3, 3); - } - } - - @Override - public Point getControlPoint(int index) { - return controlPoints[index]; - } - - @Override - public int getControlPointCount() { - return controlPoints.length; - } - - @Override - public VisibilityPolicy getControlPointVisibilityPolicy(int index) { - return VisibilityPolicy.NEVER; - } - - @Override - @EditableProperty(name = "Type") - public String getValue() { - return type; - } - - @Override - public void setValue(String value) { - this.type = value; - } - - @Override - public boolean isControlPointSticky(int index) { - return index > 0; - } - - @Override - public void setControlPoint(Point point, int index) { - controlPoints[index].setLocation(point); - body = null; - } - - static enum Base { - B9A("Noval B9A"), OCTAL("Octal"), B7G("Small-button B7G"); - - String name; - - private Base(String name) { - this.name = name; - } - - @Override - public String toString() { - return name; - } - } - - static enum Mount { - CHASSIS("Chassis"), PCB("PCB"); - - String name; - - private Mount(String name) { - this.name = name; - } - - @Override - public String toString() { - return name; - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath deleted file mode 100644 index c49d0a29..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.project b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.project deleted file mode 100644 index 8a641248..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - diylc-swing - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.settings/org.eclipse.jdt.ui.prefs b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index b00bc72a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Sun Nov 08 15:11:18 CET 2009 -eclipse.preferences.version=1 -org.eclipse.jdt.ui.javadoc=false -org.eclipse.jdt.ui.text.custom_code_templates= diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/DIYLCStarter.launch b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/DIYLCStarter.launch deleted file mode 100644 index 23679b63..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/DIYLCStarter.launch +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/associations.bat b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/associations.bat deleted file mode 100644 index 2956d38d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/associations.bat +++ /dev/null @@ -1,2 +0,0 @@ -ftype diyfile="%CD%\diylc.exe" "%%1" -assoc .diy=diyfile \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/build.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/build.xml deleted file mode 100644 index 82e97c8c..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/build.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - Compile with JDK ${java.runtime.version} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/config.properties b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/config.properties deleted file mode 100644 index 614427b5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/config.properties +++ /dev/null @@ -1,3 +0,0 @@ -# Uncomment lines you want to edit and change the part after the "=" sign. -#org.diylc.presenter.InstantiationManager.MAX_RECENT_COMPONENTS=20 -#org.diylc.swing.plugins.canvas.CanvasPanel.USE_HARDWARE_ACCELLERATION=true \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/diylc.l4j.ini b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/diylc.l4j.ini deleted file mode 100644 index 92012be2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/diylc.l4j.ini +++ /dev/null @@ -1 +0,0 @@ --Xms512m -Xmx1024m -Dorg.diylc.scriptRun=true \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/app-framework.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/app-framework.jar deleted file mode 100644 index efcbe984..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/app-framework.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar deleted file mode 100644 index 9e26e752..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/iText-2.1.7.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/iText-2.1.7.jar deleted file mode 100644 index 3f2c1882..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/iText-2.1.7.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/jettison-1.0.1.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/jettison-1.0.1.jar deleted file mode 100644 index fed929fd..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/jettison-1.0.1.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/junit-4.7.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/junit-4.7.jar deleted file mode 100644 index 700ad695..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/junit-4.7.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/log4j-1.2.15.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/log4j-1.2.15.jar deleted file mode 100644 index c930a6ab..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/log4j-1.2.15.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/poi-3.5-FINAL-20090928.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/poi-3.5-FINAL-20090928.jar deleted file mode 100644 index 9ff92b02..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/poi-3.5-FINAL-20090928.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/swing-framework.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/swing-framework.jar deleted file mode 100644 index b5fce851..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/swing-framework.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/xstream-1.3.1.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/xstream-1.3.1.jar deleted file mode 100644 index 4ef4219c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/xstream-1.3.1.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar deleted file mode 100644 index e08d3399..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/run.sh b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/run.sh deleted file mode 100644 index 96d09f1f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/run.sh +++ /dev/null @@ -1 +0,0 @@ -java -Xms512m -Xmx2048m -Dorg.diylc.scriptRun=true -cp diylc.jar:lib org.diylc.DIYLCStarter \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/DIYLCStarter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/DIYLCStarter.java deleted file mode 100644 index f6acd61b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/DIYLCStarter.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.diylc; - -import java.io.FileInputStream; -import java.net.URL; -import java.util.Properties; - -import javax.swing.JOptionPane; -import javax.swing.UIManager; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.appframework.miscutils.PropertyInjector; -import org.diylc.presenter.Presenter; -import org.diylc.swing.gui.MainFrame; -import org.diylc.swing.gui.TemplateDialog; - -/** - * Main class that runs DIYLC. - * - * @author Branislav Stojkovic - * - * @see Presenter - * @see MainFrame - */ -public class DIYLCStarter { - - private static final Logger LOG = Logger.getLogger(DIYLCStarter.class); - - private static final String SCRIPT_RUN = "org.diylc.scriptRun"; - - /** - * @param args - */ - public static void main(String[] args) { - URL url = DIYLCStarter.class.getResource("log4j.properties"); - Properties properties = new Properties(); - try { - properties.load(url.openStream()); - PropertyConfigurator.configure(properties); - } catch (Exception e) { - LOG.error("Could not initialize log4j configuration", e); - } - - LOG.debug("Java version: " + System.getProperty("java.runtime.version") - + " by " + System.getProperty("java.vm.vendor")); - LOG.debug("OS: " + System.getProperty("os.name") + " " - + System.getProperty("os.version")); - - LOG.info("Starting DIYLC with working directory " - + System.getProperty("user.dir")); - - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } catch (Exception e) { - LOG.error("Could not set Look&Feel", e); - } - - String val = System.getProperty(SCRIPT_RUN); - if (!"true".equals(val)) { - int response = JOptionPane - .showConfirmDialog( - null, - "It is not recommended to run DIYLC by clicking on the diylc.jar file.\n" + - "Please use diylc.exe on Windows or run.sh on OSX/Linux to ensure the best\n" + - "performance and reliability. Do you want to continue?", - "DIYLC", JOptionPane.YES_NO_OPTION, - JOptionPane.WARNING_MESSAGE); - if (response != JOptionPane.YES_OPTION) { - System.exit(0); - } - } - - MainFrame mainFrame = new MainFrame(); - mainFrame.setLocationRelativeTo(null); - mainFrame.setVisible(true); - if (args.length > 0) { - mainFrame.getPresenter().loadProjectFromFile(args[0]); - } else { - boolean showTemplates = ConfigurationManager.getInstance() - .readBoolean(TemplateDialog.SHOW_TEMPLATES_KEY, true); - if (showTemplates) { - TemplateDialog templateDialog = new TemplateDialog(mainFrame, - mainFrame.getPresenter()); - if (!templateDialog.getFiles().isEmpty()) { - templateDialog.setVisible(true); - } - } - } - - properties = new Properties(); - try { - LOG.info("Injecting default properties."); - properties.load(new FileInputStream("config.properties")); - PropertyInjector.injectProperties(properties); - } catch (Exception e) { - LOG.error("Could not read config.properties file", e); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java deleted file mode 100644 index f2034622..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.diylc.images; - -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.io.IOException; - -import javax.imageio.ImageIO; -import javax.swing.Icon; -import javax.swing.ImageIcon; - -/** - * Loads image resources as Icons. - * - * @author Branislav Stojkovic - */ -public enum IconLoader { - - Delete("delete.png"), Add("add.png"), FolderOut("folder_out.png"), Garbage("garbage.png"), DiskBlue( - "disk_blue.png"), SaveAs("save_as.png"), Exit("exit.png"), DocumentPlainYellow( - "document_plain_yellow.png"), PhotoScenery("photo_scenery.png"), LightBulbOn( - "lightbulb_on.png"), LightBulbOff("lightbulb_off.png"), NotebookAdd("notebook_add.png"), FormGreen( - "form_green.png"), Gears("gears.png"), About("about.png"), WindowColors( - "window_colors.png"), WindowGear("window_gear.png"), NavigateCheck("navigate_check.png"), Undo( - "undo.png"), Error("error.png"), Warning("warning.png"), ZoomSmall("zoom_small.png"), MoveSmall( - "move_small.png"), Print("print.png"), PDF("pdf.png"), Excel("excel.png"), CSV( - "csv.png"), HTML("html.png"), Image("image.png"), Cut("cut.png"), Copy("copy.png"), Paste( - "paste.png"), Selection("selection.png"), BOM("bom.png"), BlackBoard("blackboard.png"), IdCard( - "id_card.png"), IdCardAdd("id_card_add.png"), Chest("chest.png"), Upload("upload.png"), Wrench( - "wrench.png"), Group("group.png"), Ungroup("ungroup.png"), TraceMask("trace_mask.png"), Faq( - "faq.png"), Component("component.png"), Plugin("plugin.png"), Manual("manual.png"), Donate( - "donate.png"), Bug("bug.png"), IconLarge("icon_large.png"), IconMedium( - "icon_medium.png"), IconSmall("icon_small.png"), DocumentEdit("document_edit.png"), EditComponent( - "edit_component.png"), Size("size.png"), Front("front.png"), Back("back.png"), Pens( - "pens.png"), Sort("sort.png"), ElementsSelection("elements_selection.png"), BranchAdd( - "branch_add.png"); - - protected String name; - - private IconLoader(String name) { - this.name = name; - } - - public Icon getIcon() { - java.net.URL imgURL = getClass().getResource(name); - if (imgURL != null) { - return new ImageIcon(imgURL, name); - } else { - System.err.println("Couldn't find file: " + name); - return null; - } - } - - public Image getImage() { - BufferedImage img = null; - try { - img = ImageIO.read(getClass().getResourceAsStream(name)); - } catch (IOException e) { - System.err.println("Couldn't find file: " + name); - } - return img; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/about.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/about.png deleted file mode 100644 index a8e64236..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/about.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/add.png deleted file mode 100644 index 8a73c4f6..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_down_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_down_blue.png deleted file mode 100644 index 38b5739c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_down_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_left_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_left_blue.png deleted file mode 100644 index ff99225c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_left_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_right_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_right_blue.png deleted file mode 100644 index 299f298e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_right_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_up_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_up_blue.png deleted file mode 100644 index e491e547..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_up_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/at.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/at.png deleted file mode 100644 index 206cf23a..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/at.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/back.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/back.png deleted file mode 100644 index df446d87..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/back.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/blackboard.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/blackboard.png deleted file mode 100644 index 6bcf8dd2..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/blackboard.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/bom.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/bom.png deleted file mode 100644 index 233f3687..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/bom.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/branch_add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/branch_add.png deleted file mode 100644 index cd047e54..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/branch_add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/bug.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/bug.png deleted file mode 100644 index 9086622e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/bug.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/check.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/check.png deleted file mode 100644 index ff611c8a..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/check.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/chest.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/chest.png deleted file mode 100644 index 5f83ea57..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/chest.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/component.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/component.png deleted file mode 100644 index ce05570f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/component.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/copy.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/copy.png deleted file mode 100644 index 4757339f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/copy.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/csv.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/csv.png deleted file mode 100644 index 1ae75a5f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/csv.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/cut.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/cut.png deleted file mode 100644 index e354a22c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/cut.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/delete.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/delete.png deleted file mode 100644 index 312bb3f5..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/delete.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/disk_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/disk_blue.png deleted file mode 100644 index d2d0d6e1..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/disk_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/disks.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/disks.png deleted file mode 100644 index 532ccc6e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/disks.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document.png deleted file mode 100644 index af78223e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_edit.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_edit.png deleted file mode 100644 index 35d01513..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_edit.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_info.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_info.png deleted file mode 100644 index 453f2290..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_info.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_plain_yellow.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_plain_yellow.png deleted file mode 100644 index 3e88b651..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_plain_yellow.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/donate.gif b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/donate.gif deleted file mode 100644 index 43cef691..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/donate.gif and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/donate.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/donate.png deleted file mode 100644 index 0d2baa8d..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/donate.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/edit.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/edit.png deleted file mode 100644 index ae851759..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/edit.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/edit_component.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/edit_component.png deleted file mode 100644 index 9f438c3e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/edit_component.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/elements_selection.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/elements_selection.png deleted file mode 100644 index be9d2df1..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/elements_selection.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/error.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/error.png deleted file mode 100644 index f2bd64fd..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/error.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/excel.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/excel.png deleted file mode 100644 index 3705304e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/excel.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/exit.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/exit.png deleted file mode 100644 index 65d3c548..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/exit.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/export.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/export.png deleted file mode 100644 index 113a7cda..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/export.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/faq.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/faq.png deleted file mode 100644 index ee0dd88f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/faq.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/folder_music.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/folder_music.png deleted file mode 100644 index dc3da81b..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/folder_music.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/folder_out.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/folder_out.png deleted file mode 100644 index 80895073..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/folder_out.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/forbidden.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/forbidden.png deleted file mode 100644 index 530433e6..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/forbidden.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/form_blue.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/form_blue.png deleted file mode 100644 index 687cbf32..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/form_blue.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/form_blue_add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/form_blue_add.png deleted file mode 100644 index 15fb1f21..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/form_blue_add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/front.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/front.png deleted file mode 100644 index 302a04ca..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/front.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/garbage.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/garbage.png deleted file mode 100644 index a8fe2a3c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/garbage.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/gear.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/gear.png deleted file mode 100644 index 8e1411f2..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/gear.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/gears.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/gears.png deleted file mode 100644 index 90ecf65c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/gears.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge.png deleted file mode 100644 index 537388ca..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge_curved.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge_curved.png deleted file mode 100644 index dcb67b42..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge_curved.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge_directed.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge_directed.png deleted file mode 100644 index 09e881bc..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge_directed.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/group.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/group.png deleted file mode 100644 index be9d2df1..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/group.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/html.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/html.png deleted file mode 100644 index 292f755f..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/html.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_large.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_large.png deleted file mode 100644 index edd52f73..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_large.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_medium.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_medium.png deleted file mode 100644 index d5559652..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_medium.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_small.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_small.png deleted file mode 100644 index ca6af1c6..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_small.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/id_card.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/id_card.png deleted file mode 100644 index b72bae75..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/id_card.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/id_card_add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/id_card_add.png deleted file mode 100644 index 212dcc26..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/id_card_add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/image.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/image.png deleted file mode 100644 index b1d3ad27..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/image.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/lightbulb_off.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/lightbulb_off.png deleted file mode 100644 index d38e9e6c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/lightbulb_off.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/lightbulb_on.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/lightbulb_on.png deleted file mode 100644 index 032d1650..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/lightbulb_on.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/manual.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/manual.png deleted file mode 100644 index 41c04a0b..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/manual.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/media_play_green.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/media_play_green.png deleted file mode 100644 index 0a06be81..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/media_play_green.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/media_stop_red.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/media_stop_red.png deleted file mode 100644 index 02fbdd17..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/media_stop_red.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/move_small.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/move_small.png deleted file mode 100644 index 3d00db3c..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/move_small.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/navigate_check.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/navigate_check.png deleted file mode 100644 index 8fc0a6a5..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/navigate_check.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/navigate_plus.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/navigate_plus.png deleted file mode 100644 index a751af18..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/navigate_plus.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/notebook_add.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/notebook_add.png deleted file mode 100644 index 62bdeacb..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/notebook_add.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/paste.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/paste.png deleted file mode 100644 index fe5c0e94..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/paste.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/pdf.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/pdf.png deleted file mode 100644 index 1dddc483..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/pdf.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/pens.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/pens.png deleted file mode 100644 index 16d091b2..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/pens.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/photo_scenery.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/photo_scenery.png deleted file mode 100644 index b1d3ad27..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/photo_scenery.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/plugin.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/plugin.png deleted file mode 100644 index 2bee22c4..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/plugin.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/print.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/print.png deleted file mode 100644 index ae807b13..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/print.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/redo.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/redo.png deleted file mode 100644 index 092ff424..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/redo.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/refresh.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/refresh.png deleted file mode 100644 index 1f23890d..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/refresh.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/save_as.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/save_as.png deleted file mode 100644 index a38d1fa2..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/save_as.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/selection.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/selection.png deleted file mode 100644 index dbb0a1a9..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/selection.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/size.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/size.png deleted file mode 100644 index 16fd65eb..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/size.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/sort.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/sort.png deleted file mode 100644 index e7f43647..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/sort.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/trace_mask.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/trace_mask.png deleted file mode 100644 index 38bf1602..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/trace_mask.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/undo.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/undo.png deleted file mode 100644 index f7e5f935..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/undo.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/ungroup.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/ungroup.png deleted file mode 100644 index 383e6330..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/ungroup.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/upload.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/upload.png deleted file mode 100644 index 113a7cda..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/upload.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/view.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/view.png deleted file mode 100644 index 21aae811..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/view.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/warning.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/warning.png deleted file mode 100644 index a6cdac6e..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/warning.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/window_colors.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/window_colors.png deleted file mode 100644 index 8f5f13ba..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/window_colors.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/wrench.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/wrench.png deleted file mode 100644 index e6b6a1b5..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/wrench.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_in.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_in.png deleted file mode 100644 index f575d423..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_in.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_out.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_out.png deleted file mode 100644 index 4641b520..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_out.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_small.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_small.png deleted file mode 100644 index 7020e117..00000000 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_small.png and /dev/null differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/log4j.properties b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/log4j.properties deleted file mode 100644 index 0e4b1681..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/log4j.properties +++ /dev/null @@ -1,9 +0,0 @@ -log4j.rootLogger = DEBUG, fileout, stdout -log4j.appender.fileout = org.diylc.appframework.miscutils.NewLogForEachRunFileAppender -log4j.appender.fileout.layout.ConversionPattern = %d{ABSOLUTE} %5p [%t] %c{1} - %m%n -log4j.appender.fileout.layout = org.apache.log4j.PatternLayout -log4j.appender.fileout.File = log/log.log - -log4j.appender.stdout = org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p [%t] %c{1} - %m%n -log4j.appender.stdout.layout = org.apache.log4j.PatternLayout \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java deleted file mode 100644 index e657b248..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ /dev/null @@ -1,953 +0,0 @@ -package org.diylc.swing; - -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; -import java.awt.print.PrinterException; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import javax.swing.AbstractAction; -import javax.swing.KeyStroke; - -import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ITask; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.ExpansionMode; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IView; -import org.diylc.core.Theme; -import org.diylc.images.IconLoader; -import org.diylc.swing.gui.DialogFactory; -import org.diylc.swing.gui.editor.PropertyEditorDialog; -import org.diylc.swing.plugins.edit.ComponentTransferable; -import org.diylc.swing.plugins.file.BomDialog; -import org.diylc.swing.plugins.file.FileFilterEnum; -import org.diylc.swingframework.ButtonDialog; -import org.diylc.swingframework.IDrawingProvider; -import org.diylc.swingframework.export.DrawingExporter; -import org.diylc.utils.BomEntry; - -public class ActionFactory { - - private static final Logger LOG = Logger.getLogger(ActionFactory.class); - - private static ActionFactory instance; - - public static ActionFactory getInstance() { - if (instance == null) { - instance = new ActionFactory(); - } - return instance; - } - - private ActionFactory() { - } - - // File menu actions. - - public NewAction createNewAction(IPlugInPort plugInPort) { - return new NewAction(plugInPort); - } - - public OpenAction createOpenAction(IPlugInPort plugInPort, ISwingUI swingUI) { - return new OpenAction(plugInPort, swingUI); - } - - public SaveAction createSaveAction(IPlugInPort plugInPort, ISwingUI swingUI) { - return new SaveAction(plugInPort, swingUI); - } - - public SaveAsAction createSaveAsAction(IPlugInPort plugInPort, - ISwingUI swingUI) { - return new SaveAsAction(plugInPort, swingUI); - } - - public CreateBomAction createBomAction(IPlugInPort plugInPort) { - return new CreateBomAction(plugInPort); - } - - public ExportPDFAction createExportPDFAction( - IDrawingProvider drawingProvider, ISwingUI swingUI) { - return new ExportPDFAction(drawingProvider, swingUI); - } - - public ExportPNGAction createExportPNGAction( - IDrawingProvider drawingProvider, ISwingUI swingUI) { - return new ExportPNGAction(drawingProvider, swingUI); - } - - public PrintAction createPrintAction(IDrawingProvider drawingProvider) { - return new PrintAction(drawingProvider); - } - - public ExitAction createExitAction(IPlugInPort plugInPort) { - return new ExitAction(plugInPort); - } - - // Edit menu actions. - - public CutAction createCutAction(IPlugInPort plugInPort, - Clipboard clipboard, ClipboardOwner clipboardOwner) { - return new CutAction(plugInPort, clipboard, clipboardOwner); - } - - public CopyAction createCopyAction(IPlugInPort plugInPort, - Clipboard clipboard, ClipboardOwner clipboardOwner) { - return new CopyAction(plugInPort, clipboard, clipboardOwner); - } - - public PasteAction createPasteAction(IPlugInPort plugInPort, - Clipboard clipboard) { - return new PasteAction(plugInPort, clipboard); - } - - public SelectAllAction createSelectAllAction(IPlugInPort plugInPort) { - return new SelectAllAction(plugInPort); - } - - public GroupAction createGroupAction(IPlugInPort plugInPort) { - return new GroupAction(plugInPort); - } - - public UngroupAction createUngroupAction(IPlugInPort plugInPort) { - return new UngroupAction(plugInPort); - } - - public EditProjectAction createEditProjectAction(IPlugInPort plugInPort) { - return new EditProjectAction(plugInPort); - } - - public EditSelectionAction createEditSelectionAction(IPlugInPort plugInPort) { - return new EditSelectionAction(plugInPort); - } - - public DeleteSelectionAction createDeleteSelectionAction( - IPlugInPort plugInPort) { - return new DeleteSelectionAction(plugInPort); - } - - public ExpandSelectionAction createExpandSelectionAction( - IPlugInPort plugInPort, ExpansionMode expansionMode) { - return new ExpandSelectionAction(plugInPort, expansionMode); - } - - public SendToBackAction createSendToBackAction(IPlugInPort plugInPort) { - return new SendToBackAction(plugInPort); - } - - public BringToFrontAction createBringToFrontAction(IPlugInPort plugInPort) { - return new BringToFrontAction(plugInPort); - } - - // Config actions. - - public ConfigAction createConfigAction(IPlugInPort plugInPort, - String title, String configKey, boolean defaultValue) { - return new ConfigAction(plugInPort, title, configKey, defaultValue); - } - - public ThemeAction createThemeAction(IPlugInPort plugInPort, Theme theme) { - return new ThemeAction(plugInPort, theme); - } - - public RenumberAction createRenumberAction(IPlugInPort plugInPort, - boolean xAxisFirst) { - return new RenumberAction(plugInPort, xAxisFirst); - } - - // File menu actions. - - public static class NewAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public NewAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "New"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_N, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.DocumentPlainYellow - .getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("NewAction triggered"); - if (!plugInPort.allowFileAction()) { - return; - } - plugInPort.createNewProject(); - List properties = plugInPort - .getProjectProperties(); - PropertyEditorDialog editor = DialogFactory.getInstance() - .createPropertyEditorDialog(properties, "Edit Project"); - editor.setVisible(true); - if (ButtonDialog.OK.equals(editor.getSelectedButtonCaption())) { - plugInPort.applyPropertiesToProject(properties); - } - // Save default values. - for (PropertyWrapper property : editor.getDefaultedProperties()) { - if (property.getValue() != null) { - plugInPort.setProjectDefaultPropertyValue(property - .getName(), property.getValue()); - } - } - } - } - - public static class OpenAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - public OpenAction(IPlugInPort plugInPort, ISwingUI swingUI) { - super(); - this.plugInPort = plugInPort; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Open"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_O, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.FolderOut.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("OpenAction triggered"); - if (!plugInPort.allowFileAction()) { - return; - } - final File file = DialogFactory.getInstance().showOpenDialog( - FileFilterEnum.DIY.getFilter(), null, - FileFilterEnum.DIY.getExtensions()[0], null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Opening from " + file.getAbsolutePath()); - plugInPort.loadProjectFromFile(file.getAbsolutePath()); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not open file. " - + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class SaveAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - public SaveAction(IPlugInPort plugInPort, ISwingUI swingUI) { - super(); - this.plugInPort = plugInPort; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Save"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_S, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.DiskBlue.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("SaveAction triggered"); - if (plugInPort.getCurrentFileName() == null) { - final File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.DIY.getFilter(), null, - FileFilterEnum.DIY.getExtensions()[0], null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Saving to " + file.getAbsolutePath()); - plugInPort.saveProjectToFile( - file.getAbsolutePath(), false); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not save to file. " - + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } else { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Saving to " - + plugInPort.getCurrentFileName()); - plugInPort.saveProjectToFile(plugInPort - .getCurrentFileName(), false); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not save to file. " - + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class SaveAsAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - public SaveAsAction(IPlugInPort plugInPort, ISwingUI swingUI) { - super(); - this.plugInPort = plugInPort; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Save As"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_S, ActionEvent.CTRL_MASK - | ActionEvent.SHIFT_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.DiskBlue.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("SaveAsAction triggered"); - final File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.DIY.getFilter(), null, - FileFilterEnum.DIY.getExtensions()[0], null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Saving to " + file.getAbsolutePath()); - plugInPort.saveProjectToFile(file.getAbsolutePath(), - false); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not save to file. " - + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class CreateBomAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public CreateBomAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Create B.O.M."); - putValue(AbstractAction.SMALL_ICON, IconLoader.BOM.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("CreateBomAction triggered"); - List bom = org.diylc.utils.BomMaker.getInstance() - .createBom(plugInPort.getCurrentProject().getComponents()); - BomDialog dialog = DialogFactory.getInstance().createBomDialog(bom); - dialog.setVisible(true); - } - } - - public static class ExportPDFAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IDrawingProvider drawingProvider; - private ISwingUI swingUI; - - public ExportPDFAction(IDrawingProvider drawingProvider, - ISwingUI swingUI) { - super(); - this.drawingProvider = drawingProvider; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Export to PDF"); - putValue(AbstractAction.SMALL_ICON, IconLoader.PDF.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("ExportPDFAction triggered"); - final File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.PDF.getFilter(), null, - FileFilterEnum.PDF.getExtensions()[0], null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Exporting to " + file.getAbsolutePath()); - DrawingExporter.getInstance().exportPDF( - ExportPDFAction.this.drawingProvider, file); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not export to PDF. " - + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class ExportPNGAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IDrawingProvider drawingProvider; - private ISwingUI swingUI; - - public ExportPNGAction(IDrawingProvider drawingProvider, - ISwingUI swingUI) { - super(); - this.drawingProvider = drawingProvider; - this.swingUI = swingUI; - putValue(AbstractAction.NAME, "Export to PNG"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Image.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("ExportPNGAction triggered"); - final File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.PNG.getFilter(), null, - FileFilterEnum.PNG.getExtensions()[0], null); - if (file != null) { - swingUI.executeBackgroundTask(new ITask() { - - @Override - public Void doInBackground() throws Exception { - LOG.debug("Exporting to " + file.getAbsolutePath()); - DrawingExporter.getInstance().exportPNG( - ExportPNGAction.this.drawingProvider, file); - return null; - } - - @Override - public void complete(Void result) { - } - - @Override - public void failed(Exception e) { - swingUI.showMessage("Could not export to PNG. " - + e.getMessage(), "Error", - ISwingUI.ERROR_MESSAGE); - } - }); - } - } - } - - public static class PrintAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IDrawingProvider drawingProvider; - - public PrintAction(IDrawingProvider drawingProvider) { - super(); - this.drawingProvider = drawingProvider; - putValue(AbstractAction.NAME, "Print..."); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_P, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Print.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("ExportPNGAction triggered"); - try { - DrawingExporter.getInstance().print(this.drawingProvider); - } catch (PrinterException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - - public static class ExitAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public ExitAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Exit"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Exit.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - if (plugInPort.allowFileAction()) { - System.exit(0); - } - } - } - - // Edit menu actions. - - public static class CutAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private Clipboard clipboard; - private ClipboardOwner clipboardOwner; - - public CutAction(IPlugInPort plugInPort, Clipboard clipboard, - ClipboardOwner clipboardOwner) { - super(); - this.plugInPort = plugInPort; - this.clipboard = clipboard; - this.clipboardOwner = clipboardOwner; - putValue(AbstractAction.NAME, "Cut"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_X, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Cut.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Cut triggered"); - clipboard.setContents(new ComponentTransferable( - cloneComponents(plugInPort.getSelectedComponents())), - clipboardOwner); - plugInPort.deleteSelectedComponents(); - } - } - - public static class CopyAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private Clipboard clipboard; - private ClipboardOwner clipboardOwner; - - public CopyAction(IPlugInPort plugInPort, Clipboard clipboard, - ClipboardOwner clipboardOwner) { - super(); - this.plugInPort = plugInPort; - this.clipboard = clipboard; - this.clipboardOwner = clipboardOwner; - putValue(AbstractAction.NAME, "Copy"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_C, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Copy.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Copy triggered"); - clipboard.setContents(new ComponentTransferable( - cloneComponents(plugInPort.getSelectedComponents())), - clipboardOwner); - } - } - - public static class PasteAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private Clipboard clipboard; - - public PasteAction(IPlugInPort plugInPort, Clipboard clipboard) { - super(); - this.plugInPort = plugInPort; - this.clipboard = clipboard; - putValue(AbstractAction.NAME, "Paste"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_V, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Paste.getIcon()); - } - - @SuppressWarnings("unchecked") - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Paste triggered"); - try { - List> components = (List>) clipboard - .getData(ComponentTransferable.listFlavor); - plugInPort.pasteComponents(cloneComponents(components)); - } catch (Exception ex) { - LOG.error("Coule not paste.", ex); - } - } - } - - private static List> cloneComponents( - List> components) { - List> result = new ArrayList>( - components.size()); - for (IDIYComponent component : components) { - try { - result.add(component.clone()); - } catch (CloneNotSupportedException e) { - throw new RuntimeException(e); - } - } - return result; - } - - public static class SelectAllAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public SelectAllAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Select All"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_A, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Selection.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Select All triggered"); - plugInPort.selectAll(); - } - } - - public static class GroupAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public GroupAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Group Selection"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_G, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Group.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Group Selection triggered"); - plugInPort.groupSelectedComponents(); - } - } - - public static class UngroupAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public UngroupAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Ungroup Selection"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_U, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Ungroup.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Ungroup Selection triggered"); - plugInPort.ungroupSelectedComponents(); - } - } - - public static class EditProjectAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public EditProjectAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Edit Project"); - putValue(AbstractAction.SMALL_ICON, IconLoader.DocumentEdit - .getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Edit Project triggered"); - List properties = plugInPort - .getProjectProperties(); - PropertyEditorDialog editor = DialogFactory.getInstance() - .createPropertyEditorDialog(properties, "Edit Project"); - editor.setVisible(true); - if (ButtonDialog.OK.equals(editor.getSelectedButtonCaption())) { - plugInPort.applyPropertiesToProject(properties); - } - // Save default values. - for (PropertyWrapper property : editor.getDefaultedProperties()) { - if (property.getValue() != null) { - plugInPort.setProjectDefaultPropertyValue(property - .getName(), property.getValue()); - } - } - } - } - - public static class EditSelectionAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public EditSelectionAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Edit Selection"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_E, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.EditComponent - .getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Edit Selection triggered"); - List properties = plugInPort - .getMutualSelectionProperties(); - if (properties == null || properties.isEmpty()) { - LOG.info("Nothing to edit"); - return; - } - plugInPort.editSelection(); - } - } - - public static class DeleteSelectionAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public DeleteSelectionAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Delete Selection"); - putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( - KeyEvent.VK_DELETE, 0)); - putValue(AbstractAction.SMALL_ICON, IconLoader.Delete.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Delete Selection triggered"); - plugInPort.deleteSelectedComponents(); - } - } - - public static class ExpandSelectionAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private ExpansionMode expansionMode; - - public ExpandSelectionAction(IPlugInPort plugInPort, - ExpansionMode expansionMode) { - super(); - this.plugInPort = plugInPort; - this.expansionMode = expansionMode; - switch (expansionMode) { - case ALL: - putValue(AbstractAction.NAME, "All Connected"); - break; - case IMMEDIATE: - putValue(AbstractAction.NAME, "Immediate Only"); - break; - case SAME_TYPE: - putValue(AbstractAction.NAME, "Same Type Only"); - break; - - default: - break; - } - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Expand Selection triggered: " + expansionMode); - plugInPort.expandSelection(expansionMode); - } - } - - public static class SendToBackAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public SendToBackAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Send Backward"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Back.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Send to Back triggered"); - plugInPort.sendSelectionToBack(); - } - } - - public static class BringToFrontAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - public BringToFrontAction(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - putValue(AbstractAction.NAME, "Bring Forward"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Front.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info("Bring to Front triggered"); - plugInPort.bringSelectionToFront(); - } - } - - public static class ConfigAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private String configKey; - - public ConfigAction(IPlugInPort plugInPort, String title, - String configKey, boolean defaultValue) { - super(); - this.plugInPort = plugInPort; - this.configKey = configKey; - putValue(AbstractAction.NAME, title); - putValue(IView.CHECK_BOX_MENU_ITEM, true); - putValue(AbstractAction.SELECTED_KEY, ConfigurationManager - .getInstance().readBoolean(configKey, defaultValue)); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info(getValue(AbstractAction.NAME) + " triggered"); - ConfigurationManager.getInstance().writeValue(configKey, - getValue(AbstractAction.SELECTED_KEY)); - plugInPort.refresh(); - } - } - - public static class ThemeAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private Theme theme; - - public ThemeAction(IPlugInPort plugInPort, Theme theme) { - super(); - this.plugInPort = plugInPort; - this.theme = theme; - putValue(AbstractAction.NAME, theme.getName()); - putValue(IView.RADIO_BUTTON_GROUP_KEY, "theme"); - putValue(AbstractAction.SELECTED_KEY, plugInPort.getSelectedTheme() - .getName().equals(theme.getName())); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info(getValue(AbstractAction.NAME) + " triggered"); - plugInPort.setSelectedTheme(theme); - } - } - - public static class RenumberAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - private boolean xAxisFirst; - - public RenumberAction(IPlugInPort plugInPort, boolean xAxisFirst) { - super(); - this.plugInPort = plugInPort; - this.xAxisFirst = xAxisFirst; - putValue(AbstractAction.NAME, xAxisFirst ? "X Axis First" - : "Y Axis First"); - } - - @Override - public void actionPerformed(ActionEvent e) { - LOG.info(getValue(AbstractAction.NAME) + " triggered"); - plugInPort.renumberSelectedComponents(xAxisFirst); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ISwingUI.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ISwingUI.java deleted file mode 100644 index b316113f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ISwingUI.java +++ /dev/null @@ -1,64 +0,0 @@ -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; -import org.diylc.common.ITask; -import org.diylc.core.IView; - -/** - * Interface for plugin access to the swing front end. - * - * @author Branislav Stojkovic - */ -public interface ISwingUI extends IView { - - /** - * Injects a custom GUI panels provided by the plug-in and desired position - * in the window. Application will layout plug-in panels accordingly.
- * Valid positions are: - *
    - *
  • {@link SwingConstants#TOP}
  • - *
  • {@link SwingConstants#BOTTOM}
  • - *
  • {@link SwingConstants#LEFT}
  • - *
  • {@link SwingConstants#RIGHT}
  • - *
- * - * 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 - * action 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 - * action 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); - - void executeBackgroundTask(ITask task); -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/CustomGlassPane.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/CustomGlassPane.java deleted file mode 100644 index 9852bdcd..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/CustomGlassPane.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.diylc.swing.gui; - -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.event.MouseEvent; -import java.awt.event.MouseMotionAdapter; - -import javax.swing.Icon; -import javax.swing.JComponent; - -public class CustomGlassPane extends JComponent { - - private static final long serialVersionUID = 1L; - private Icon icon; - - public CustomGlassPane() { - super(); - addMouseMotionListener(new MouseMotionAdapter() { - - @Override - public void mouseMoved(MouseEvent e) { - if (icon != null) { - repaint(); - } - } - }); - } - - public void setCursorIcon(Icon icon) { - this.icon = icon; - } - - @Override - public void paint(Graphics g) { - Point cursor = getMousePosition(); - if ((icon != null) && (cursor != null)) { - Graphics2D g2d = (Graphics2D) g; - icon.paintIcon(this, g2d, cursor.x + 10, cursor.y + 10); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java deleted file mode 100644 index 373e0c3f..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java +++ /dev/null @@ -1,154 +0,0 @@ -package org.diylc.swing.gui; - -import java.io.File; -import java.util.List; - -import javax.swing.Icon; -import javax.swing.JFileChooser; -import javax.swing.JFrame; -import javax.swing.filechooser.FileFilter; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.PropertyWrapper; -import org.diylc.swing.gui.components.OverwritePromptFileChooser; -import org.diylc.swing.gui.editor.PropertyEditorDialog; -import org.diylc.swing.plugins.file.BomDialog; -import org.diylc.swing.plugins.online.view.LoginDialog; -import org.diylc.swing.plugins.online.view.NewUserDialog; -import org.diylc.swing.plugins.online.view.UploadDialog; -import org.diylc.swingframework.AboutDialog; -import org.diylc.swingframework.IFileChooserAccessory; -import org.diylc.swingframework.ProgressDialog; -import org.diylc.utils.BomEntry; - -public class DialogFactory { - - private static DialogFactory instance; - - private static final String PATH_KEY = "lastPath"; - - public static DialogFactory getInstance() { - if (instance == null) { - instance = new DialogFactory(); - } - return instance; - } - - private JFrame mainFrame; - private File lastDirectory; - - private DialogFactory() { - } - - /** - * Sets the frame to be used as dialog parent. This should be called prior - * to any other methods in this class. - * - * @param mainFrame - */ - public void initialize(JFrame mainFrame) { - this.mainFrame = mainFrame; - String lastDirectoryPath = (String) ConfigurationManager.getInstance() - .readString(PATH_KEY, null); - if (lastDirectoryPath != null) { - lastDirectory = new File(lastDirectoryPath); - } - } - - public PropertyEditorDialog createPropertyEditorDialog(List properties, - String title) { - PropertyEditorDialog editor = new PropertyEditorDialog(mainFrame, properties, title); - return editor; - } - - public BomDialog createBomDialog(List bom) { - BomDialog dialog = new BomDialog(mainFrame, bom); - return dialog; - } - - public File showOpenDialog(FileFilter fileFilter, File initialFile, String defaultExtension, - IFileChooserAccessory accessory) { - JFileChooser openFileChooser = new JFileChooser(); - initializeFileChooser(openFileChooser, fileFilter, initialFile, defaultExtension, accessory); - - int result = openFileChooser.showOpenDialog(mainFrame); - - return processFileChooserResult(result, openFileChooser, defaultExtension); - } - - public File showSaveDialog(FileFilter fileFilter, File initialFile, String defaultExtension, - IFileChooserAccessory accessory) { - JFileChooser saveFileChooser = new OverwritePromptFileChooser(); - initializeFileChooser(saveFileChooser, fileFilter, initialFile, defaultExtension, accessory); - - int result = saveFileChooser.showSaveDialog(mainFrame); - - return processFileChooserResult(result, saveFileChooser, defaultExtension); - } - - private void initializeFileChooser(JFileChooser fileChooser, FileFilter fileFilter, - File initialFile, String defaultExtension, IFileChooserAccessory accessory) { - if (accessory != null) { - accessory.install(fileChooser); - } - for (FileFilter filter : fileChooser.getChoosableFileFilters()) { - fileChooser.removeChoosableFileFilter(filter); - } - if (fileChooser instanceof OverwritePromptFileChooser) { - ((OverwritePromptFileChooser) fileChooser).setFileFilter(fileFilter, defaultExtension); - } else { - fileChooser.setFileFilter(fileFilter); - } - if (lastDirectory != null) { - fileChooser.setCurrentDirectory(lastDirectory); - } - fileChooser.setSelectedFile(initialFile); - } - - private File processFileChooserResult(int result, JFileChooser fileChooser, - String defaultExtension) { - fileChooser.setAccessory(null); - if (result == JFileChooser.APPROVE_OPTION) { - lastDirectory = fileChooser.getCurrentDirectory(); - ConfigurationManager.getInstance().writeValue(PATH_KEY, - lastDirectory.getAbsolutePath()); - if (fileChooser.getSelectedFile().getAbsolutePath().contains(".")) { - return fileChooser.getSelectedFile(); - } else { - return new File(fileChooser.getSelectedFile().getAbsoluteFile() + "." - + defaultExtension); - } - } else { - return null; - } - } - - public AboutDialog createAboutDialog(String appName, Icon icon, String version, String author, - String url, String mail, String htmlContent) { - AboutDialog dialog = new AboutDialog(mainFrame, appName, icon, version, author, url, mail, - htmlContent); - return dialog; - } - - public NewUserDialog createNewUserDialog() { - NewUserDialog dialog = new NewUserDialog(mainFrame); - return dialog; - } - - public LoginDialog createLoginDialog() { - LoginDialog dialog = new LoginDialog(mainFrame); - return dialog; - } - - public UploadDialog createUploadDialog() { - UploadDialog dialog = new UploadDialog(mainFrame); - return dialog; - } - - public ProgressDialog createProgressDialog(String title, String[] buttonCaptions, - String description, boolean useProgress) { - ProgressDialog dialog = new ProgressDialog(mainFrame, title, buttonCaptions, description, - useProgress); - return dialog; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java deleted file mode 100644 index 5f1b8516..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java +++ /dev/null @@ -1,377 +0,0 @@ -package org.diylc.swing.gui; - -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.io.File; -import java.io.FileOutputStream; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.util.Arrays; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.swing.Action; -import javax.swing.BoxLayout; -import javax.swing.ButtonGroup; -import javax.swing.Icon; -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JRadioButtonMenuItem; -import javax.swing.SwingConstants; -import javax.swing.SwingWorker; -import javax.swing.Timer; - -import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.BadPositionException; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.common.ITask; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IView; -import org.diylc.images.IconLoader; -import org.diylc.presenter.Presenter; -import org.diylc.swing.ISwingUI; -import org.diylc.swing.gui.editor.PropertyEditorDialog; -import org.diylc.swing.plugins.autosave.AutoSavePlugin; -import org.diylc.swing.plugins.canvas.CanvasPlugin; -import org.diylc.swing.plugins.config.ConfigPlugin; -import org.diylc.swing.plugins.edit.EditMenuPlugin; -import org.diylc.swing.plugins.file.FileFilterEnum; -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; -import org.diylc.swingframework.ButtonDialog; - -public class MainFrame extends JFrame implements ISwingUI { - - private static final Logger LOG = Logger.getLogger(MainFrame.class); - - private static final long serialVersionUID = 1L; - - private JPanel centerPanel; - private JPanel leftPanel; - private JPanel rightPanel; - private JPanel topPanel; - private JPanel bottomPanel; - - private Presenter presenter; - - private JMenuBar mainMenuBar; - private Map menuMap; - private Map buttonGroupMap; - - private CanvasPlugin canvasPlugin; - - public MainFrame() { - super("DIYLC 3"); - setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - setPreferredSize(new Dimension(800, 600)); - createBasePanels(); - menuMap = new HashMap(); - buttonGroupMap = new HashMap(); - setIconImages(Arrays.asList(IconLoader.IconSmall.getImage(), IconLoader.IconMedium - .getImage(), IconLoader.IconLarge.getImage())); - DialogFactory.getInstance().initialize(this); - - this.presenter = new Presenter(this); - - presenter.installPlugin(new ToolBox(this)); - presenter.installPlugin(new FileMenuPlugin(this)); - presenter.installPlugin(new EditMenuPlugin(this)); - presenter.installPlugin(new ConfigPlugin(this)); - presenter.installPlugin(new LayersMenuPlugin(this)); - // presenter.installPlugin(new OnlineManager()); - presenter.installPlugin(new HelpMenuPlugin(this)); - - presenter.installPlugin(new StatusBar(this)); - canvasPlugin = new CanvasPlugin(this); - presenter.installPlugin(canvasPlugin); - presenter.installPlugin(new FramePlugin()); - - try { - File testFile = new File("test.tmp"); - Writer out = new OutputStreamWriter(new FileOutputStream(testFile)); - out.write("This is a test"); - out.close(); - testFile.delete(); - presenter.installPlugin(new AutoSavePlugin(this)); - } catch (Exception e) { - showMessage( - "The current user does not have permissions to access folder " - + new File(".").getAbsolutePath() - + ".\nAuto-save feature will not be available, contact your system administrator.", - "Warning", IView.WARNING_MESSAGE); - } - - presenter.createNewProject(); - - addWindowListener(new WindowAdapter() { - - @Override - public void windowClosed(WindowEvent e) { - if (presenter.allowFileAction()) { - ConfigurationManager.getInstance().writeValue(IPlugInPort.ABNORMAL_EXIT_KEY, - false); - dispose(); - presenter.dispose(); - System.exit(0); - } - } - - @Override - public void windowClosing(WindowEvent e) { - if (presenter.allowFileAction()) { - ConfigurationManager.getInstance().writeValue(IPlugInPort.ABNORMAL_EXIT_KEY, - false); - dispose(); - presenter.dispose(); - System.exit(0); - } - } - }); - - // setGlassPane(new CustomGlassPane()); - // getGlassPane().setVisible(true); - } - - public Presenter getPresenter() { - return presenter; - } - - @Override - public void setVisible(boolean b) { - super.setVisible(b); - // TODO: hack to prevent painting issues in the scroll bar rulers. Find - // a better fix if possible. - Timer timer = new Timer(500, new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - canvasPlugin.refresh(); - } - - }); - timer.setRepeats(false); - timer.start(); - // if (b) { - // SwingUtilities.invokeLater(new Runnable() { - // @Override - // public void run() { - // - // } - // }); - // } - } - - private void createBasePanels() { - Container c = new Container(); - c.setLayout(new BorderLayout()); - - centerPanel = new JPanel(new BorderLayout()); - c.add(centerPanel, BorderLayout.CENTER); - - topPanel = new JPanel(); - topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.Y_AXIS)); - c.add(topPanel, BorderLayout.NORTH); - - leftPanel = new JPanel(); - leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.X_AXIS)); - c.add(leftPanel, BorderLayout.WEST); - - bottomPanel = new JPanel(); - bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.Y_AXIS)); - c.add(bottomPanel, BorderLayout.SOUTH); - - rightPanel = new JPanel(); - rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.X_AXIS)); - c.add(rightPanel, BorderLayout.EAST); - - setContentPane(c); - } - - private JMenuBar getMainMenuBar() { - if (mainMenuBar == null) { - mainMenuBar = new JMenuBar(); - setJMenuBar(mainMenuBar); - } - return mainMenuBar; - } - - // IView - - @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); - } - - @Override - public boolean editProperties(List properties, - Set defaultedProperties) { - PropertyEditorDialog editor = DialogFactory.getInstance().createPropertyEditorDialog( - properties, "Edit Selection"); - editor.setVisible(true); - defaultedProperties.addAll(editor.getDefaultedProperties()); - return ButtonDialog.OK.equals(editor.getSelectedButtonCaption()); - } - - 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) { - case SwingConstants.TOP: - topPanel.add(component); - break; - case SwingConstants.LEFT: - leftPanel.add(component); - break; - case SwingConstants.BOTTOM: - bottomPanel.add(component); - break; - case SwingConstants.RIGHT: - rightPanel.add(component); - break; - case SwingConstants.CENTER: - centerPanel.add(component, BorderLayout.CENTER); - break; - default: - throw new BadPositionException(); - } - pack(); - } - - @Override - 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); - if (action == null) { - menu.addSeparator(); - } else { - Boolean isCheckBox = (Boolean) action.getValue(IView.CHECK_BOX_MENU_ITEM); - String groupName = (String) action.getValue(IView.RADIO_BUTTON_GROUP_KEY); - if (isCheckBox != null && isCheckBox) { - menu.add(new JCheckBoxMenuItem(action)); - } else if (groupName != null) { - ButtonGroup group; - if (buttonGroupMap.containsKey(groupName)) { - group = buttonGroupMap.get(groupName); - } else { - group = new ButtonGroup(); - buttonGroupMap.put(groupName, group); - } - JRadioButtonMenuItem item = new JRadioButtonMenuItem(action); - group.add(item); - menu.add(item); - } else { - menu.add(action); - } - } - } - - @Override - public void injectSubmenu(String name, Icon icon, String parentMenuName) { - LOG.info(String.format("injectSubmenu(%s, icon, %s)", name, parentMenuName)); - JMenu menu = findOrCreateMenu(parentMenuName); - JMenu submenu = new JMenu(name); - submenu.setIcon(icon); - menu.add(submenu); - menuMap.put(name, submenu); - } - - @Override - public void executeBackgroundTask(final ITask task) { - setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - SwingWorker worker = new SwingWorker() { - - @Override - protected T doInBackground() throws Exception { - return task.doInBackground(); - } - - @Override - protected void done() { - try { - T result = get(); - task.complete(result); - } catch (Exception e) { - LOG.error("Task failed", e); - task.failed(e); - } - setCursor(Cursor.getDefaultCursor()); - } - }; - worker.execute(); - } - - @Override - public File promptFileSave() { - return DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.DIY.getFilter(), null, - FileFilterEnum.DIY.getExtensions()[0], null); - } - - class FramePlugin implements IPlugIn { - - private IPlugInPort plugInPort; - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.FILE_STATUS_CHANGED); - } - - @Override - public void processMessage(EventType eventType, Object... params) { - if (eventType == EventType.FILE_STATUS_CHANGED) { - String fileName = (String) params[0]; - if (fileName == null) { - fileName = "Untitled"; - } - String modified = (Boolean) params[1] ? " (modified)" : ""; - setTitle(String.format("DIYLC %s - %s %s", plugInPort - .getCurrentVersionNumber(), fileName, modified)); - } - } - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java deleted file mode 100644 index 7f7160bd..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/TemplateDialog.java +++ /dev/null @@ -1,289 +0,0 @@ -package org.diylc.swing.gui; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.File; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.List; -import java.util.Set; - -import javax.swing.BorderFactory; -import javax.swing.DefaultListCellRenderer; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JDialog; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextField; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; - -import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.DrawOption; -import org.diylc.common.IPlugInPort; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IView; -import org.diylc.presenter.Presenter; - -public class TemplateDialog extends JDialog { - - private static final long serialVersionUID = 1L; - - private static final Logger LOG = Logger.getLogger(TemplateDialog.class); - - private static final Dimension panelSize = new Dimension(400, 300); - public static final String SHOW_TEMPLATES_KEY = "showTemplatesAtStartup"; - - private IPlugInPort plugInPort; - - private JList fileList; - private JPanel canvasPanel; - private Presenter presenter; - private List files; - private JCheckBox showTemplatesBox; - private JPanel mainPanel; - private JButton loadButton; - private JPanel infoPanel; - - public TemplateDialog(JFrame owner, IPlugInPort plugInPort) { - super(owner, "Templates"); - setModal(true); - setResizable(false); - this.plugInPort = plugInPort; - this.presenter = new Presenter(new IView() { - - @Override - public int showConfirmDialog(String message, String title, int optionType, - int messageType) { - return JOptionPane.showConfirmDialog(TemplateDialog.this, message, title, - optionType, messageType); - } - - @Override - public void showMessage(String message, String title, int messageType) { - JOptionPane.showMessageDialog(TemplateDialog.this, message, title, messageType); - } - - @Override - public File promptFileSave() { - return null; - } - - @Override - public boolean editProperties(List properties, Set defaultedProperties) { - return false; - } - }); - // this.presenter.installPlugin(new IPlugIn() { - // - // @Override - // public void connect(IPlugInPort plugInPort) { - // } - // - // @Override - // public EnumSet getSubscribedEventTypes() { - // return EnumSet.of(EventType.REPAINT); - // } - // - // @Override - // public void processMessage(EventType eventType, Object... params) { - // if (eventType == EventType.REPAINT) { - // getCanvasPanel().repaint(); - // } - // } - // }); - setContentPane(getMainPanel()); - pack(); - setLocationRelativeTo(owner); - } - - public JPanel getMainPanel() { - if (mainPanel == null) { - mainPanel = new JPanel(new GridBagLayout()); - mainPanel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); - - GridBagConstraints c = new GridBagConstraints(); - c.gridx = 0; - c.gridy = 0; - c.weightx = 0; - c.weighty = 1; - c.weightx = 1; - c.gridwidth = 2; - c.fill = GridBagConstraints.BOTH; - c.insets = new Insets(0, 0, 4, 0); - mainPanel.add(getInfoPanel(), c); - - c.gridy = 1; - c.weightx = 0; - c.gridwidth = 1; - c.insets = new Insets(0, 0, 0, 0); - JScrollPane scrollPane = new JScrollPane(getFileList()); - mainPanel.add(scrollPane, c); - - c.gridx = 1; - c.weightx = 1; - - JPanel panel = new JPanel(new BorderLayout()); - panel.setBorder(scrollPane.getBorder()); - panel.add(getCanvasPanel(), BorderLayout.CENTER); - mainPanel.add(panel, c); - - c.gridx = 0; - c.gridy = 2; - c.weightx = 0; - c.weighty = 0; - c.anchor = GridBagConstraints.LAST_LINE_START; - c.fill = GridBagConstraints.NONE; - mainPanel.add(getShowTemplatesBox(), c); - - c.gridx = 1; - c.anchor = GridBagConstraints.LAST_LINE_END; - c.insets = new Insets(4, 0, 0, 0); - mainPanel.add(getLoadButton(), c); - } - return mainPanel; - } - - public JButton getLoadButton() { - if (loadButton == null) { - loadButton = new JButton("Load Template"); - loadButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - plugInPort.loadProject(presenter.getCurrentProject(), true); - dispose(); - } - }); - } - return loadButton; - } - - public JPanel getInfoPanel() { - if (infoPanel == null) { - infoPanel = new JPanel(); - infoPanel.setBackground(Color.decode("#FFFFCC")); - infoPanel.setBorder(new JTextField().getBorder()); - JLabel infoLabel = new JLabel( - "Templates are semi-product layouts that are used as a starting point for your projects.
" - + "Pick a templete in the left list and click \"Load Template\" to load it or close this dialog to continue.
" - + "You can create your own templates by placing a DIY file into diylc/templates directory."); - infoLabel.setOpaque(false); - infoPanel.add(infoLabel); - } - return infoPanel; - } - - public JList getFileList() { - if (fileList == null) { - fileList = new JList(getFiles().toArray()); - fileList.setPreferredSize(new Dimension(128, -1)); - fileList.setCellRenderer(new DefaultListCellRenderer() { - - private static final long serialVersionUID = 1L; - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, - boolean isSelected, boolean cellHasFocus) { - JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, - isSelected, cellHasFocus); - if (value instanceof File) { - label.setText(((File) value).getName()); - } - return label; - } - - }); - fileList.addListSelectionListener(new ListSelectionListener() { - - @Override - public void valueChanged(ListSelectionEvent e) { - File file = (File) fileList.getSelectedValue(); - if (file != null) { - presenter.loadProjectFromFile(file.getAbsolutePath()); - Dimension dim = presenter.getCanvasDimensions(true); - double xFactor = panelSize.getWidth() / dim.getWidth(); - double yFactor = panelSize.getHeight() / dim.getHeight(); - presenter.setZoomLevel(Math.min(xFactor, yFactor)); - getCanvasPanel().repaint(); - } - } - }); - fileList.setSelectedIndex(0); - } - return fileList; - } - - public JCheckBox getShowTemplatesBox() { - if (showTemplatesBox == null) { - showTemplatesBox = new JCheckBox("Show this dialog at startup"); - showTemplatesBox.setSelected(true); - showTemplatesBox.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - ConfigurationManager.getInstance().writeValue(SHOW_TEMPLATES_KEY, - showTemplatesBox.isSelected()); - } - }); - } - return showTemplatesBox; - } - - public List getFiles() { - if (files == null) { - files = new ArrayList(); - File dir = new File("templates"); - if (dir.exists()) { - for (File f : dir.listFiles()) { - if (f.isFile() && f.getName().toLowerCase().endsWith(".diy")) { - files.add(f); - } - } - } - LOG.debug("Found " + files.size() + " templates"); - } - return files; - } - - public JPanel getCanvasPanel() { - if (canvasPanel == null) { - canvasPanel = new JPanel() { - - private static final long serialVersionUID = 1L; - - @Override - public void paint(Graphics g) { - super.paint(g); - // Graphics2D g2d = (Graphics2D) g; - // AffineTransform transform = g2d.getTransform(); - presenter.draw((Graphics2D) g, EnumSet.of(DrawOption.ZOOM, - DrawOption.ANTIALIASING), null); - // g2d.setTransform(transform); - // Rectangle rect = canvasPanel.getBounds(); - // BorderFactory.createEtchedBorder().paintBorder(canvasPanel, - // g, 0, 0, - // (int) rect.getWidth(), (int) rect.getHeight()); - } - }; - canvasPanel.setBackground(Color.white); - canvasPanel.setPreferredSize(panelSize); - } - return canvasPanel; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/components/OverwritePromptFileChooser.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/components/OverwritePromptFileChooser.java deleted file mode 100644 index 514d47eb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/components/OverwritePromptFileChooser.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.diylc.swing.gui.components; - -import java.io.File; - -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; -import javax.swing.filechooser.FileFilter; - -public class OverwritePromptFileChooser extends JFileChooser { - - private static final long serialVersionUID = 1L; - private String defaultExtension; - - public void approveSelection() { - File lSelectedFile; - if (getSelectedFile().getAbsolutePath().contains(".")) { - lSelectedFile = getSelectedFile(); - } else { - lSelectedFile = new File(getSelectedFile().getAbsoluteFile() + "." + defaultExtension); - } - - if (lSelectedFile != null && lSelectedFile.exists()) { - int lResponse = JOptionPane.showConfirmDialog(this, lSelectedFile.getAbsolutePath() - + " already exists.\nDo you " + "want to replace it?", "Warning", - JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); - - if (lResponse != JOptionPane.YES_OPTION) { - return; - } - } - super.approveSelection(); - } - - public void setFileFilter(FileFilter filter, String defaultExtension) { - this.defaultExtension = defaultExtension; - super.setFileFilter(filter); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/BooleanEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/BooleanEditor.java deleted file mode 100644 index c8842b26..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/BooleanEditor.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JCheckBox; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -public class BooleanEditor extends JCheckBox { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - public BooleanEditor(final PropertyWrapper property) { - super(); - setSelected((Boolean) property.getValue()); - addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - property.setChanged(true); - setBackground(oldBg); - property.setValue(isSelected()); - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ByteEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ByteEditor.java deleted file mode 100644 index 05d72207..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ByteEditor.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; - -import javax.swing.JSlider; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -public class ByteEditor extends JSlider { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - public ByteEditor(final PropertyWrapper property) { - super(); - setMinimum(0); - setMaximum(127); - setValue((Byte) property.getValue()); - addChangeListener(new ChangeListener() { - - @Override - public void stateChanged(ChangeEvent e) { - property.setChanged(true); - setBackground(oldBg); - property.setValue(new Integer(getValue()).byteValue()); - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ColorEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ColorEditor.java deleted file mode 100644 index 24e16ef2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ColorEditor.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.Cursor; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; - -import javax.swing.BorderFactory; -import javax.swing.JColorChooser; -import javax.swing.JLabel; -import javax.swing.SwingConstants; - -import org.diylc.common.PropertyWrapper; - -public class ColorEditor extends JLabel { - - private static final long serialVersionUID = 1L; - - private static final String title = "Click to edit"; - - public ColorEditor(final PropertyWrapper property) { - super(property.isUnique() ? title : ("(multi value) " + title)); - setOpaque(true); - setHorizontalAlignment(SwingConstants.CENTER); - setBorder(BorderFactory.createEtchedBorder()); - setBackground((Color) property.getValue()); - setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - addMouseListener(new MouseAdapter() { - - @Override - public void mouseClicked(MouseEvent e) { - Color newColor = JColorChooser.showDialog(ColorEditor.this, "Choose Color", - getBackground()); - if (newColor != null) { - property.setChanged(true); - property.setValue(newColor); - setBackground(newColor); - } - } - }); - } - - @Override - public void setBackground(Color bg) { - if (bg.getRed() < 127 || bg.getBlue() < 127 || bg.getGreen() < 127) { - setForeground(Color.white); - } else { - setForeground(Color.black); - } - super.setBackground(bg); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/EnumEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/EnumEditor.java deleted file mode 100644 index d53bf2c6..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/EnumEditor.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; - -import javax.swing.DefaultComboBoxModel; -import javax.swing.JComboBox; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -public class EnumEditor extends JComboBox { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - private final PropertyWrapper property; - - public EnumEditor(final PropertyWrapper property) { - this.property = property; - Object[] values = property.getType().getEnumConstants(); - setModel(new DefaultComboBoxModel(values)); - setSelectedItem(property.getValue()); - addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - property.setChanged(true); - setBackground(oldBg); - EnumEditor.this.property.setValue(e.getItem()); - } - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/FieldEditorFactory.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/FieldEditorFactory.java deleted file mode 100644 index 1eca8238..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/FieldEditorFactory.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.Component; -import java.awt.Font; - -import javax.swing.ImageIcon; -import javax.swing.JLabel; - -import org.apache.log4j.Logger; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.measures.AbstractMeasure; - -public class FieldEditorFactory { - - private static final Logger LOG = Logger.getLogger(FieldEditorFactory.class); - - public static Component createFieldEditor(PropertyWrapper property) { - if (property.getType().equals(String.class)) { - StringEditor editor = new StringEditor(property); - return editor; - } - if (property.getType().equals(Color.class)) { - ColorEditor editor = new ColorEditor(property); - return editor; - } - if (AbstractMeasure.class.isAssignableFrom(property.getType())) { - MeasureEditor editor = new MeasureEditor(property); - return editor; - } - if (ImageIcon.class.isAssignableFrom(property.getType())) { - ImageEditor editor = new ImageEditor(property); - return editor; - } - if (property.getType().isEnum()) { - EnumEditor editor = new EnumEditor(property); - return editor; - } - if (Byte.class.isAssignableFrom(property.getType()) - || byte.class.isAssignableFrom(property.getType())) { - ByteEditor editor = new ByteEditor(property); - return editor; - } - if (Boolean.class.isAssignableFrom(property.getType()) - || boolean.class.isAssignableFrom(property.getType())) { - BooleanEditor editor = new BooleanEditor(property); - return editor; - } - if (Font.class.isAssignableFrom(property.getType())) { - FontEditor editor = new FontEditor(property); - return editor; - } - if (Integer.class.isAssignableFrom(property.getType()) - || int.class.isAssignableFrom(property.getType())) { - IntEditor editor = new IntEditor(property); - return editor; - } - LOG.error("Unrecognized parameter type: " + property.getType().getName()); - return new JLabel("Unrecognized"); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/FontEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/FontEditor.java deleted file mode 100644 index cc37c5b9..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/FontEditor.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; -import java.awt.Font; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; - -import org.diylc.common.PropertyWrapper; -import org.diylc.swingframework.FontChooserComboBox; -import org.diylc.utils.Constants; - -public class FontEditor extends FontChooserComboBox { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - private final PropertyWrapper property; - - public FontEditor(final PropertyWrapper property) { - this.property = property; - setSelectedItem(((Font) property.getValue()).getName()); - addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - property.setChanged(true); - setBackground(oldBg); - Font oldFont = (Font) FontEditor.this.property.getValue(); - Font newFont = new Font(getSelectedItem().toString(), oldFont.getStyle(), - oldFont.getSize()); - FontEditor.this.property.setValue(newFont); - } - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ImageEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ImageEditor.java deleted file mode 100644 index 11bdb574..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ImageEditor.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.event.ActionListener; -import java.io.File; - -import javax.swing.ImageIcon; -import javax.swing.JButton; - -import org.diylc.common.PropertyWrapper; -import org.diylc.swing.gui.DialogFactory; -import org.diylc.swing.plugins.file.FileFilterEnum; - -public class ImageEditor extends JButton { - - private static final long serialVersionUID = 1L; - - private static final String title = "Click to load image file"; - - public ImageEditor(final PropertyWrapper property) { - super(property.isUnique() ? title : ("(multi value) " + title)); - addActionListener(new ActionListener() { - - @Override - public void actionPerformed(java.awt.event.ActionEvent e) { - File file = DialogFactory.getInstance().showOpenDialog( - FileFilterEnum.IMAGES.getFilter(), null, - FileFilterEnum.IMAGES.getExtensions()[0], null); - if (file != null) { - property.setChanged(true); - ImageIcon image = new ImageIcon(file.getAbsolutePath()); - property.setValue(image); - } - } - }); - } - - // @Override - // public void setBackground(Color bg) { - // if (bg.getRed() < 127 || bg.getBlue() < 127 || bg.getGreen() < 127) { - // setForeground(Color.white); - // } else { - // setForeground(Color.black); - // } - // super.setBackground(bg); - // } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/IntEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/IntEditor.java deleted file mode 100644 index 9c316d87..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/IntEditor.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; - -import org.diylc.common.PropertyWrapper; -import org.diylc.swingframework.DoubleTextField; -import org.diylc.utils.Constants; - -public class IntEditor extends DoubleTextField { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - public IntEditor(final PropertyWrapper property) { - setLayout(new BorderLayout()); - setValue((double) (Integer) property.getValue()); - addPropertyChangeListener(DoubleTextField.VALUE_PROPERTY, new PropertyChangeListener() { - - @Override - public void propertyChange(PropertyChangeEvent evt) { - property.setChanged(true); - setBackground(oldBg); - property.setValue(((Double) evt.getNewValue()).intValue()); - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/MeasureEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/MeasureEditor.java deleted file mode 100644 index 0f5d8ba1..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/MeasureEditor.java +++ /dev/null @@ -1,142 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Container; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyListener; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import javax.swing.JComboBox; - -import org.diylc.common.PropertyWrapper; -import org.diylc.core.measures.AbstractMeasure; -import org.diylc.core.measures.Unit; -import org.diylc.swingframework.DoubleTextField; -import org.diylc.utils.Constants; - -public class MeasureEditor extends Container { - - private static final long serialVersionUID = 1L; - - private Color oldBg; - private DoubleTextField valueField; - private JComboBox unitBox; - - @SuppressWarnings("unchecked") - public MeasureEditor(final PropertyWrapper property) { - setLayout(new BorderLayout()); - final AbstractMeasure measure = ((AbstractMeasure) property.getValue()); - valueField = new DoubleTextField(measure.getValue()); - oldBg = valueField.getBackground(); - valueField.addPropertyChangeListener(DoubleTextField.VALUE_PROPERTY, - new PropertyChangeListener() { - - @Override - public void propertyChange(PropertyChangeEvent evt) { - try { - Constructor ctor = measure.getClass() - .getConstructors()[0]; - AbstractMeasure oldMeasure = (AbstractMeasure) property.getValue(); - AbstractMeasure newMeasure = (AbstractMeasure) ctor - .newInstance((Double) evt.getNewValue(), - oldMeasure.getUnit()); - property.setValue(newMeasure); - property.setChanged(true); - valueField.setBackground(oldBg); - unitBox.setBackground(oldBg); - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - }); - add(valueField, BorderLayout.CENTER); - try { - Method method = measure.getUnit().getClass().getMethod("values"); - unitBox = new JComboBox((Object[]) method.invoke(measure.getUnit())); - unitBox.setSelectedItem(measure.getUnit()); - unitBox.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent evt) { - try { - Constructor ctor = measure.getClass().getConstructors()[0]; - AbstractMeasure oldMeasure = (AbstractMeasure) property.getValue(); - AbstractMeasure newMeasure = (AbstractMeasure) ctor - .newInstance(oldMeasure.getValue(), - (Enum) unitBox - .getSelectedItem()); - property.setValue(newMeasure); - property.setChanged(true); - valueField.setBackground(oldBg); - unitBox.setBackground(oldBg); - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - }); - add(unitBox, BorderLayout.EAST); - - if (!property.isUnique()) { - valueField.setBackground(Constants.MULTI_VALUE_COLOR); - unitBox.setBackground(Constants.MULTI_VALUE_COLOR); - } - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - @Override - public void requestFocus() { - this.valueField.requestFocus(); - } - - @Override - public boolean requestFocusInWindow() { - return this.valueField.requestFocusInWindow(); - } - - @Override - public synchronized void addKeyListener(KeyListener l) { - this.valueField.addKeyListener(l); - this.unitBox.addKeyListener(l); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java deleted file mode 100644 index 6717280a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java +++ /dev/null @@ -1,190 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.swing.BorderFactory; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; - -import org.apache.log4j.Logger; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.ValidationException; -import org.diylc.swingframework.ButtonDialog; - -public class PropertyEditorDialog extends ButtonDialog { - - private static final Logger LOG = Logger - .getLogger(PropertyEditorDialog.class); - - private static final long serialVersionUID = 1L; - - private static final String DEFAULT_BOX_TOOLTIP = "If this box is checked application will use the current value as a
default when creating new components of the same type"; - - private List properties; - private Set defaultedProperties; - private Component componentToFocus = null; - - public PropertyEditorDialog(JFrame owner, List properties, - String title) { - super(owner, title, - new String[] { ButtonDialog.OK, ButtonDialog.CANCEL }); - - LOG.debug("Creating property editor for: " + properties); - - this.properties = properties; - this.defaultedProperties = new HashSet(); - - setMinimumSize(new Dimension(240, 40)); - - layoutGui(); - setLocationRelativeTo(owner); - // - // setModal(true); - // - // JPanel holderPanel = new JPanel(); - // holderPanel.setLayout(new BorderLayout()); - // holderPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - // - // holderPanel.add(createEditorFields(), BorderLayout.CENTER); - // holderPanel.add(createButtonPanel(), BorderLayout.SOUTH); - // - // setContentPane(holderPanel); - // - // - // pack(); - // setLocationRelativeTo(owner); - } - - @Override - protected boolean validateInput(String button) { - if (button.equals(ButtonDialog.OK)) { - for (PropertyWrapper property : properties) { - try { - property.getValidator().validate(property.getValue()); - } catch (ValidationException ve) { - JOptionPane.showMessageDialog(PropertyEditorDialog.this, - "Input error for \"" + property.getName() + "\": " - + ve.getMessage(), "Error", - JOptionPane.ERROR_MESSAGE); - return false; - } - } - } - return true; - } - - private JPanel createEditorFields() { - JPanel editorPanel = new JPanel(new GridBagLayout()); - editorPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - - GridBagConstraints gbc = new GridBagConstraints(); - - gbc.gridy = 0; - gbc.insets = new Insets(2, 2, 2, 2); - gbc.anchor = GridBagConstraints.LINE_START; - - for (PropertyWrapper property : properties) { - gbc.gridx = 0; - gbc.fill = GridBagConstraints.NONE; - gbc.weightx = 0; - - editorPanel.add(new JLabel(property.getName() + ": "), gbc); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1; - - Component editor = FieldEditorFactory.createFieldEditor(property); - editor.addKeyListener(new KeyAdapter() { - - @Override - public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_ENTER) { - getButton(OK).doClick(); - } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { - getButton(CANCEL).doClick(); - } - } - }); - editorPanel.add(editor, gbc); - - if (property.isDefaultable()) { - gbc.gridx = 2; - gbc.fill = GridBagConstraints.NONE; - gbc.weightx = 0; - - editorPanel.add(createDefaultCheckBox(property), gbc); - } - - // Make value field focused - if (property.getName().equalsIgnoreCase("value")) { - componentToFocus = editor; - } - - gbc.gridy++; - } - - return editorPanel; - } - - private JCheckBox createDefaultCheckBox(final PropertyWrapper property) { - final JCheckBox checkBox = new JCheckBox(); - checkBox.setToolTipText(DEFAULT_BOX_TOOLTIP); - checkBox.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - if (checkBox.isSelected()) { - defaultedProperties.add(property); - } else { - defaultedProperties.remove(property); - } - } - }); - return checkBox; - } - - public Set getDefaultedProperties() { - return defaultedProperties; - } - - public static boolean showFor(JFrame owner, - List properties, String title) { - PropertyEditorDialog editor = new PropertyEditorDialog(owner, - properties, title); - editor.setVisible(true); - if (OK.equals(editor.getSelectedButtonCaption())) { - return true; - } - return false; - } - - @Override - public void setVisible(boolean b) { - if (b && componentToFocus != null) { - componentToFocus.requestFocusInWindow(); - componentToFocus = null; - } - super.setVisible(b); - } - - @Override - protected JComponent getMainComponent() { - return createEditorFields(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/StringEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/StringEditor.java deleted file mode 100644 index 3dbf9e16..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/StringEditor.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.diylc.swing.gui.editor; - -import java.awt.Color; - -import javax.swing.JTextField; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; - -import org.diylc.common.PropertyWrapper; -import org.diylc.utils.Constants; - -public class StringEditor extends JTextField { - - private static final long serialVersionUID = 1L; - - private Color oldBg = getBackground(); - - private final PropertyWrapper property; - - public StringEditor(PropertyWrapper property) { - super(property.getValue() == null ? "" : (String) property.getValue()); - this.property = property; - getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void changedUpdate(DocumentEvent e) { - textChanged(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - textChanged(); - } - - @Override - public void removeUpdate(DocumentEvent e) { - textChanged(); - } - }); - if (!property.isUnique()) { - setBackground(Constants.MULTI_VALUE_COLOR); - } - } - - private void textChanged() { - property.setChanged(true); - setBackground(oldBg); - property.setValue(getText()); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java deleted file mode 100644 index 64d51989..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.diylc.swing.plugins.autosave; - -import java.io.File; -import java.util.EnumSet; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import javax.swing.SwingUtilities; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IView; - -public class AutoSavePlugin implements IPlugIn { - - private static final String AUTO_SAVE_FILE_NAME = "autoSave.diy"; - - protected static final long autoSaveFrequency = 60 * 1000; - - private ExecutorService executor; - - private IPlugInPort plugInPort; - private IView view; - private long lastSave = 0; - - public AutoSavePlugin(IView view) { - this.view = view; - executor = Executors.newSingleThreadExecutor(); - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - boolean wasAbnormal = ConfigurationManager.getInstance() - .readBoolean(IPlugInPort.ABNORMAL_EXIT_KEY, false); - if (wasAbnormal && new File(AUTO_SAVE_FILE_NAME).exists()) { - int decision = view - .showConfirmDialog( - "It appears that aplication was not closed normally in the previous session. Do you want to open the last auto-saved file?", - "Auto-Save", IView.YES_NO_OPTION, - IView.QUESTION_MESSAGE); - if (decision == IView.YES_OPTION) { - AutoSavePlugin.this.plugInPort - .loadProjectFromFile(AUTO_SAVE_FILE_NAME); - } - } - // Set abnormal flag to true, GUI side of the app must flip to - // false when app closes regularly. - ConfigurationManager.getInstance().writeValue( - IPlugInPort.ABNORMAL_EXIT_KEY, true); - } - }); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.PROJECT_MODIFIED); - } - - @Override - public void processMessage(EventType eventType, Object... params) { - if (eventType == EventType.PROJECT_MODIFIED) { - if (System.currentTimeMillis() - lastSave > autoSaveFrequency) { - executor.execute(new Runnable() { - - @Override - public void run() { - Thread.currentThread().setPriority(Thread.MIN_PRIORITY); - - lastSave = System.currentTimeMillis(); - plugInPort.saveProjectToFile(AUTO_SAVE_FILE_NAME, true); - } - }); - } - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasGestureListener.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasGestureListener.java deleted file mode 100644 index 504360a8..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasGestureListener.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.dnd.DragGestureEvent; -import java.awt.dnd.DragGestureListener; - -import org.diylc.common.IPlugInPort; - -/** - * {@link DragGestureListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class CanvasGestureListener implements DragGestureListener { - - private IPlugInPort presenter; - - public CanvasGestureListener(IPlugInPort presenter) { - super(); - this.presenter = presenter; - } - - @Override - public void dragGestureRecognized(DragGestureEvent dge) { - presenter.dragStarted(dge.getDragOrigin(), dge.getDragAction()); - dge.startDrag(presenter.getCursorAt(dge.getDragOrigin()), new EmptyTransferable(), - new CanvasSourceListener(presenter)); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java deleted file mode 100644 index a4271c7b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPanel.java +++ /dev/null @@ -1,219 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.GraphicsConfiguration; -import java.awt.GraphicsDevice; -import java.awt.GraphicsEnvironment; -import java.awt.Image; -import java.awt.Insets; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.dnd.Autoscroll; -import java.awt.dnd.DnDConstants; -import java.awt.dnd.DragSource; -import java.awt.dnd.DropTarget; -import java.awt.event.ActionEvent; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.image.VolatileImage; -import java.util.EnumSet; -import java.util.Set; - -import javax.swing.AbstractAction; -import javax.swing.JComponent; -import javax.swing.KeyStroke; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.DrawOption; -import org.diylc.common.IPlugInPort; - -/** - * GUI class used to draw onto. - * - * @author Branislav Stojkovic - */ -class CanvasPanel extends JComponent implements Autoscroll { - - private static final long serialVersionUID = 1L; - - private IPlugInPort plugInPort; - - private Image bufferImage; - private GraphicsConfiguration screenGraphicsConfiguration; - - public static boolean USE_HARDWARE_ACCELLERATION = false; - - // static final EnumSet DRAW_OPTIONS = - // EnumSet.of(DrawOption.GRID, - // DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.CONTROL_POINTS); - // static final EnumSet DRAW_OPTIONS_ANTI_ALIASING = - // EnumSet.of(DrawOption.GRID, - // DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.ANTIALIASING, - // DrawOption.CONTROL_POINTS); - - public CanvasPanel(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - setFocusable(true); - initializeListeners(); - initializeDnD(); - GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment - .getLocalGraphicsEnvironment(); - GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices(); - screenGraphicsConfiguration = devices[0].getDefaultConfiguration(); - - initializeActions(); - } - - public void invalidateCache() { - bufferImage = null; - } - - private void initializeDnD() { - // Initialize drag source recognizer. - DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer( - this, - DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK, - new CanvasGestureListener(plugInPort)); - // Initialize drop target. - new DropTarget(this, DnDConstants.ACTION_COPY_OR_MOVE, - new CanvasTargetListener(plugInPort), true); - } - - private void initializeActions() { - getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put( - KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "clearSlot"); - getActionMap().put("clearSlot", new AbstractAction() { - - private static final long serialVersionUID = 1L; - - @Override - public void actionPerformed(ActionEvent e) { - CanvasPanel.this.plugInPort.setNewComponentTypeSlot(null); - } - }); - } - - protected void createBufferImage() { - if (USE_HARDWARE_ACCELLERATION) { - bufferImage = screenGraphicsConfiguration - .createCompatibleVolatileImage(getWidth(), getHeight()); - ((VolatileImage) bufferImage).validate(screenGraphicsConfiguration); - } else { - bufferImage = createImage(getWidth(), getHeight()); - } - } - - @Override - public void paint(Graphics g) { - if (plugInPort == null) { - return; - } - if (bufferImage == null) { - createBufferImage(); - } - Graphics2D g2d = (Graphics2D) bufferImage.getGraphics(); - g2d.setClip(getVisibleRect()); - Set drawOptions = EnumSet.of(DrawOption.GRID, - DrawOption.SELECTION, DrawOption.ZOOM, - DrawOption.CONTROL_POINTS); - if (ConfigurationManager.getInstance().readBoolean( - IPlugInPort.ANTI_ALIASING_KEY, true)) { - drawOptions.add(DrawOption.ANTIALIASING); - } - if (ConfigurationManager.getInstance().readBoolean( - IPlugInPort.OUTLINE_KEY, false)) { - drawOptions.add(DrawOption.OUTLINE_MODE); - } - plugInPort.draw(g2d, drawOptions, null); - if (USE_HARDWARE_ACCELLERATION) { - VolatileImage volatileImage = (VolatileImage) bufferImage; - do { - try { - if (volatileImage.contentsLost()) { - createBufferImage(); - } - // int validation = - // volatileImage.validate(screenGraphicsConfiguration); - // if (validation == VolatileImage.IMAGE_INCOMPATIBLE) { - // createBufferImage(); - // } - g.drawImage(bufferImage, 0, 0, this); - } catch (NullPointerException e) { - createBufferImage(); - } - } while (volatileImage == null || volatileImage.contentsLost()); - } else { - g.drawImage(bufferImage, 0, 0, this); - // bufferImage.flush(); - } - g2d.dispose(); - } - - @Override - public void update(Graphics g) { - paint(g); - } - - private void initializeListeners() { - addComponentListener(new ComponentAdapter() { - - @Override - public void componentResized(ComponentEvent e) { - invalidateCache(); - invalidate(); - } - }); - // addKeyListener(new KeyAdapter() { - // - // @Override - // public void keyPressed(KeyEvent e) { - // if (e.getKeyCode() == KeyEvent.VK_DELETE) { - // plugInPort.deleteSelectedComponents(); - // } - // // plugInPort.mouseMoved(getMousePosition(), e.isControlDown(), - // // e.isShiftDown(), e - // // .isAltDown()); - // } - // }); - addMouseMotionListener(new MouseAdapter() { - - @Override - public void mouseMoved(MouseEvent e) { - setCursor(plugInPort.getCursorAt(e.getPoint())); - plugInPort.mouseMoved(e.getPoint(), e.isControlDown(), e - .isShiftDown(), e.isAltDown()); - } - }); - addMouseListener(new MouseAdapter() { - - @Override - public void mouseClicked(MouseEvent e) { - if (e.getButton() == MouseEvent.BUTTON1) { - plugInPort.mouseClicked(e.getPoint(), e.getButton(), e - .isControlDown(), e.isShiftDown(), e.isAltDown(), e - .getClickCount()); - } - } - }); - } - - // Autoscroll - - @Override - public void autoscroll(Point cursorLocn) { - scrollRectToVisible(new Rectangle(cursorLocn.x - 15, cursorLocn.y - 15, - 30, 30)); - } - - @Override - public Insets getAutoscrollInsets() { - Rectangle rect = getVisibleRect(); - return new Insets(rect.y - 15, rect.x - 15, rect.y + rect.height + 15, - rect.x + rect.width + 15); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java deleted file mode 100644 index 3833ef83..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ /dev/null @@ -1,449 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Dimension; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.datatransfer.Transferable; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseWheelEvent; -import java.awt.event.MouseWheelListener; -import java.util.ArrayList; -import java.util.EnumSet; -import java.util.List; - -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import javax.swing.JPopupMenu; -import javax.swing.SwingConstants; - -import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.appframework.miscutils.IConfigListener; -import org.diylc.common.BadPositionException; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.CreationMethod; -import org.diylc.core.ExpansionMode; -import org.diylc.core.IDIYComponent; -import org.diylc.core.measures.Size; -import org.diylc.core.measures.SizeUnit; -import org.diylc.images.IconLoader; -import org.diylc.presenter.Presenter; -import org.diylc.swing.ActionFactory; -import org.diylc.swing.ISwingUI; -import org.diylc.swing.plugins.edit.ComponentTransferable; -import org.diylc.swing.plugins.file.ProjectDrawingProvider; -import org.diylc.swingframework.ruler.IRulerListener; -import org.diylc.swingframework.ruler.RulerScrollPane; - -public class CanvasPlugin implements IPlugIn, ClipboardOwner { - - private static final Logger LOG = Logger.getLogger(CanvasPlugin.class); - - private RulerScrollPane scrollPane; - private CanvasPanel canvasPanel; - private JPopupMenu popupMenu; - private JMenu selectionMenu; - private JMenu expandMenu; - - private ActionFactory.CutAction cutAction; - private ActionFactory.CopyAction copyAction; - private ActionFactory.PasteAction pasteAction; - private ActionFactory.EditSelectionAction editSelectionAction; - private ActionFactory.DeleteSelectionAction deleteSelectionAction; - private ActionFactory.GroupAction groupAction; - private ActionFactory.UngroupAction ungroupAction; - private ActionFactory.SendToBackAction sendToBackAction; - private ActionFactory.BringToFrontAction bringToFrontAction; - private ActionFactory.ExpandSelectionAction expandSelectionAllAction; - private ActionFactory.ExpandSelectionAction expandSelectionImmediateAction; - private ActionFactory.ExpandSelectionAction expandSelectionSameTypeAction; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - private Clipboard clipboard; - - private double zoomLevel = 1; - - public CanvasPlugin(ISwingUI swingUI) { - this.swingUI = swingUI; - clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - try { - swingUI.injectGUIComponent(getScrollPane(), SwingConstants.CENTER); - } catch (BadPositionException e) { - LOG.error("Could not install canvas plugin", e); - } - } - - public CanvasPanel getCanvasPanel() { - if (canvasPanel == null) { - canvasPanel = new CanvasPanel(plugInPort); - canvasPanel.addMouseListener(new MouseAdapter() { - - @Override - public void mousePressed(MouseEvent e) { - canvasPanel.requestFocus(); - } - - @Override - public void mouseReleased(MouseEvent e) { - if (plugInPort.getNewComponentTypeSlot() != null && plugInPort.getNewComponentTypeSlot().getCreationMethod() == CreationMethod.SINGLE_CLICK) { - plugInPort.mouseClicked(e.getPoint(), e.getButton(), - false, false, false, e.getClickCount()); - } else if (e.isPopupTrigger()) { - // Enable actions. - boolean enabled = !plugInPort.getSelectedComponents() - .isEmpty(); - getCutAction().setEnabled(enabled); - getCopyAction().setEnabled(enabled); - try { - getPasteAction() - .setEnabled( - clipboard - .isDataFlavorAvailable(ComponentTransferable.listFlavor)); - } catch (Exception ex) { - getPasteAction().setEnabled(false); - } - getEditSelectionAction().setEnabled(enabled); - getDeleteSelectionAction().setEnabled(enabled); - getExpandSelectionAllAction().setEnabled(enabled); - getExpandSelectionImmediateAction().setEnabled(enabled); - getExpandSelectionSameTypeAction().setEnabled(enabled); - getGroupAction().setEnabled(enabled); - getUngroupAction().setEnabled(enabled); - getSendToBackAction().setEnabled(enabled); - getBringToFrontAction().setEnabled(enabled); - - showPopupAt(e.getX(), e.getY()); - } - } - }); - - canvasPanel.addKeyListener(new KeyAdapter() { - - @Override - public void keyPressed(KeyEvent e) { - if (plugInPort.keyPressed(e.getKeyCode(), - e.isControlDown(), e.isShiftDown(), e.isAltDown())) { - e.consume(); - } - } - }); - } - return canvasPanel; - } - - private RulerScrollPane getScrollPane() { - if (scrollPane == null) { - scrollPane = new RulerScrollPane(getCanvasPanel(), - new ProjectDrawingProvider(plugInPort, true, false), - new Size(1d, SizeUnit.cm).convertToPixels(), new Size(1d, - SizeUnit.in).convertToPixels()); - boolean metric = ConfigurationManager.getInstance().readBoolean( - Presenter.METRIC_KEY, true); - boolean wheelZoom = ConfigurationManager.getInstance().readBoolean( - IPlugInPort.WHEEL_ZOOM_KEY, false); - ConfigurationManager.getInstance().addConfigListener( - IPlugInPort.WHEEL_ZOOM_KEY, new IConfigListener() { - - @Override - public void valueChanged(String key, Object value) { - scrollPane - .setWheelScrollingEnabled(!(Boolean) value); - } - }); - scrollPane.setMetric(metric); - scrollPane.setWheelScrollingEnabled(!wheelZoom); - scrollPane.addUnitListener(new IRulerListener() { - - @Override - public void unitsChanged(boolean isMetric) { - plugInPort.setMetric(isMetric); - } - }); - scrollPane.addMouseWheelListener(new MouseWheelListener() { - - @Override - public void mouseWheelMoved(MouseWheelEvent e) { - boolean wheelZoom = ConfigurationManager.getInstance() - .readBoolean(IPlugInPort.WHEEL_ZOOM_KEY, false); - if (!wheelZoom) { - return; - } - double d = plugInPort.getZoomLevel(); - Double[] availableZoomLevels = plugInPort - .getAvailableZoomLevels(); - if (e.getWheelRotation() > 0) { - int i = availableZoomLevels.length - 1; - while (i > 0 && availableZoomLevels[i] >= d) { - i--; - } - plugInPort.setZoomLevel(availableZoomLevels[i]); - } else { - int i = 0; - while (i < availableZoomLevels.length - 1 - && availableZoomLevels[i] <= d) { - i++; - } - plugInPort.setZoomLevel(availableZoomLevels[i]); - } - } - }); - } - return scrollPane; - } - - private void showPopupAt(int x, int y) { - updateSelectionMenu(x, y); - getPopupMenu().show(canvasPanel, x, y); - } - - public JPopupMenu getPopupMenu() { - if (popupMenu == null) { - popupMenu = new JPopupMenu(); - popupMenu.add(getSelectionMenu()); - popupMenu.addSeparator(); - popupMenu.add(getCutAction()); - popupMenu.add(getCopyAction()); - popupMenu.add(getPasteAction()); - popupMenu.addSeparator(); - popupMenu.add(getEditSelectionAction()); - popupMenu.add(getDeleteSelectionAction()); - popupMenu.add(getGroupAction()); - popupMenu.add(getUngroupAction()); - popupMenu.add(getSendToBackAction()); - popupMenu.add(getBringToFrontAction()); - popupMenu.add(getExpandMenu()); - popupMenu.addSeparator(); - popupMenu.add(ActionFactory.getInstance().createEditProjectAction( - plugInPort)); - } - return popupMenu; - } - - public JMenu getSelectionMenu() { - if (selectionMenu == null) { - selectionMenu = new JMenu("Select"); - selectionMenu.setIcon(IconLoader.ElementsSelection.getIcon()); - } - return selectionMenu; - } - - public JMenu getExpandMenu() { - if (expandMenu == null) { - expandMenu = new JMenu("Expand Selection"); - expandMenu.setIcon(IconLoader.BranchAdd.getIcon()); - expandMenu.add(getExpandSelectionAllAction()); - expandMenu.add(getExpandSelectionImmediateAction()); - expandMenu.add(getExpandSelectionSameTypeAction()); - } - return expandMenu; - } - - private void updateSelectionMenu(int x, int y) { - getSelectionMenu().removeAll(); - for (IDIYComponent component : plugInPort - .findComponentsAt(new Point(x, y))) { - JMenuItem item = new JMenuItem(component.getName()); - final IDIYComponent finalComponent = component; - item.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - List> newSelection = new ArrayList>(); - newSelection.add(finalComponent); - plugInPort.updateSelection(newSelection); - plugInPort.refresh(); - } - }); - getSelectionMenu().add(item); - } - } - - public ActionFactory.CutAction getCutAction() { - if (cutAction == null) { - cutAction = ActionFactory.getInstance().createCutAction(plugInPort, - clipboard, this); - } - return cutAction; - } - - public ActionFactory.CopyAction getCopyAction() { - if (copyAction == null) { - copyAction = ActionFactory.getInstance().createCopyAction( - plugInPort, clipboard, this); - } - return copyAction; - } - - public ActionFactory.PasteAction getPasteAction() { - if (pasteAction == null) { - pasteAction = ActionFactory.getInstance().createPasteAction( - plugInPort, clipboard); - } - return pasteAction; - } - - public ActionFactory.EditSelectionAction getEditSelectionAction() { - if (editSelectionAction == null) { - editSelectionAction = ActionFactory.getInstance() - .createEditSelectionAction(plugInPort); - } - return editSelectionAction; - } - - public ActionFactory.DeleteSelectionAction getDeleteSelectionAction() { - if (deleteSelectionAction == null) { - deleteSelectionAction = ActionFactory.getInstance() - .createDeleteSelectionAction(plugInPort); - } - return deleteSelectionAction; - } - - public ActionFactory.GroupAction getGroupAction() { - if (groupAction == null) { - groupAction = ActionFactory.getInstance().createGroupAction( - plugInPort); - } - return groupAction; - } - - public ActionFactory.UngroupAction getUngroupAction() { - if (ungroupAction == null) { - ungroupAction = ActionFactory.getInstance().createUngroupAction( - plugInPort); - } - return ungroupAction; - } - - public ActionFactory.SendToBackAction getSendToBackAction() { - if (sendToBackAction == null) { - sendToBackAction = ActionFactory.getInstance() - .createSendToBackAction(plugInPort); - } - return sendToBackAction; - } - - public ActionFactory.BringToFrontAction getBringToFrontAction() { - if (bringToFrontAction == null) { - bringToFrontAction = ActionFactory.getInstance() - .createBringToFrontAction(plugInPort); - } - return bringToFrontAction; - } - - public ActionFactory.ExpandSelectionAction getExpandSelectionAllAction() { - if (expandSelectionAllAction == null) { - expandSelectionAllAction = ActionFactory.getInstance() - .createExpandSelectionAction(plugInPort, ExpansionMode.ALL); - } - return expandSelectionAllAction; - } - - public ActionFactory.ExpandSelectionAction getExpandSelectionImmediateAction() { - if (expandSelectionImmediateAction == null) { - expandSelectionImmediateAction = ActionFactory.getInstance() - .createExpandSelectionAction(plugInPort, - ExpansionMode.IMMEDIATE); - } - return expandSelectionImmediateAction; - } - - public ActionFactory.ExpandSelectionAction getExpandSelectionSameTypeAction() { - if (expandSelectionSameTypeAction == null) { - expandSelectionSameTypeAction = ActionFactory.getInstance() - .createExpandSelectionAction(plugInPort, - ExpansionMode.SAME_TYPE); - } - return expandSelectionSameTypeAction; - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.PROJECT_LOADED, EventType.ZOOM_CHANGED, - EventType.REPAINT); - } - - @Override - public void processMessage(final EventType eventType, Object... params) { - // SwingUtilities.invokeLater(new Runnable() { - // - // @Override - // public void run() { - // LOG.debug("event: " + eventType); - switch (eventType) { - case PROJECT_LOADED: - refreshSize(); - if ((Boolean) params[1]) { - // Scroll to the center. - Rectangle visibleRect = canvasPanel.getVisibleRect(); - visibleRect.setLocation( - (canvasPanel.getWidth() - visibleRect.width) / 2, - (canvasPanel.getHeight() - visibleRect.height) / 2); - canvasPanel.scrollRectToVisible(visibleRect); - canvasPanel.revalidate(); - } - break; - case ZOOM_CHANGED: - Rectangle visibleRect = canvasPanel.getVisibleRect(); - refreshSize(); - // Try to set the visible area to be centered with the previous - // one. - double zoomFactor = (Double) params[0] / zoomLevel; - visibleRect.setBounds((int) (visibleRect.x * zoomFactor), - (int) (visibleRect.y * zoomFactor), visibleRect.width, - visibleRect.height); - canvasPanel.scrollRectToVisible(visibleRect); - canvasPanel.revalidate(); - - zoomLevel = (Double) params[0]; - break; - case REPAINT: - canvasPanel.repaint(); - break; - } - // } - // }); - } - - private void refreshSize() { - Dimension d = plugInPort.getCanvasDimensions(true); - canvasPanel.setSize(d); - canvasPanel.setPreferredSize(d); - getScrollPane().setZoomLevel(plugInPort.getZoomLevel()); - } - - /** - * Causes ruler scroll pane to refresh by sending a fake mouse moved message - * to the canvasPanel. - */ - public void refresh() { - MouseEvent event = new MouseEvent(canvasPanel, MouseEvent.MOUSE_MOVED, - System.currentTimeMillis(), 0, 1, 1,// canvasPanel.getWidth() / - // 2, - // canvasPanel.getHeight() / 2, - 0, false); - canvasPanel.dispatchEvent(event); - } - - @Override - public void lostOwnership(Clipboard clipboard, Transferable contents) { - // TODO Auto-generated method stub - - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasSourceListener.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasSourceListener.java deleted file mode 100644 index 61a98185..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasSourceListener.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Point; -import java.awt.dnd.DragSourceDragEvent; -import java.awt.dnd.DragSourceDropEvent; -import java.awt.dnd.DragSourceEvent; -import java.awt.dnd.DragSourceListener; - -import org.diylc.common.IPlugInPort; - - -/** - * {@link DragSourceListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class CanvasSourceListener implements DragSourceListener { - - private IPlugInPort presenter; - - public CanvasSourceListener(IPlugInPort presenter) { - super(); - this.presenter = presenter; - } - - @Override - public void dragDropEnd(DragSourceDropEvent dsde) { - presenter.dragEnded(null); - } - - @Override - public void dragEnter(DragSourceDragEvent dsde) { - } - - @Override - public void dragExit(DragSourceEvent dse) { - } - - @Override - public void dragOver(DragSourceDragEvent dsde) { - Point p = dsde.getDragSourceContext().getComponent().getMousePosition(); - if (p != null) { - dsde.getDragSourceContext().getComponent().firePropertyChange("dragPoint", p.x, p.y); - } - } - - @Override - public void dropActionChanged(DragSourceDragEvent dsde) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasTargetListener.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasTargetListener.java deleted file mode 100644 index 41c2c46a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasTargetListener.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Point; -import java.awt.dnd.DnDConstants; -import java.awt.dnd.DropTargetDragEvent; -import java.awt.dnd.DropTargetDropEvent; -import java.awt.dnd.DropTargetEvent; -import java.awt.dnd.DropTargetListener; - -import org.diylc.common.IPlugInPort; - - -/** - * {@link DropTargetListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class CanvasTargetListener implements DropTargetListener { - - private IPlugInPort presenter; - - // Cached values - private Point currentPoint = null; - private boolean lastAccept; - - public CanvasTargetListener(IPlugInPort presenter) { - super(); - this.presenter = presenter; - } - - @Override - public void dragEnter(DropTargetDragEvent dtde) { - } - - @Override - public void dragExit(DropTargetEvent dte) { - } - - @Override - public void dragOver(DropTargetDragEvent dtde) { - // If dragOver was previously called for this location use cached value. - if (dtde.getLocation().equals(currentPoint)) { - if (lastAccept) { - dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); - } else { - dtde.rejectDrag(); - } - return; - } - try { - // Transferable t = dtde.getTransferable(); - // if - // (t.isDataFlavorSupported(SelectionTransferable.selectionFlavor)) - // { - // if (currentPoint != null) { - // List selection = (List) t - // .getTransferData(SelectionTransferable.selectionFlavor); - // Point startPoint = (Point) t - // .getTransferData(PointTransferable.pointFlavor); - // presenter.selectionMoved(dtde.getLocation().x - // - currentPoint.x, dtde.getLocation().y - // - currentPoint.y); - // } - // } else if - // (t.isDataFlavorSupported(PointTransferable.pointFlavor)) { - // Point startPoint = (Point) t - // .getTransferData(PointTransferable.pointFlavor); - // Point endPoint = dtde.getLocation(); - // presenter.setSelectionRect(Utils.createRectangle(startPoint, - // endPoint)); - // } - currentPoint = dtde.getLocation(); - if (presenter.dragOver(currentPoint)) { - dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); - lastAccept = true; - } else { - dtde.rejectDrag(); - lastAccept = false; - } - } catch (Exception e) { - e.printStackTrace(); - dtde.rejectDrag(); - lastAccept = false; - } - } - - @Override - public void drop(DropTargetDropEvent dtde) { - presenter.dragEnded(dtde.getLocation()); - } - - @Override - public void dropActionChanged(DropTargetDragEvent dtde) { - presenter.dragActionChanged(dtde.getDropAction()); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/EmptyTransferable.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/EmptyTransferable.java deleted file mode 100644 index ccddb7b1..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/EmptyTransferable.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; - -public class EmptyTransferable implements Transferable { - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - throw new UnsupportedFlavorException(flavor); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] {}; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return false; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/PointTransferable.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/PointTransferable.java deleted file mode 100644 index 7c854f82..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/PointTransferable.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Point; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; - -public class PointTransferable implements Transferable { - - public static final DataFlavor pointFlavor = new DataFlavor(Point.class, "Java Point"); - - private Point startPoint; - - public PointTransferable(Point startPoint) { - super(); - this.startPoint = startPoint; - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - if (flavor.equals(pointFlavor)) { - return startPoint; - } - throw new UnsupportedFlavorException(flavor); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] { pointFlavor }; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return flavor.equals(pointFlavor); - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/SelectionTransferable.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/SelectionTransferable.java deleted file mode 100644 index 5901d2fc..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/SelectionTransferable.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.diylc.swing.plugins.canvas; - -import java.awt.Point; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; -import java.util.List; - -import org.diylc.core.IDIYComponent; - - -public class SelectionTransferable implements Transferable { - - public static final DataFlavor selectionFlavor = new DataFlavor(List.class, - "Component Selection"); - - private Point startPoint; - private List> selection; - - public SelectionTransferable(List> selection, Point startPoint) { - super(); - this.selection = selection; - this.startPoint = startPoint; - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - if (flavor.equals(selectionFlavor)) { - return selection; - } - if (flavor.equals(PointTransferable.pointFlavor)) { - return startPoint; - } - throw new UnsupportedFlavorException(flavor); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] { selectionFlavor, PointTransferable.pointFlavor }; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return flavor.equals(selectionFlavor) || flavor.equals(selectionFlavor); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/config/ConfigPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/config/ConfigPlugin.java deleted file mode 100644 index d12360df..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/config/ConfigPlugin.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.diylc.swing.plugins.config; - -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.EnumSet; - -import org.apache.log4j.Logger; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.Theme; -import org.diylc.images.IconLoader; -import org.diylc.swing.ActionFactory; -import org.diylc.swing.ISwingUI; - -import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.io.xml.DomDriver; - -/** - * Controls configuration menu. - * - * @author Branislav Stojkovic - */ -public class ConfigPlugin implements IPlugIn { - - private static final Logger LOG = Logger.getLogger(ConfigPlugin.class); - - private static final String CONFIG_MENU = "Config"; - private static final String THEME_MENU = "Theme"; - - private ISwingUI swingUI; - - public ConfigPlugin(ISwingUI swingUI) { - super(); - this.swingUI = swingUI; - } - - @Override - public void connect(IPlugInPort plugInPort) { - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Anti-Aliasing", IPlugInPort.ANTI_ALIASING_KEY, true), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Auto-Create Pads", IPlugInPort.AUTO_PADS_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Auto-Edit Mode", IPlugInPort.AUTO_EDIT_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Continuous Creation", IPlugInPort.CONTINUOUS_CREATION_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Export Grid", IPlugInPort.EXPORT_GRID_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Hi-Quality Rendering", IPlugInPort.HI_QUALITY_RENDER_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Mouse Wheel Zoom", IPlugInPort.WHEEL_ZOOM_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Outline Mode", IPlugInPort.OUTLINE_KEY, false), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Snap to Grid", IPlugInPort.SNAP_TO_GRID_KEY, true), CONFIG_MENU); - swingUI.injectMenuAction(ActionFactory.getInstance().createConfigAction(plugInPort, - "Sticky Points", IPlugInPort.STICKY_POINTS_KEY, true), CONFIG_MENU); - - File themeDir = new File("themes"); - if (themeDir.exists()) { - XStream xStream = new XStream(new DomDriver()); - swingUI.injectSubmenu(THEME_MENU, IconLoader.Pens.getIcon(), CONFIG_MENU); - for (File file : themeDir.listFiles()) { - if (file.getName().toLowerCase().endsWith(".xml")) { - try { - InputStream in = new FileInputStream(file); - Theme theme = (Theme) xStream.fromXML(in); - LOG.debug("Found theme: " + theme.getName()); - swingUI.injectMenuAction(ActionFactory.getInstance().createThemeAction( - plugInPort, theme), THEME_MENU); - } catch (Exception e) { - LOG.error("Could not load theme file " + file.getName(), e); - } - } - } - } - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.noneOf(EventType.class); - } - - @Override - public void processMessage(EventType eventType, Object... params) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/ComponentTransferable.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/ComponentTransferable.java deleted file mode 100644 index e5506739..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/ComponentTransferable.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.diylc.swing.plugins.edit; - -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.diylc.core.IDIYComponent; - -/** - * Represents component selection as a {@link List} of {@link IDIYComponent} - * objects. Implements {@link Transferable}, so it is suitable for clipboard - * usage. - * - * @author Branislav Stojkovic - */ -public class ComponentTransferable extends ArrayList> implements Transferable { - - private static final long serialVersionUID = 1L; - - public static final DataFlavor listFlavor = new DataFlavor(ComponentTransferable.class, "application/diylc"); - - public ComponentTransferable() { - super(); - } - - public ComponentTransferable(Collection> selectedComponents) { - super(selectedComponents); - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - if (flavor.equals(listFlavor)) { - return this; - } - throw new UnsupportedFlavorException(flavor); - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return new DataFlavor[] { listFlavor }; - } - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return flavor.equals(listFlavor); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java deleted file mode 100644 index 3f06e6ca..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java +++ /dev/null @@ -1,259 +0,0 @@ -package org.diylc.swing.plugins.edit; - -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.datatransfer.FlavorEvent; -import java.awt.datatransfer.FlavorListener; -import java.awt.datatransfer.Transferable; -import java.util.EnumSet; - -import org.diylc.appframework.undo.IUndoListener; -import org.diylc.appframework.undo.UndoHandler; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.ExpansionMode; -import org.diylc.core.Project; -import org.diylc.images.IconLoader; -import org.diylc.swing.ActionFactory; -import org.diylc.swing.ISwingUI; - -public class EditMenuPlugin implements IPlugIn, ClipboardOwner { - - private static final String EDIT_TITLE = "Edit"; - private static final String RENUMBER_TITLE = "Renumber Selection"; - private static final String EXPAND_TITLE = "Expand Selection"; - - private IPlugInPort plugInPort; - private ISwingUI swingUI; - - private Clipboard clipboard; - - private ActionFactory.CutAction cutAction; - private ActionFactory.CopyAction copyAction; - private ActionFactory.PasteAction pasteAction; - private ActionFactory.EditSelectionAction editSelectionAction; - private ActionFactory.DeleteSelectionAction deleteSelectionAction; - private ActionFactory.GroupAction groupAction; - private ActionFactory.UngroupAction ungroupAction; - private ActionFactory.SendToBackAction sendToBackAction; - private ActionFactory.BringToFrontAction bringToFrontAction; - private ActionFactory.RenumberAction renumberXAxisAction; - private ActionFactory.RenumberAction renumberYAxisAction; - private ActionFactory.ExpandSelectionAction expandSelectionAllAction; - private ActionFactory.ExpandSelectionAction expandSelectionImmediateAction; - private ActionFactory.ExpandSelectionAction expandSelectionSameTypeAction; - - private UndoHandler undoHandler; - - public EditMenuPlugin(ISwingUI swingUI) { - this.swingUI = swingUI; - // SecurityManager securityManager = System.getSecurityManager(); - // if (securityManager != null) { - // try { - // securityManager.checkSystemClipboardAccess(); - // } catch (Exception e) { - // e.printStackTrace(); - // } - // } - clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - undoHandler = new UndoHandler(new IUndoListener() { - - @Override - public void actionPerformed(Project currentState) { - plugInPort.loadProject(currentState, false); - } - }); - clipboard.addFlavorListener(new FlavorListener() { - - @Override - public void flavorsChanged(FlavorEvent e) { - refreshActions(); - } - }); - } - - public ActionFactory.CutAction getCutAction() { - if (cutAction == null) { - cutAction = ActionFactory.getInstance().createCutAction(plugInPort, clipboard, this); - } - return cutAction; - } - - public ActionFactory.CopyAction getCopyAction() { - if (copyAction == null) { - copyAction = ActionFactory.getInstance().createCopyAction(plugInPort, clipboard, this); - } - return copyAction; - } - - public ActionFactory.PasteAction getPasteAction() { - if (pasteAction == null) { - pasteAction = ActionFactory.getInstance().createPasteAction(plugInPort, clipboard); - } - return pasteAction; - } - - public ActionFactory.EditSelectionAction getEditSelectionAction() { - if (editSelectionAction == null) { - editSelectionAction = ActionFactory.getInstance().createEditSelectionAction(plugInPort); - } - return editSelectionAction; - } - - public ActionFactory.DeleteSelectionAction getDeleteSelectionAction() { - if (deleteSelectionAction == null) { - deleteSelectionAction = ActionFactory.getInstance().createDeleteSelectionAction( - plugInPort); - } - return deleteSelectionAction; - } - - public ActionFactory.GroupAction getGroupAction() { - if (groupAction == null) { - groupAction = ActionFactory.getInstance().createGroupAction(plugInPort); - } - return groupAction; - } - - public ActionFactory.UngroupAction getUngroupAction() { - if (ungroupAction == null) { - ungroupAction = ActionFactory.getInstance().createUngroupAction(plugInPort); - } - return ungroupAction; - } - - public ActionFactory.SendToBackAction getSendToBackAction() { - if (sendToBackAction == null) { - sendToBackAction = ActionFactory.getInstance().createSendToBackAction(plugInPort); - } - return sendToBackAction; - } - - public ActionFactory.BringToFrontAction getBringToFrontAction() { - if (bringToFrontAction == null) { - bringToFrontAction = ActionFactory.getInstance().createBringToFrontAction(plugInPort); - } - return bringToFrontAction; - } - - public ActionFactory.RenumberAction getRenumberXAxisAction() { - if (renumberXAxisAction == null) { - renumberXAxisAction = ActionFactory.getInstance() - .createRenumberAction(plugInPort, true); - } - return renumberXAxisAction; - } - - public ActionFactory.RenumberAction getRenumberYAxisAction() { - if (renumberYAxisAction == null) { - renumberYAxisAction = ActionFactory.getInstance().createRenumberAction(plugInPort, - false); - } - return renumberYAxisAction; - } - - public ActionFactory.ExpandSelectionAction getExpandSelectionAllAction() { - if (expandSelectionAllAction == null) { - expandSelectionAllAction = ActionFactory.getInstance().createExpandSelectionAction( - plugInPort, ExpansionMode.ALL); - } - return expandSelectionAllAction; - } - - public ActionFactory.ExpandSelectionAction getExpandSelectionImmediateAction() { - if (expandSelectionImmediateAction == null) { - expandSelectionImmediateAction = ActionFactory.getInstance().createExpandSelectionAction( - plugInPort, ExpansionMode.IMMEDIATE); - } - return expandSelectionImmediateAction; - } - - public ActionFactory.ExpandSelectionAction getExpandSelectionSameTypeAction() { - if (expandSelectionSameTypeAction == null) { - expandSelectionSameTypeAction = ActionFactory.getInstance().createExpandSelectionAction( - plugInPort, ExpansionMode.SAME_TYPE); - } - return expandSelectionSameTypeAction; - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - - ActionFactory actionFactory = ActionFactory.getInstance(); - - swingUI.injectMenuAction(undoHandler.getUndoAction(), EDIT_TITLE); - swingUI.injectMenuAction(undoHandler.getRedoAction(), EDIT_TITLE); - swingUI.injectMenuAction(null, EDIT_TITLE); - swingUI.injectMenuAction(getCutAction(), EDIT_TITLE); - swingUI.injectMenuAction(getCopyAction(), EDIT_TITLE); - swingUI.injectMenuAction(getPasteAction(), EDIT_TITLE); - swingUI.injectMenuAction(null, EDIT_TITLE); - swingUI.injectMenuAction(actionFactory.createSelectAllAction(plugInPort), EDIT_TITLE); - swingUI.injectMenuAction(getEditSelectionAction(), EDIT_TITLE); - swingUI.injectMenuAction(getDeleteSelectionAction(), EDIT_TITLE); - swingUI.injectMenuAction(getGroupAction(), EDIT_TITLE); - swingUI.injectMenuAction(getUngroupAction(), EDIT_TITLE); - swingUI.injectMenuAction(getSendToBackAction(), EDIT_TITLE); - swingUI.injectMenuAction(getBringToFrontAction(), EDIT_TITLE); - swingUI.injectMenuAction(null, EDIT_TITLE); - swingUI.injectSubmenu(RENUMBER_TITLE, IconLoader.Sort.getIcon(), EDIT_TITLE); - swingUI.injectMenuAction(getRenumberXAxisAction(), RENUMBER_TITLE); - swingUI.injectMenuAction(getRenumberYAxisAction(), RENUMBER_TITLE); - swingUI.injectSubmenu(EXPAND_TITLE, IconLoader.BranchAdd.getIcon(), EDIT_TITLE); - swingUI.injectMenuAction(getExpandSelectionAllAction(), EXPAND_TITLE); - swingUI.injectMenuAction(getExpandSelectionImmediateAction(), EXPAND_TITLE); - swingUI.injectMenuAction(getExpandSelectionSameTypeAction(), EXPAND_TITLE); - swingUI.injectMenuAction(null, EDIT_TITLE); - swingUI.injectMenuAction(actionFactory.createEditProjectAction(plugInPort), EDIT_TITLE); - - refreshActions(); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.SELECTION_CHANGED, EventType.PROJECT_MODIFIED); - } - - @Override - public void processMessage(EventType eventType, Object... params) { - switch (eventType) { - case SELECTION_CHANGED: - refreshActions(); - break; - case PROJECT_MODIFIED: - undoHandler.stateChanged((Project) params[0], (Project) params[1], (String) params[2]); - break; - } - } - - private void refreshActions() { - boolean enabled = !plugInPort.getSelectedComponents().isEmpty(); - getCutAction().setEnabled(enabled); - getCopyAction().setEnabled(enabled); - try { - getPasteAction().setEnabled( - clipboard.isDataFlavorAvailable(ComponentTransferable.listFlavor)); - } catch (Exception e) { - getPasteAction().setEnabled(false); - } - getEditSelectionAction().setEnabled(enabled); - getDeleteSelectionAction().setEnabled(enabled); - getGroupAction().setEnabled(enabled); - getExpandSelectionAllAction().setEnabled(enabled); - getExpandSelectionImmediateAction().setEnabled(enabled); - getExpandSelectionSameTypeAction().setEnabled(enabled); - getUngroupAction().setEnabled(enabled); - getSendToBackAction().setEnabled(enabled); - getBringToFrontAction().setEnabled(enabled); - } - - // ClipboardOwner - - @Override - public void lostOwnership(Clipboard clipboard, Transferable contents) { - refreshActions(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/BomDialog.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/BomDialog.java deleted file mode 100644 index 1d8c4921..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/BomDialog.java +++ /dev/null @@ -1,180 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.awt.BorderLayout; -import java.awt.event.ActionEvent; -import java.io.File; -import java.io.IOException; -import java.util.Arrays; -import java.util.List; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JButton; -import javax.swing.JDialog; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; - -import org.diylc.images.IconLoader; -import org.diylc.swing.gui.DialogFactory; -import org.diylc.swingframework.export.TableExporter; -import org.diylc.swingframework.objecttable.ObjectListTable; -import org.diylc.utils.BomEntry; - -public class BomDialog extends JDialog { - - private static final long serialVersionUID = 1L; - - private ObjectListTable table; - private JPanel toolbar; - - public BomDialog(JFrame parent, List bom) { - super(parent, "Bill of Materials"); - setContentPane(createMainPanel()); - getTable().setData(bom); - pack(); - setLocationRelativeTo(parent); - } - - @Override - public void setVisible(boolean b) { - super.setVisible(b); - if (b) { - getTable().autoFit(Arrays.asList(3)); - } - } - - private JPanel createMainPanel() { - JPanel mainPanel = new JPanel(); - mainPanel.setLayout(new BorderLayout()); - mainPanel.add(getToolbar(), BorderLayout.NORTH); - mainPanel.add(new JScrollPane(getTable()), BorderLayout.CENTER); - return mainPanel; - } - - private ObjectListTable getTable() { - if (table == null) { - try { - table = new ObjectListTable(BomEntry.class, new String[] { "getName", - "getValue", "getQuantity", "getNotes/setNotes" }, null); - } catch (SecurityException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } - } - return table; - } - - private JPanel getToolbar() { - if (toolbar == null) { - toolbar = new JPanel(); - toolbar.add(new JButton(new SaveToExcelAction())); - toolbar.add(new JButton(new SaveToCSVAction())); - toolbar.add(new JButton(new SaveToPNGAction())); - toolbar.add(new JButton(new SaveToHTMLAction())); - } - return toolbar; - } - - class SaveToExcelAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public SaveToExcelAction() { - super(); - putValue(Action.NAME, "Save to Excel"); - putValue(Action.SMALL_ICON, IconLoader.Excel.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - File file = DialogFactory.getInstance().showSaveDialog( - FileFilterEnum.EXCEL.getFilter(), null, - FileFilterEnum.EXCEL.getExtensions()[0], null); - if (file != null) { - try { - TableExporter.getInstance().exportToExcel(getTable(), file); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } - - class SaveToCSVAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public SaveToCSVAction() { - super(); - putValue(Action.NAME, "Save to CSV"); - putValue(Action.SMALL_ICON, IconLoader.CSV.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - File file = DialogFactory.getInstance().showSaveDialog(FileFilterEnum.CSV.getFilter(), - null, FileFilterEnum.CSV.getExtensions()[0], null); - if (file != null) { - try { - TableExporter.getInstance().exportToCSV(getTable(), file); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } - - class SaveToHTMLAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public SaveToHTMLAction() { - super(); - putValue(Action.NAME, "Save to HTML"); - putValue(Action.SMALL_ICON, IconLoader.HTML.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - File file = DialogFactory.getInstance().showSaveDialog(FileFilterEnum.HTML.getFilter(), - null, FileFilterEnum.HTML.getExtensions()[0], null); - if (file != null) { - try { - TableExporter.getInstance().exportToHTML(getTable(), file); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } - - class SaveToPNGAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public SaveToPNGAction() { - super(); - putValue(Action.NAME, "Save to PNG"); - putValue(Action.SMALL_ICON, IconLoader.Image.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - File file = DialogFactory.getInstance().showSaveDialog(FileFilterEnum.PNG.getFilter(), - null, FileFilterEnum.PNG.getExtensions()[0], null); - if (file != null) { - try { - TableExporter.getInstance().exportToPNG(getTable(), file); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/FileFilterEnum.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/FileFilterEnum.java deleted file mode 100644 index 508ad906..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/FileFilterEnum.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.io.File; - -import javax.swing.filechooser.FileFilter; - -public enum FileFilterEnum { - - PNG("PNG Images (*.png)", "png"), PDF("PDF Files (*.pdf)", "pdf"), DIY( - "DIY Project Files (*.diy)", "diy"), EXCEL("Excel Workbooks (*.xls)", "xls"), CSV( - "Comma Separated Files (*.csv)", "csv"), HTML("HTML Files (*.html)", "html"), IMAGES( - "Image Files (*.png, *.jpg, *.gif)", "png", "jpg", "gif"); - - FileFilter filter; - String[] extensions; - - private FileFilterEnum(final String description, final String... extensions) { - this.extensions = extensions; - filter = new FileFilter() { - - @Override - public boolean accept(File f) { - if (f.isDirectory()) { - return true; - } - String fileExt = f.getName(); - fileExt = fileExt.substring(fileExt.lastIndexOf('.') + 1).toLowerCase(); - for (String ext : extensions) { - if (ext.equals(fileExt)) { - return true; - } - } - return false; - } - - @Override - public String getDescription() { - return description; - } - }; - } - - public FileFilter getFilter() { - return filter; - } - - public String[] getExtensions() { - return extensions; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java deleted file mode 100644 index aacd1d81..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.util.EnumSet; - -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.images.IconLoader; -import org.diylc.swing.ActionFactory; -import org.diylc.swing.ISwingUI; - -/** - * Entry point class for File management utilities. - * - * @author Branislav Stojkovic - */ -public class FileMenuPlugin implements IPlugIn { - - private static final String FILE_TITLE = "File"; - private static final String TRACE_MASK_TITLE = "Trace Mask"; - - private ProjectDrawingProvider drawingProvider; - private TraceMaskDrawingProvider traceMaskDrawingProvider; - - private ISwingUI swingUI; - - public FileMenuPlugin(ISwingUI swingUI) { - super(); - this.swingUI = swingUI; - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.drawingProvider = new ProjectDrawingProvider(plugInPort, false, true); - this.traceMaskDrawingProvider = new TraceMaskDrawingProvider(plugInPort); - - ActionFactory actionFactory = ActionFactory.getInstance(); - swingUI.injectMenuAction(actionFactory.createNewAction(plugInPort), FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createOpenAction(plugInPort, swingUI), FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createSaveAction(plugInPort, swingUI), FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createSaveAsAction(plugInPort, swingUI), FILE_TITLE); - swingUI.injectMenuAction(null, FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createExportPDFAction(drawingProvider, swingUI), - FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createExportPNGAction(drawingProvider, swingUI), - FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createPrintAction(drawingProvider), FILE_TITLE); - swingUI.injectSubmenu(TRACE_MASK_TITLE, IconLoader.TraceMask.getIcon(), FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createExportPDFAction(traceMaskDrawingProvider, - swingUI), TRACE_MASK_TITLE); - swingUI.injectMenuAction(actionFactory.createExportPNGAction(traceMaskDrawingProvider, - swingUI), TRACE_MASK_TITLE); - swingUI.injectMenuAction(actionFactory.createPrintAction(traceMaskDrawingProvider), - TRACE_MASK_TITLE); - swingUI.injectMenuAction(actionFactory.createBomAction(plugInPort), FILE_TITLE); - swingUI.injectMenuAction(null, FILE_TITLE); - swingUI.injectMenuAction(actionFactory.createExitAction(plugInPort), FILE_TITLE); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return null; - } - - @Override - public void processMessage(EventType eventType, Object... params) { - // Do nothing. - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java deleted file mode 100644 index 6b30cd42..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.util.EnumSet; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.DrawOption; -import org.diylc.common.IPlugInPort; -import org.diylc.swingframework.IDrawingProvider; - -/** - * {@link IDrawingProvider} implementation that uses {@link IPlugInPort} to draw - * a project onto the canvas. - * - * @author Branislav Stojkovic - */ -public class ProjectDrawingProvider implements IDrawingProvider { - - private IPlugInPort plugInPort; - private boolean useZoom; - private boolean showGridWhenNeeded; - - public ProjectDrawingProvider(IPlugInPort plugInPort, boolean useZoom, - boolean showGridWhenNeeded) { - super(); - this.plugInPort = plugInPort; - this.useZoom = useZoom; - this.showGridWhenNeeded = showGridWhenNeeded; - } - - @Override - public void draw(Graphics g) { - EnumSet drawOptions = EnumSet.of(DrawOption.ANTIALIASING); - if (useZoom) { - drawOptions.add(DrawOption.ZOOM); - } - if (showGridWhenNeeded - && ConfigurationManager.getInstance().readBoolean(IPlugInPort.EXPORT_GRID_KEY, - false)) { - drawOptions.add(DrawOption.GRID); - } - if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.OUTLINE_KEY, false)) { - drawOptions.add(DrawOption.OUTLINE_MODE); - } - plugInPort.draw((Graphics2D) g, drawOptions, null); - } - - @Override - public Dimension getSize() { - return plugInPort.getCanvasDimensions(useZoom); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectPreview.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectPreview.java deleted file mode 100644 index c97d5c7c..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/ProjectPreview.java +++ /dev/null @@ -1,168 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.File; -import java.io.FileInputStream; -import java.util.EnumSet; -import java.util.List; -import java.util.Set; - -import javax.swing.JComponent; -import javax.swing.JFileChooser; -import javax.swing.JLabel; -import javax.swing.JPanel; - -import org.diylc.common.DrawOption; -import org.diylc.common.IPlugInPort; -import org.diylc.common.PropertyWrapper; -import org.diylc.core.IView; -import org.diylc.core.Project; -import org.diylc.presenter.Presenter; -import org.diylc.swingframework.IFileChooserAccessory; - -import com.thoughtworks.xstream.XStream; -import com.thoughtworks.xstream.io.xml.DomDriver; - -/** - * {@link JComponent} that shows preview of the selected project in - * {@link JFileChooser}. It's hooked onto {@link JFileChooser} as - * {@link PropertyChangeListener} and refreshes when file is selected. - * - * @author Branislav Stojkovic - */ -public class ProjectPreview extends JPanel implements PropertyChangeListener, IFileChooserAccessory { - - private static final long serialVersionUID = 1L; - - private IPlugInPort presenter; - private XStream xStream; - private Project emptyProject; - private RenderComponent renderComponent; - private JLabel nameLabel; - - public ProjectPreview() { - super(); - - setPreferredSize(new Dimension(140, 128)); - presenter = new Presenter(new IView() { - - @Override - public int showConfirmDialog(String message, String title, int optionType, - int messageType) { - return 0; - } - - @Override - public void showMessage(String message, String title, int messageType) { - } - - @Override - public File promptFileSave() { - return null; - } - - @Override - public boolean editProperties(List properties, Set defaultedProperties) { - return false; - } - }); - xStream = new XStream(new DomDriver()); - - emptyProject = new Project(); - emptyProject.setTitle(""); - - renderComponent = new RenderComponent(); - nameLabel = new JLabel(); - - // setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - add(renderComponent); - add(nameLabel); - } - - // PropertyChangeListener - - @Override - public void propertyChange(PropertyChangeEvent evt) { - boolean update = false; - String prop = evt.getPropertyName(); - - Project selectedProject = emptyProject; - if (JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(prop)) { - update = true; - } else if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(prop)) { - File selectedFile = (File) evt.getNewValue(); - try { - FileInputStream in = new FileInputStream(selectedFile); - selectedProject = (Project) xStream.fromXML(in); - in.close(); - } catch (Exception e) { - } - update = true; - } - - nameLabel.setText(selectedProject.getTitle()); - presenter.loadProject(selectedProject, true); - - if (update) { - if (renderComponent.isShowing()) { - renderComponent.repaint(); - } - } - } - - class RenderComponent extends JComponent { - - private static final long serialVersionUID = 1L; - - public RenderComponent() { - setPreferredSize(new Dimension(128, 96)); - // setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4)); - } - - @Override - public void paint(Graphics g) { - super.paint(g); - - Graphics2D g2d = (Graphics2D) g; - Dimension d = presenter.getCanvasDimensions(false); - // System.out.println(d); - Rectangle rect = getBounds(); - // System.out.println(rect); - - double projectRatio = d.getWidth() / d.getHeight(); - double actualRatio = rect.getWidth() / rect.getHeight(); - double zoomRatio; - if (projectRatio > actualRatio) { - zoomRatio = rect.getWidth() / d.getWidth(); - } else { - zoomRatio = rect.getHeight() / d.getHeight(); - } - // d.setSize(d.getWidth() * zoomRatio, d.getHeight() * zoomRatio); - // int x = (int) (rect.getWidth() - d.getWidth() * zoomRatio) / 2; - // int y = (int) (rect.getHeight() - d.getHeight() * zoomRatio) / 2; - - // System.out.println(x + "," + y); - - // g2d.translate(x, y); - g2d.scale(zoomRatio, zoomRatio); - presenter.draw(g2d, EnumSet.noneOf(DrawOption.class), null); - - g2d.setColor(Color.black); - g2d.drawRect(0, 0, d.width - (int) (1 / zoomRatio), d.height - (int) (1 / zoomRatio)); - } - } - - // IFileChooserAccessory - - @Override - public void install(JFileChooser fileChooser) { - fileChooser.setAccessory(this); - fileChooser.addPropertyChangeListener(this); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java deleted file mode 100644 index ebc737d0..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.diylc.swing.plugins.file; - -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.util.EnumSet; - -import org.diylc.common.DrawOption; -import org.diylc.common.IComponentFiler; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; -import org.diylc.presenter.ComponentZOrderFiler; -import org.diylc.swingframework.IDrawingProvider; - -/** - * {@link IDrawingProvider} implementation that uses {@link IPlugInPort} to draw - * a project onto the canvas. - * - * @author Branislav Stojkovic - */ -public class TraceMaskDrawingProvider implements IDrawingProvider { - - private IPlugInPort plugInPort; - private IComponentFiler filter; - - public TraceMaskDrawingProvider(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - this.filter = new ComponentZOrderFiler(IDIYComponent.TRACE); - } - - @Override - public void draw(Graphics g) { - plugInPort.draw((Graphics2D) g, EnumSet.of(DrawOption.ANTIALIASING), - this.filter); - } - - @Override - public Dimension getSize() { - return plugInPort.getCanvasDimensions(false); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java deleted file mode 100644 index 3f203299..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.diylc.swing.plugins.help; - -import java.awt.event.ActionEvent; -import java.util.EnumSet; - -import javax.swing.AbstractAction; -import javax.swing.Icon; - -import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.Utils; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.images.IconLoader; -import org.diylc.swing.ISwingUI; -import org.diylc.swing.gui.DialogFactory; -import org.diylc.swingframework.AboutDialog; -import org.diylc.swingframework.LinkLabel; - -/** - * Entry point class for help-related utilities. - * - * @author Branislav Stojkovic - */ -public class HelpMenuPlugin implements IPlugIn { - - private static final String HELP_TITLE = "Help"; - - public static String MANUAL_URL = "http://code.google.com/p/diy-layout-creator/wiki/Manual"; - public static String FAQ_URL = "http://code.google.com/p/diy-layout-creator/wiki/FAQ"; - public static String COMPONENT_URL = "http://code.google.com/p/diy-layout-creator/wiki/ComponentAPI"; - public static String PLUGIN_URL = "http://code.google.com/p/diy-layout-creator/wiki/PluginAPI"; - public static String BUG_URL = "http://code.google.com/p/diy-layout-creator/issues/entry"; - public static String DONATE_URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=25161"; - - private IPlugInPort plugInPort; - 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 - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - } - - @Override - public EnumSet getSubscribedEventTypes() { - return null; - } - - @Override - public void processMessage(EventType eventType, Object... params) { - } - - private AboutDialog getAboutDialog() { - if (aboutDialog == null) { - aboutDialog = DialogFactory.getInstance().createAboutDialog("DIY Layout Creator", - IconLoader.IconLarge.getIcon(), - plugInPort.getCurrentVersionNumber().toString(), "Branislav Stojkovic", - "diylc.org", "bancika@gmail.com", ""); - } - return aboutDialog; - } - - class AboutAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public AboutAction() { - super(); - putValue(AbstractAction.NAME, "About"); - putValue(AbstractAction.SMALL_ICON, IconLoader.About.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - getAboutDialog().setVisible(true); - } - } - - class NavigateURLAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - private String url; - - public NavigateURLAction(String name, Icon icon, String url) { - super(); - this.url = url; - putValue(AbstractAction.NAME, name); - putValue(AbstractAction.SMALL_ICON, icon); - } - - @Override - public void actionPerformed(ActionEvent e) { - try { - Utils.openURL(url); - } catch (Exception e1) { - Logger.getLogger(LinkLabel.class).error("Could not launch default browser", e1); - } - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/layers/LayersMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/layers/LayersMenuPlugin.java deleted file mode 100644 index bf9b314a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/layers/LayersMenuPlugin.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.diylc.swing.plugins.layers; - -import java.awt.event.ActionEvent; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.swing.AbstractAction; -import javax.swing.Action; - -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; -import org.diylc.core.IView; -import org.diylc.swing.ISwingUI; - -public class LayersMenuPlugin implements IPlugIn { - - private static final String LOCK_LAYERS_TITLE = "Lock Layers"; - - private IPlugInPort plugInPort; - private Map lockActionMap; - - public LayersMenuPlugin(ISwingUI swingUI) { - lockActionMap = new HashMap(); - for (Layer layer : Layer.values()) { - final int zOrder = layer.getZOrder(); - AbstractAction action = new AbstractAction(layer.getTitle()) { - - private static final long serialVersionUID = 1L; - - @Override - public void actionPerformed(ActionEvent e) { - LayersMenuPlugin.this.plugInPort.setLayerLocked(zOrder, - (Boolean) getValue(Action.SELECTED_KEY)); - } - }; - action.putValue(IView.CHECK_BOX_MENU_ITEM, true); - lockActionMap.put(layer, action); - swingUI.injectMenuAction(action, LOCK_LAYERS_TITLE); - } - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.LAYER_STATE_CHANGED); - } - - @SuppressWarnings("unchecked") - @Override - public void processMessage(EventType eventType, Object... params) { - if (eventType == EventType.LAYER_STATE_CHANGED) { - Set lockedLayers = (Set) params[0]; - for (Layer layer : Layer.values()) { - lockActionMap.get(layer).putValue(Action.SELECTED_KEY, - lockedLayers.contains(layer.getZOrder())); - } - } - } - - static enum Layer { - CHASSIS("Chassis", IDIYComponent.CHASSIS), BOARD("Board", IDIYComponent.BOARD), TRACE( - "Trace", IDIYComponent.TRACE), COMPONENT("Component", IDIYComponent.COMPONENT), TEXT( - "Text", IDIYComponent.TEXT); - - String title; - int zOrder; - - private Layer(String title, int order) { - this.title = title; - zOrder = order; - } - - public String getTitle() { - return title; - } - - public int getZOrder() { - return zOrder; - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/OnlineManager.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/OnlineManager.java deleted file mode 100644 index c40512b2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/OnlineManager.java +++ /dev/null @@ -1,154 +0,0 @@ -package org.diylc.swing.plugins.online; - -import java.awt.event.ActionEvent; -import java.util.EnumSet; - -import javax.swing.AbstractAction; -import javax.swing.SwingWorker; - -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.images.IconLoader; -import org.diylc.swing.gui.DialogFactory; -import org.diylc.swing.plugins.online.presenter.LibraryPresenter; -import org.diylc.swing.plugins.online.view.LoginDialog; -import org.diylc.swing.plugins.online.view.NewUserDialog; -import org.diylc.swing.plugins.online.view.UploadDialog; -import org.diylc.swingframework.ProgressDialog; - -public class OnlineManager implements IPlugIn { - - private static final String ONLINE_TITLE = "Online"; - - private IPlugInPort plugInPort; - private LibraryPresenter libraryPresenter; - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - this.libraryPresenter = new LibraryPresenter(); - - initialize(); - -// plugInPort.injectMenuAction(new LibraryAction(), ONLINE_TITLE); -// plugInPort.injectMenuAction(null, ONLINE_TITLE); -// plugInPort.injectMenuAction(new LoginAction(), ONLINE_TITLE); -// plugInPort.injectMenuAction(new CreateAccountAction(), ONLINE_TITLE); -// plugInPort.injectMenuAction(null, ONLINE_TITLE); -// plugInPort.injectMenuAction(new UploadAction(), ONLINE_TITLE); -// plugInPort.injectMenuAction(new ManageProjectsAction(), ONLINE_TITLE); - } - - private void initialize() { - SwingWorker worker = new SwingWorker() { - - @Override - protected Void doInBackground() throws Exception { - libraryPresenter.connectDb(); - return null; - } - - @Override - protected void done() { - if (libraryPresenter.isLoggedIn()) { - - } - } - }; - worker.execute(); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return null; - } - - @Override - public void processMessage(EventType eventType, Object... params) { - } - - class LibraryAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public LibraryAction() { - super(); - putValue(AbstractAction.NAME, "Browse Library"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Chest.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - } - } - - class LoginAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public LoginAction() { - super(); - putValue(AbstractAction.NAME, "Log in"); - putValue(AbstractAction.SMALL_ICON, IconLoader.IdCard.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - LoginDialog dialog = DialogFactory.getInstance().createLoginDialog(); - dialog.setVisible(true); - } - } - - class CreateAccountAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public CreateAccountAction() { - super(); - putValue(AbstractAction.NAME, "Create New Account"); - putValue(AbstractAction.SMALL_ICON, IconLoader.IdCardAdd.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - NewUserDialog dialog = DialogFactory.getInstance().createNewUserDialog(); - dialog.setVisible(true); - } - } - - class UploadAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public UploadAction() { - super(); - putValue(AbstractAction.NAME, "Upload Project"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Upload.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - UploadDialog dialog = DialogFactory.getInstance().createUploadDialog(); - dialog.setVisible(true); - } - } - - class ManageProjectsAction extends AbstractAction { - - private static final long serialVersionUID = 1L; - - public ManageProjectsAction() { - super(); - putValue(AbstractAction.NAME, "Manage Projects"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Wrench.getIcon()); - } - - @Override - public void actionPerformed(ActionEvent e) { - ProgressDialog dialog = DialogFactory.getInstance().createProgressDialog("Test", - new String[] {}, "Some text", false); - dialog.setVisible(true); - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/Test.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/Test.java deleted file mode 100644 index aee1e52b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/Test.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.diylc.swing.plugins.online; - -import org.apache.log4j.BasicConfigurator; -import org.diylc.swing.plugins.online.presenter.LibraryPresenter; - - -public class Test { - - /** - * @param args - * @throws Exception - */ - public static void main(String[] args) throws Exception { - BasicConfigurator.configure(); - LibraryPresenter pres = new LibraryPresenter(); - // pres.createUser("bancika", "pwd", "bancika@gmail.com"); - System.out.println(pres.fetchCategories()); - pres.login("bancika", "pwd"); - int id = pres.fetchMyProjectRows().get(0).getId(); - // InputStream stream = pres.downloadProjectContent(id); - // byte[] buf = new byte[100]; - // int len = stream.read(buf); - System.out.println(pres.downloadProjectContent(id)); - // System.out.println(pres.hashPassword("bancikabancikabancikabancikabancika")); - pres.dispose(); - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/model/ProjectEntity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/model/ProjectEntity.java deleted file mode 100644 index 228307fa..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/model/ProjectEntity.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.diylc.swing.plugins.online.model; - -import java.awt.event.ActionEvent; -import java.io.Serializable; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JOptionPane; - -public class ProjectEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - private int id; - private String name; - private String description; - private String owner; - private String category; - - public ProjectEntity() { - super(); - } - - public ProjectEntity(int id, String name, String description, String owner, String category) { - super(); - this.id = id; - this.name = name; - this.description = description; - this.owner = owner; - this.category = category; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getOwner() { - return owner; - } - - public void setOwner(String owner) { - this.owner = owner; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public Action getDownload() { - - Action a = new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - JOptionPane.showMessageDialog(null, name); - } - }; - a.putValue(AbstractAction.NAME, "Download"); - return a; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((category == null) ? 0 : category.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); - result = prime * result + id; - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((owner == null) ? 0 : owner.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ProjectEntity other = (ProjectEntity) obj; - if (category == null) { - if (other.category != null) - return false; - } else if (!category.equals(other.category)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (id != other.id) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (owner == null) { - if (other.owner != null) - return false; - } else if (!owner.equals(other.owner)) - return false; - return true; - } - - @Override - public String toString() { - return name; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java deleted file mode 100644 index 412fabea..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -public class AlreadyExistsException extends Exception { - - private static final long serialVersionUID = 1L; - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java deleted file mode 100644 index e6acd8a4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java +++ /dev/null @@ -1,177 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.diylc.swing.plugins.online.model.ProjectEntity; - - -public class LibraryPresenter { - - private final static Logger LOG = Logger.getLogger(LibraryPresenter.class); - - private static final String DB_HOST = "diy-fever.com"; - private static final String DB_PORT = "3306"; - private static final String DB_USER = "diylc-app"; - private static final String DB_PASS = "zuf7RuS8"; - - private static final String CATEGORY_SQL = "SELECT * FROM diylc.category WHERE 1=1"; - private static final String USER_SQL = "SELECT * FROM diylc.user WHERE name = \"%s\""; - private static final String CREATE_USER_SQL = "INSERT INTO diylc.user (name, password, email) VALUES (\"%s\", \"%s\", \"%s\")"; - private static final String MY_PROJECTS_SQL = "SELECT project_id, name, category_id, description FROM diylc.project WHERE owner_user_id = %s"; - private static final String PROJECT_SQL = "SELECT content FROM diylc.project WHERE project_id = %s"; - private static final String UPLOAD_PROJECT_SQL = "INSERT INTO diylc.project (name, description, content, category_id, owner_user_id) VALUES (\"%s\", \"%s\", \"%s\", %s, %s)"; - private static final String UPDATE_PROJECT_SQL = "UPDATE diylc.project SET name = \"%s\", description = \"%s\", content = \"%s\", category_id = %s WHERE project_id = %s"; - - private MySqlDBManager dbManager; - private MessageDigest messageDigest; - private Integer currentUserId; - - public LibraryPresenter() { - dbManager = new MySqlDBManager(DB_HOST, DB_PORT, DB_USER, DB_PASS); - try { - messageDigest = MessageDigest.getInstance("MD5"); - } catch (NoSuchAlgorithmException e) { - LOG.error("Could not initialize MD5, algorithm not found."); - } - } - - public boolean connectDb() { - try { - dbManager.connectDB(); - return true; - } catch (Exception e) { - LOG.error("Could not connect to the database: " + e.getMessage()); - return false; - } - } - - public void createUser(String userName, String password, String email) throws SQLException, - NotConnectedException, AlreadyExistsException { - LOG.info("Creating user: " + userName); - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - throw new AlreadyExistsException(); - } - dbManager.updateDB(String.format(CREATE_USER_SQL, userName, hashPassword(password), - email)); - resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - LOG.info("Logged in as \"" + userName + "\""); - currentUserId = resultSet.getInt("user_id"); - } - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public boolean login(String userName, String password) throws SQLException, - NotConnectedException { - LOG.info("Logging in as: " + userName); - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - String dbPassword = resultSet.getString("password"); - String hashPassword = hashPassword(password); - if (dbPassword.equals(hashPassword)) { - LOG.info("Logged in as \"" + userName + "\""); - currentUserId = resultSet.getInt("user_id"); - } else { - LOG.info("User name and password do not match."); - } - } - return false; - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public Map fetchCategories() throws SQLException, NotConnectedException { - LOG.info("Fetching categories"); - if (dbManager.isConnected()) { - Map categories = new HashMap(); - ResultSet resultSet = dbManager.getResultSet(CATEGORY_SQL); - while (resultSet.next()) { - categories.put(resultSet.getInt("category_id"), resultSet.getString("name")); - } - return categories; - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public List fetchMyProjectRows() throws NotLoggedInException, - NotConnectedException, SQLException { - if (dbManager.isConnected()) { - if (isLoggedIn()) { - Map categories = fetchCategories(); - List projects = new ArrayList(); - ResultSet resultSet = dbManager.getResultSet(String.format(MY_PROJECTS_SQL, - currentUserId)); - while (resultSet.next()) { - projects.add(new ProjectEntity(resultSet.getInt("project_id"), resultSet - .getString("name"), resultSet.getString("description"), "", categories - .get(resultSet.getInt("category_id")))); - } - return projects; - } else { - LOG.error("Not logged in"); - throw new NotLoggedInException(); - } - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public String downloadProjectContent(int projectId) throws NotConnectedException, - NotExistsException, SQLException { - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(PROJECT_SQL, projectId)); - if (resultSet.next()) { - return resultSet.getString("content"); - } - throw new NotExistsException("Project with id = " + projectId + " does not exist."); - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public List fetchProjectRows(String searchCriteria) { - return null; - } - - public boolean isLoggedIn() { - return currentUserId != null; - } - - public String hashPassword(String password) { - messageDigest.reset(); - byte[] bytes = messageDigest.digest(password.getBytes()); - String md5 = ""; - for (byte b : bytes) { - String str = Integer.toHexString(b); - if (str.length() == 1) { - str = "0" + str; - } - md5 += str.substring(str.length() - 2); - } - return md5; - } - - public void dispose() { - dbManager.closeConnection(); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java deleted file mode 100644 index 186ba407..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -import java.sql.Connection; -import java.sql.Driver; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -import org.apache.log4j.Logger; - -public class MySqlDBManager { - - private final static Logger LOG = Logger.getLogger(MySqlDBManager.class); - - protected Connection connection; - protected Statement statement; - protected ResultSet resultSet; - protected String url; - protected String user; - protected String pass; - protected boolean connected; - - public MySqlDBManager(String url, String user, String pass) { - this.url = url; - this.user = user; - this.pass = pass; - this.connected = false; - } - - public MySqlDBManager(String host, String port, String userName, String password) { - this(String.format("jdbc:mysql://%s%s", host, port.trim().equals("") ? "" : (":" + port)), - userName, password); - } - - public void connectDB() throws Exception { - if (!connected) { - Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance(); - DriverManager.registerDriver(driver); - String finalUrl = String.format("%s?user=%s&password=%s", url, user, pass); - LOG.info("Trying to connect to: " + url); - connection = DriverManager.getConnection(finalUrl); - statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_READ_ONLY); - connected = true; - } - } - - public boolean isConnected() { - return connected; - } - - public void closeConnection() { - LOG.info("Closing connection."); - try { - if (resultSet != null) { - resultSet.close(); - } - if (statement != null) { - statement.close(); - } - if (connection != null) { - connection.close(); - } - connected = false; - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public ResultSet getResultSet(String query) throws SQLException { - LOG.info("Executing query: " + query); - resultSet = statement.executeQuery(query); - return resultSet; - } - - public Connection getConnection() { - return connection; - } - - public int updateDB(String query) throws SQLException { - LOG.info("Executing query: " + query); - statement.execute(query); - return statement.getUpdateCount(); - } -} \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotConnectedException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotConnectedException.java deleted file mode 100644 index 4752625e..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotConnectedException.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -public class NotConnectedException extends Exception { - - private static final long serialVersionUID = 1L; - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotExistsException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotExistsException.java deleted file mode 100644 index 169dcc37..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotExistsException.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -public class NotExistsException extends Exception { - - private static final long serialVersionUID = 1L; - - public NotExistsException(String message) { - super(message); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotLoggedInException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotLoggedInException.java deleted file mode 100644 index aba9b870..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotLoggedInException.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -public class NotLoggedInException extends Exception { - - private static final long serialVersionUID = 1L; - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/LibraryFrame.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/LibraryFrame.java deleted file mode 100644 index 89f2b839..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/LibraryFrame.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.diylc.swing.plugins.online.view; - -import javax.swing.JFrame; - -public class LibraryFrame extends JFrame { - - private static final long serialVersionUID = 1L; - - public LibraryFrame() { - super("Online Library"); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/LoginDialog.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/LoginDialog.java deleted file mode 100644 index 820bb0e9..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/LoginDialog.java +++ /dev/null @@ -1,135 +0,0 @@ -package org.diylc.swing.plugins.online.view; - -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; - -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JPasswordField; -import javax.swing.JTextField; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; - -import org.diylc.swingframework.ButtonDialog; - -public class LoginDialog extends ButtonDialog { - - private static final long serialVersionUID = 1L; - - private JPanel mainPanel; - - private JTextField userNameField; - private JPasswordField passwordField; - - private String userName; - private String password; - - public LoginDialog(JFrame owner) { - super(owner, "Login", new String[] { OK, CANCEL }); - setMinimumSize(new Dimension(240, 32)); - layoutGui(); - refreshState(); - } - - public String getUserName() { - return userName; - } - - public String getPassword() { - return password; - } - - @Override - protected JComponent getMainComponent() { - if (mainPanel == null) { - mainPanel = new JPanel(new GridBagLayout()); - mainPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.anchor = GridBagConstraints.LINE_START; - gbc.fill = GridBagConstraints.NONE; - gbc.insets = new Insets(2, 2, 2, 2); - - gbc.gridx = 0; - - gbc.gridy = 0; - mainPanel.add(new JLabel("User Name:"), gbc); - - gbc.gridy = 1; - mainPanel.add(new JLabel("Password:"), gbc); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1; - - gbc.gridy = 0; - mainPanel.add(getUserNameField(), gbc); - - gbc.gridy = 1; - mainPanel.add(getPasswordField(), gbc); - } - return mainPanel; - } - - private void refreshState() { - this.userName = getUserNameField().getText(); - this.password = new String(getPasswordField().getPassword()); - - JButton okButton = getButton(OK); - okButton.setEnabled((this.userName.length() > 0) && (this.password.length() > 0)); - } - - private JTextField getUserNameField() { - if (userNameField == null) { - userNameField = new JTextField(); - userNameField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return userNameField; - } - - private JPasswordField getPasswordField() { - if (passwordField == null) { - passwordField = new JPasswordField(); - passwordField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return passwordField; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/NewUserDialog.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/NewUserDialog.java deleted file mode 100644 index 752b6c70..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/NewUserDialog.java +++ /dev/null @@ -1,210 +0,0 @@ -package org.diylc.swing.plugins.online.view; - -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; - -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JPasswordField; -import javax.swing.JTextField; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; - -import org.diylc.swingframework.ButtonDialog; - -public class NewUserDialog extends ButtonDialog { - - private static final long serialVersionUID = 1L; - - private JPanel mainPanel; - - private JTextField userNameField; - private JPasswordField passwordField; - private JPasswordField confirmPasswordField; - private JTextField emailField; - - private String userName; - private String password; - private String email; - - public NewUserDialog(JFrame owner) { - super(owner, "New Account", new String[] { OK, CANCEL }); - setMinimumSize(new Dimension(240, 32)); - layoutGui(); - refreshState(); - userNameField.setText(System.getProperty("user.name")); - } - - public String getUserName() { - return userName; - } - - public String getPassword() { - return password; - } - - public String getEmail() { - return email; - } - - @Override - protected JComponent getMainComponent() { - if (mainPanel == null) { - mainPanel = new JPanel(new GridBagLayout()); - mainPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.anchor = GridBagConstraints.LINE_START; - gbc.fill = GridBagConstraints.NONE; - gbc.insets = new Insets(2, 2, 2, 2); - - gbc.gridx = 0; - - gbc.gridy = 0; - mainPanel.add(new JLabel("User Name:"), gbc); - - gbc.gridy = 1; - mainPanel.add(new JLabel("Password:"), gbc); - - gbc.gridy = 2; - mainPanel.add(new JLabel("Confirm Password:"), gbc); - - gbc.gridy = 3; - mainPanel.add(new JLabel("eMail:"), gbc); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1; - - gbc.gridy = 0; - mainPanel.add(getUserNameField(), gbc); - - gbc.gridy = 1; - mainPanel.add(getPasswordField(), gbc); - - gbc.gridy = 2; - mainPanel.add(getConfirmPasswordField(), gbc); - - gbc.gridy = 3; - mainPanel.add(getEmailField(), gbc); - } - return mainPanel; - } - - private void refreshState() { - this.userName = getUserNameField().getText(); - String password = new String(getPasswordField().getPassword()); - String confirmPassword = new String(getConfirmPasswordField().getPassword()); - if (password.equals(confirmPassword)) { - this.password = password; - } else { - this.password = null; - } - this.email = getEmailField().getText(); - JButton okButton = getButton(OK); - okButton.setEnabled((this.userName.length() > 0) && (this.password != null) - && (this.password.length() > 0)); - } - - private JTextField getUserNameField() { - if (userNameField == null) { - userNameField = new JTextField(); - userNameField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return userNameField; - } - - private JPasswordField getPasswordField() { - if (passwordField == null) { - passwordField = new JPasswordField(); - passwordField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return passwordField; - } - - private JPasswordField getConfirmPasswordField() { - if (confirmPasswordField == null) { - confirmPasswordField = new JPasswordField(); - confirmPasswordField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return confirmPasswordField; - } - - private JTextField getEmailField() { - if (emailField == null) { - emailField = new JTextField(); - emailField.getDocument().addDocumentListener(new DocumentListener() { - - @Override - public void removeUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void insertUpdate(DocumentEvent e) { - refreshState(); - } - - @Override - public void changedUpdate(DocumentEvent e) { - refreshState(); - } - }); - } - return emailField; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/UploadDialog.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/UploadDialog.java deleted file mode 100644 index 15624506..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/UploadDialog.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.diylc.swing.plugins.online.view; - -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; - -import javax.swing.BorderFactory; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.UIManager; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import org.diylc.swingframework.ButtonDialog; - -public class UploadDialog extends ButtonDialog { - - private static final long serialVersionUID = 1L; - - private static final String BULLET = "   • "; - private static final String TERMS_HTML = "Terms of Service

" - + BULLET - + "Online Library is provided free of charge for DIY Layout Creator users.
" - + BULLET - + "Only finished and verified projects may be uploaded to the library. Online Library is not a repository for unfinished projects and temprary work.
" - + BULLET - + "Projects uploaded to the library may be reviewed, modified or deleted by the administrator without notice.
" - + BULLET - + "Once uploaded, project becomes avaialble to all other users. Anyone may use the project, modify it and upload modified version. When modifying an existing projects credit for the original author must be left.
" - + BULLET - + "You can not use Online Library to advertise products or services.
" - + BULLET - + "Users that do not follow these terms may be banned from the server, with or without notice.
" - + BULLET + "Administrator is not responsible for library contents.
" + ""; - - private JPanel mainPanel; - private JLabel termsLabel; - private JCheckBox agreeBox; - - public UploadDialog(JFrame owner) { - super(owner, "Upload", new String[] { OK, CANCEL }); - layoutGui(); - refreshState(); - } - - @Override - protected JComponent getMainComponent() { - if (mainPanel == null) { - mainPanel = new JPanel(new GridBagLayout()); - mainPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.anchor = GridBagConstraints.LINE_START; - gbc.fill = GridBagConstraints.BOTH; - gbc.weightx = 1; - gbc.weighty = 1; - gbc.insets = new Insets(2, 2, 2, 2); - - gbc.gridx = 0; - gbc.gridy = 0; - mainPanel.add(getTermsLabel(), gbc); - - gbc.gridy = 1; - gbc.anchor = GridBagConstraints.CENTER; - gbc.fill = GridBagConstraints.NONE; - gbc.weightx = 0; - gbc.weighty = 0; - mainPanel.add(getAgreeBox(), gbc); - } - return mainPanel; - } - - private void refreshState() { - getButton(OK).setEnabled(getAgreeBox().isSelected()); - } - - private JCheckBox getAgreeBox() { - if (agreeBox == null) { - agreeBox = new JCheckBox("I agree to these terms"); - agreeBox.addChangeListener(new ChangeListener() { - - @Override - public void stateChanged(ChangeEvent e) { - refreshState(); - } - }); - } - return agreeBox; - } - - private JLabel getTermsLabel() { - if (termsLabel == null) { - termsLabel = new JLabel(); - termsLabel.setOpaque(true); - termsLabel.setBackground(UIManager.getColor("ToolTip.background")); - termsLabel.setBorder(BorderFactory.createCompoundBorder(BorderFactory - .createEtchedBorder(), BorderFactory.createEmptyBorder(2, 2, 2, 2))); - termsLabel.setText(TERMS_HTML); - } - return termsLabel; - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java deleted file mode 100644 index b17542dc..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java +++ /dev/null @@ -1,308 +0,0 @@ -package org.diylc.swing.plugins.statusbar; - -import java.awt.BorderLayout; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Point; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.geom.Point2D; -import java.text.DecimalFormat; -import java.text.Format; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - -import javax.swing.BorderFactory; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.SwingUtilities; - -import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.appframework.miscutils.Utils; -import org.diylc.common.BadPositionException; -import org.diylc.common.ComponentType; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; -import org.diylc.images.IconLoader; -import org.diylc.presenter.Presenter; -import org.diylc.swing.ISwingUI; -import org.diylc.swingframework.MemoryBar; -import org.diylc.swingframework.miscutils.PercentageListCellRenderer; -import org.diylc.swingframework.update.UpdateLabel; - -public class StatusBar extends JPanel implements IPlugIn { - - 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"; - private static final Format sizeFormat = new DecimalFormat("0.##"); - - private JComboBox zoomBox; - private UpdateLabel updateLabel; - private MemoryBar memoryPanel; - private JLabel statusLabel; - private JLabel sizeLabel; - - private IPlugInPort plugInPort; - - // State variables - private ComponentType componentSlot; - private Point controlPointSlot; - private List componentNamesUnderCursor; - private List selectedComponentNames; - private List stuckComponentNames; - private String statusMessage; - - public StatusBar(ISwingUI swingUI) { - super(); - - setLayout(new GridBagLayout()); - - try { - swingUI.injectGUIComponent(this, SwingUtilities.BOTTOM); - } catch (BadPositionException e) { - LOG.error("Could not install status bar", e); - } - } - - private JComboBox getZoomBox() { - if (zoomBox == null) { - zoomBox = new JComboBox(plugInPort.getAvailableZoomLevels()); - zoomBox.setSelectedItem(plugInPort.getZoomLevel()); - zoomBox.setFocusable(false); - zoomBox.setRenderer(new PercentageListCellRenderer()); - zoomBox.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - plugInPort.setZoomLevel((Double) zoomBox.getSelectedItem()); - } - }); - } - return zoomBox; - } - - private UpdateLabel getUpdateLabel() { - if (updateLabel == null) { - updateLabel = new UpdateLabel(plugInPort.getCurrentVersionNumber(), UPDATE_URL); - // updateLabel.setBorder(BorderFactory.createCompoundBorder( - // BorderFactory.createEtchedBorder(), BorderFactory - // .createEmptyBorder(2, 4, 2, 4))); - updateLabel.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 4)); - } - return updateLabel; - } - - private MemoryBar getMemoryPanel() { - if (memoryPanel == null) { - memoryPanel = new MemoryBar(false); - } - return memoryPanel; - } - - private JLabel getStatusLabel() { - if (statusLabel == null) { - statusLabel = new JLabel(); - statusLabel.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0)); - } - return statusLabel; - } - - public JLabel getSizeLabel() { - if (sizeLabel == null) { - sizeLabel = new JLabel(IconLoader.Size.getIcon()); - sizeLabel.setFocusable(true); - sizeLabel.setToolTipText("Click to calculate selection size"); - sizeLabel.addMouseListener(new MouseAdapter() { - - @Override - public void mouseClicked(MouseEvent e) { - Point2D size = plugInPort.calculateSelectionDimension(); - boolean metric = ConfigurationManager.getInstance().readBoolean( - Presenter.METRIC_KEY, true); - String text; - if (size == null) { - text = "Selection is empty."; - } else { - text = "Selection size: " + sizeFormat.format(size.getX()) + " x " - + sizeFormat.format(size.getY()) + (metric ? " cm" : " in"); - } - JOptionPane.showMessageDialog(SwingUtilities.getRootPane(StatusBar.this), text, - "Information", JOptionPane.INFORMATION_MESSAGE); - } - }); - } - return sizeLabel; - } - - private void layoutComponents() { - GridBagConstraints gbc = new GridBagConstraints(); - gbc.gridx = 0; - gbc.gridy = 0; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.weightx = 1; - add(getStatusLabel(), gbc); - - JPanel zoomPanel = new JPanel(new BorderLayout()); - zoomPanel.add(new JLabel("Zoom: "), BorderLayout.WEST); - zoomPanel.add(getZoomBox(), BorderLayout.CENTER); - // zoomPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory - // .createEtchedBorder(), BorderFactory.createEmptyBorder(2, 4, 2, - // 4))); - zoomPanel.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 4)); - - gbc.gridx = 1; - gbc.fill = GridBagConstraints.BOTH; - gbc.weightx = 0; - add(zoomPanel, gbc); - - gbc.gridx = 2; - add(getSizeLabel(), gbc); - - gbc.gridx = 3; - add(getUpdateLabel(), gbc); - - gbc.gridx = 4; - gbc.fill = GridBagConstraints.NONE; - add(getMemoryPanel(), gbc); - - gbc.gridx = 5; - add(new JPanel(), gbc); - } - - // IPlugIn - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - - layoutComponents(); - } - - @Override - public EnumSet getSubscribedEventTypes() { - return EnumSet.of(EventType.ZOOM_CHANGED, EventType.SLOT_CHANGED, - EventType.AVAILABLE_CTRL_POINTS_CHANGED, EventType.SELECTION_CHANGED, - EventType.STATUS_MESSAGE_CHANGED); - } - - @SuppressWarnings("unchecked") - @Override - public void processMessage(EventType eventType, Object... params) { - switch (eventType) { - case ZOOM_CHANGED: - if (!params[0].equals(getZoomBox().getSelectedItem())) { - final Double zoom = (Double) params[0]; - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - getZoomBox().setSelectedItem(zoom); - } - }); - } - break; - case SELECTION_CHANGED: - List> selection = (List>) params[0]; - Collection> stuckComponents = (Collection>) params[1]; - Collection componentNames = new HashSet(); - for (IDIYComponent component : selection) { - componentNames.add("" + component.getName() + ""); - } - this.selectedComponentNames = new ArrayList(componentNames); - Collections.sort(this.selectedComponentNames); - this.stuckComponentNames = new ArrayList(); - for (IDIYComponent component : stuckComponents) { - this.stuckComponentNames.add("" + component.getName() - + ""); - } - this.stuckComponentNames.removeAll(this.selectedComponentNames); - Collections.sort(this.stuckComponentNames); - refreshStatusText(); - break; - case SLOT_CHANGED: - componentSlot = (ComponentType) params[0]; - controlPointSlot = (Point) params[1]; - refreshStatusText(); - break; - case AVAILABLE_CTRL_POINTS_CHANGED: - componentNamesUnderCursor = new ArrayList(); - for (IDIYComponent component : ((Map, Integer>) params[0]).keySet()) { - componentNamesUnderCursor.add("" + component.getName() - + ""); - } - Collections.sort(componentNamesUnderCursor); - refreshStatusText(); - break; - case STATUS_MESSAGE_CHANGED: - statusMessage = (String) params[0]; - } - } - - private void refreshStatusText() { - String statusText = this.statusMessage; - if (componentSlot == null) { - if (componentNamesUnderCursor != null && !componentNamesUnderCursor.isEmpty()) { - String formattedNames = Utils.toCommaString(componentNamesUnderCursor); - statusText = "Drag control point(s) of " + formattedNames + ""; - } else if (selectedComponentNames != null && !selectedComponentNames.isEmpty()) { - StringBuilder builder = new StringBuilder(); - builder.append(Utils.toCommaString(selectedComponentNames.subList(0, Math.min(20, - selectedComponentNames.size())))); - if (selectedComponentNames.size() > 15) { - builder.append(" and " + (selectedComponentNames.size() - 15) + " more"); - } - if (!stuckComponentNames.isEmpty()) { - builder.append(" (hold Ctrl and drag to unstuck from "); - builder.append(Utils.toCommaString(stuckComponentNames.subList(0, Math.min(5, - stuckComponentNames.size())))); - if (stuckComponentNames.size() > 5) { - builder.append(" and " + (stuckComponentNames.size() - 5) + " more"); - } - builder.append(")"); - } - statusText = "Selection: " + builder.toString() + ""; - } - } else { - switch (componentSlot.getCreationMethod()) { - case POINT_BY_POINT: - String count; - if (controlPointSlot == null) { - count = "first"; - } else { - count = "second"; - } - statusText = "Click on the canvas to set the " + count - + " control point of a new " + componentSlot.getName() - + " or press Esc to cancel"; - break; - case SINGLE_CLICK: - statusText = "Click on the canvas to create a new " - + componentSlot.getName() + " or press Esc to cancel"; - break; - } - } - final String finalStatus = statusText; - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - getStatusLabel().setText(finalStatus); - } - }); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ComponentButton.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ComponentButton.java deleted file mode 100644 index 0aeba1a6..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ComponentButton.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.awt.Insets; -import java.awt.dnd.DnDConstants; -import java.awt.dnd.DragSource; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.util.ArrayList; -import java.util.List; - -import javax.swing.JButton; - -import org.diylc.common.ComponentType; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; - -/** - * {@link JButton} that displays component type icon and instantiates the - * component when clicked. - * - * @author Branislav Stojkovic - */ -class ComponentButton extends JButton { - - private static final long serialVersionUID = 1L; - - public static int MARGIN = 2; - - private IPlugInPort plugInPort; - private ComponentType componentType; - - public ComponentButton(final IPlugInPort plugInPort, final ComponentType componentType) { - super(componentType.getIcon()); - this.plugInPort = plugInPort; - this.componentType = componentType; - - setMargin(new Insets(MARGIN, MARGIN, MARGIN, MARGIN)); - - setToolTipText("" + componentType.getName() + "
" - + componentType.getDescription() + "
Author: " + componentType.getAuthor() - + "

Double click to select all components of this type" - + ""); - // initializeDnD(); - addMouseListener(new MouseAdapter() { - - @Override - public void mousePressed(MouseEvent e) { - if (e.getButton() == MouseEvent.BUTTON1) { - plugInPort.setNewComponentTypeSlot(componentType); - } else { - List> components = plugInPort.getCurrentProject().getComponents(); - List> newSelection = new ArrayList>(); - for (IDIYComponent component : components) { - if (componentType.getInstanceClass().equals(component.getClass())) { - newSelection.add(component); - } - } - plugInPort.updateSelection(newSelection); - plugInPort.setNewComponentTypeSlot(null); - plugInPort.refresh(); - } - } - }); -// addActionListener(new ActionListener() { -// -// @Override -// public void actionPerformed(ActionEvent e) { -// // plugInPort.setCursorIcon(componentType.getIcon()); -// plugInPort.setNewComponentTypeSlot(componentType); -// // try { -// // plugInPort.instantiateComponent(componentType -// // .getComponentInstanceClass(), null); -// // } catch (Exception e1) { -// // e1.printStackTrace(); -// // } -// } -// }); - addKeyListener(new KeyAdapter() { - - @Override - public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_DELETE) { - plugInPort.deleteSelectedComponents(); - } - } - }); - // addKeyListener(new KeyAdapter() { - // - // @Override - // public void keyPressed(KeyEvent e) { - // if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { - // plugInPort.setNewComponentSlot(null); - // } - // } - // }); - } - - private void initializeDnD() { - // Initialize drag source recognizer. - DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(this, - DnDConstants.ACTION_MOVE, - new ToolboxGestureListener(plugInPort, componentType.getInstanceClass().getName())); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java deleted file mode 100644 index 66c73d24..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java +++ /dev/null @@ -1,182 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Container; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JPanel; -import javax.swing.JTabbedPane; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import org.apache.log4j.Logger; -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.appframework.miscutils.IConfigListener; -import org.diylc.common.ComponentType; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IDIYComponent; -import org.diylc.presenter.ComparatorFactory; -import org.diylc.presenter.ComponentProcessor; -import org.diylc.presenter.Presenter; - -/** - * Tabbed pane that shows all available components categorized into tabs. - * - * @author Branislav Stojkovic - */ -class ComponentTabbedPane extends JTabbedPane { - - private static final long serialVersionUID = 1L; - - private static final Logger LOG = Logger.getLogger(ComponentTabbedPane.class); - - public static int SCROLL_STEP = Presenter.ICON_SIZE + ComponentButton.MARGIN * 2 + 2; - - private final IPlugInPort plugInPort; - private Container recentToolbar; - private List pendingRecentComponents = null; - - public ComponentTabbedPane(IPlugInPort plugInPort) { - super(); - this.plugInPort = plugInPort; - addTab("Recently Used", createRecentComponentsPanel()); - Map> componentTypes = plugInPort.getComponentTypes(); - List categories = new ArrayList(componentTypes.keySet()); - Collections.sort(categories); - for (String category : categories) { - JPanel panel = createTab((componentTypes.get(category))); - addTab(category, panel); - } - addChangeListener(new ChangeListener() { - - @Override - public void stateChanged(ChangeEvent e) { - ComponentTabbedPane.this.plugInPort.setNewComponentTypeSlot(null); - // Refresh recent components if needed - if (pendingRecentComponents != null) { - refreshRecentComponentsToolbar(getRecentToolbar(), pendingRecentComponents); - getRecentToolbar().invalidate(); - pendingRecentComponents = null; - } - } - }); - } - - private JPanel createTab(List componentTypes) { - JPanel panel = new JPanel(new BorderLayout()); - // final JScrollPane scrollPane = - // createComponentScrollBar(componentTypes); - panel.setOpaque(false); - panel.add(createComponentPanel(componentTypes), BorderLayout.CENTER); - // JButton leftButton = new JButton("<"); - // leftButton.addActionListener(new ActionListener() { - // - // @Override - // public void actionPerformed(ActionEvent e) { - // Rectangle rect = scrollPane.getVisibleRect(); - // if (rect.x > SCROLL_STEP) { - // rect.translate(-SCROLL_STEP, 0); - // } else { - // rect.translate(-rect.x, 0); - // } - // } - // }); - // leftButton.setMargin(new Insets(0, 2, 0, 2)); - // JButton rightButton = new JButton(">"); - // rightButton.addActionListener(new ActionListener() { - // - // @Override - // public void actionPerformed(ActionEvent e) { - // Rectangle rect = scrollPane.getVisibleRect(); - // if (rect.x + rect.width < scrollPane.getViewport().getSize().width - - // SCROLL_STEP) { - // rect.translate(SCROLL_STEP, 0); - // } else { - // rect.translate(scrollPane.getViewport().getSize().width - rect.x - - // rect.width, - // 0); - // } - // } - // }); - // rightButton.setMargin(new Insets(0, 2, 0, 2)); - // panel.add(leftButton, BorderLayout.WEST); - // panel.add(scrollPane); - // panel.add(rightButton, BorderLayout.EAST); - return panel; - } - - // private JScrollPane createComponentScrollBar(List - // componentTypes) { - // JScrollPane scrollPane = new - // JScrollPane(createComponentPanel(componentTypes)); - // scrollPane.setOpaque(false); - // scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - // scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); - // return scrollPane; - // } - - public Container getRecentToolbar() { - if (recentToolbar == null) { - recentToolbar = new Container(); - recentToolbar.setLayout(new BoxLayout(recentToolbar, BoxLayout.X_AXIS)); - } - return recentToolbar; - } - - private Component createComponentPanel(List componentTypes) { - Container toolbar = new Container(); - Collections.sort(componentTypes, ComparatorFactory.getInstance() - .getComponentTypeComparator()); - toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.X_AXIS)); - for (ComponentType componentType : componentTypes) { - JButton button = new ComponentButton(plugInPort, componentType); - toolbar.add(button); - } - - return toolbar; - } - - private Component createRecentComponentsPanel() { - JPanel panel = new JPanel(new BorderLayout()); - panel.setOpaque(false); - - final Container toolbar = getRecentToolbar(); - refreshRecentComponentsToolbar(toolbar, (List) ConfigurationManager.getInstance() - .readObject(IPlugInPort.RECENT_COMPONENTS_KEY, new ArrayList())); - ConfigurationManager.getInstance().addConfigListener(IPlugInPort.RECENT_COMPONENTS_KEY, - new IConfigListener() { - - @Override - public void valueChanged(String key, Object value) { - // Cache the new list, we'll refresh when there's a chance - pendingRecentComponents = (List) value; - } - }); - - panel.add(toolbar, BorderLayout.CENTER); - - return panel; - } - - private void refreshRecentComponentsToolbar(Container toolbar, - List recentComponentClassList) { - toolbar.removeAll(); - for (String componentClassName : recentComponentClassList) { - ComponentType componentType; - try { - componentType = ComponentProcessor.getInstance().extractComponentTypeFrom( - (Class>) Class.forName(componentClassName)); - JButton button = new ComponentButton(plugInPort, componentType); - toolbar.add(button); - } catch (ClassNotFoundException e) { - LOG.error("Could not create recent component button for " + componentClassName, e); - } - } - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolBox.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolBox.java deleted file mode 100644 index e8c02b59..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolBox.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.util.EnumSet; - -import javax.swing.SwingConstants; - -import org.apache.log4j.Logger; -import org.diylc.common.BadPositionException; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.swing.ISwingUI; -import org.diylc.swing.plugins.statusbar.StatusBar; - - -public class ToolBox implements IPlugIn { - - private static final Logger LOG = Logger.getLogger(StatusBar.class); - - private ISwingUI swingUI; - private IPlugInPort plugInPort; - - private ComponentTabbedPane componentTabbedPane; - - public ToolBox(ISwingUI swingUI) { - this.swingUI = swingUI; - } - - @Override - public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - try { - swingUI.injectGUIComponent(getComponentTabbedPane(), SwingConstants.TOP); - } catch (BadPositionException e) { - LOG.error("Could not install the toolbox", e); - } - } - - public ComponentTabbedPane getComponentTabbedPane() { - if (componentTabbedPane == null) { - componentTabbedPane = new ComponentTabbedPane(plugInPort); - } - return componentTabbedPane; - } - - @Override - public EnumSet getSubscribedEventTypes() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void processMessage(EventType eventType, Object... params) { - // TODO Auto-generated method stub - - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolboxGestureListener.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolboxGestureListener.java deleted file mode 100644 index 35e08a1d..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolboxGestureListener.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.awt.Cursor; -import java.awt.datatransfer.StringSelection; -import java.awt.dnd.DragGestureEvent; -import java.awt.dnd.DragGestureListener; - -import org.diylc.common.IPlugInPort; - - -/** - * {@link DragGestureListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class ToolboxGestureListener implements DragGestureListener { - - private IPlugInPort presenter; - private String className; - - public ToolboxGestureListener(IPlugInPort presenter, String className) { - super(); - this.presenter = presenter; - this.className = className; - } - - @Override - public void dragGestureRecognized(DragGestureEvent dge) { -// presenter.dragStarted(dge.getDragOrigin()); - dge.startDrag(Cursor.getDefaultCursor(), new StringSelection(className), - new ToolboxSourceListener(presenter)); - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolboxSourceListener.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolboxSourceListener.java deleted file mode 100644 index 2dd25419..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolboxSourceListener.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.diylc.swing.plugins.toolbox; - -import java.awt.dnd.DragSourceDragEvent; -import java.awt.dnd.DragSourceDropEvent; -import java.awt.dnd.DragSourceEvent; -import java.awt.dnd.DragSourceListener; - -import javax.swing.JComponent; - -import org.diylc.common.IPlugInPort; - - -/** - * {@link DragSourceListener} for {@link CanvasPanel}. - * - * @author Branislav Stojkovic - */ -class ToolboxSourceListener implements DragSourceListener { - - private IPlugInPort presenter; - - public ToolboxSourceListener(IPlugInPort presenter) { - super(); - this.presenter = presenter; - } - - @Override - public void dragDropEnd(DragSourceDropEvent dsde) { - ((JComponent) dsde.getDragSourceContext().getComponent()).revalidate(); - } - - @Override - public void dragEnter(DragSourceDragEvent dsde) { - } - - @Override - public void dragExit(DragSourceEvent dse) { - } - - @Override - public void dragOver(DragSourceDragEvent dsde) { - } - - @Override - public void dropActionChanged(DragSourceDragEvent dsde) { - } -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/templates/eyelet.diy b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/templates/eyelet.diy deleted file mode 100644 index 27fb5933..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/templates/eyelet.diy +++ /dev/null @@ -1,65 +0,0 @@ - - New Project - Branislav Stojkovic - - 29.0 - cm - - - 21.0 - cm - - - 0.1 - in - - - - Board1 - 127 - - - - 555 - 450 - - - 1140 - 795 - - - - 555 - 450 - - - 1140 - 795 - - - 248 - 235 - 179 - 255 - - - 173 - 164 - 125 - 255 - - - 0.3 - in - - - 195 - 228 - 237 - 255 - - - - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/templates/perf.diy b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/templates/perf.diy deleted file mode 100644 index 0abb50f5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/templates/perf.diy +++ /dev/null @@ -1,65 +0,0 @@ - - New Project - Branislav Stojkovic - - 29.0 - cm - - - 21.0 - cm - - - 0.1 - in - - - - Board1 - 127 - - - - 585 - 450 - - - 1050 - 690 - - - - 585 - 450 - - - 1050 - 690 - - - 248 - 235 - 179 - 255 - - - 173 - 164 - 125 - 255 - - - 0.1 - in - - - 218 - 138 - 103 - 255 - - - - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java deleted file mode 100644 index 21578424..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.diylc; - -import java.util.ArrayList; -import java.util.List; - -import javax.swing.Icon; -import javax.swing.JFrame; -import javax.swing.JScrollPane; - -import org.apache.log4j.BasicConfigurator; -import org.diylc.swing.plugins.online.model.ProjectEntity; -import org.diylc.swingframework.objecttable.IActionProcessor; -import org.diylc.swingframework.objecttable.ObjectListTable; - -public class TableTest { - - /** - * @param args - * @throws Exception - */ - public static void main(String[] args) throws Exception { - BasicConfigurator.configure(); - - List projects = new ArrayList(); - projects.add(new ProjectEntity(1, "first", "some text", "bane", "none")); - projects.add(new ProjectEntity(2, "second", "anoter text", "bisera", "none")); - - ObjectListTable t = new ObjectListTable(ProjectEntity.class, - new String[] { "getName", "getDescription", "getCategory", "getOwner", - "action:Download" }, new IActionProcessor() { - - @Override - public void actionExecuted(ProjectEntity value, String actionColumnName) { - System.out.println("row clicked: " + actionColumnName + " - " + value); - } - - @Override - public Icon getActionIcon(String actionColumnName) { - return null; - } - - @Override - public String getActionLabel(String actionColumnName) { - return "get me"; - } - }); - t.setData(projects); - JFrame f = new JFrame(); - f.add(new JScrollPane(t)); - f.pack(); - f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - f.setVisible(true); - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Blueprint.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Blueprint.xml deleted file mode 100644 index bd5af8ab..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Blueprint.xml +++ /dev/null @@ -1,21 +0,0 @@ - - Blueprint - - 3 - 122 - 198 - 255 - - - 29 - 140 - 193 - 255 - - - 255 - 255 - 255 - 255 - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Dark.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Dark.xml deleted file mode 100644 index ef5b0634..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Dark.xml +++ /dev/null @@ -1,21 +0,0 @@ - - Dark - - 0 - 0 - 0 - 255 - - - 40 - 40 - 40 - 255 - - - 255 - 255 - 255 - 255 - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Light.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Light.xml deleted file mode 100644 index d2841ca7..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Light.xml +++ /dev/null @@ -1,21 +0,0 @@ - - Light - - 255 - 255 - 255 - 255 - - - 240 - 240 - 240 - 240 - - - 0 - 0 - 0 - 255 - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml deleted file mode 100644 index b93cb67a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml +++ /dev/null @@ -1,721 +0,0 @@ - - - - - 3 - 0 - 4 - - 2011-01-27 21:00:00.000 CET - - - - BUG_FIX - Copy/paste between two instances of the application - - - BUG_FIX - Parsing numerical values in countries that use comma as decimal separator - - - BUG_FIX - Dragging sticky points affects selectability of objects - - - BUG_FIX - Click is sometimes not registered while adding a new component - - - BUG_FIX - Fixed NPE when using default values - - - IMPROVEMENT - Allow shape control points of curves to overlap - - - IMPROVEMENT - Added DIL IC first pin indentation - - - IMPROVEMENT - Added transparency to the potentiometer - - - IMPROVEMENT - Reduced number of layers - - - IMPROVEMENT - Import from v1 files can now read label and electrolytic capacitor components and trace/pad colors - - - IMPROVEMENT - Added worker thread for longer file operation, so GUI doesn't freeze - - - NEW_FEATURE - Added right click menu on the canvas - - - NEW_FEATURE - Added "send to back" and "bring to front" options - - - NEW_FEATURE - Added label component - - - NEW_FEATURE - Added image component - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - - 3 - 0 - 5 - - 2011-01-30 20:00:00.000 CET - - - - BUG_FIX - Curved trace does not show control points - - - BUG_FIX - Potentiometer draws wrong at 180 degrees - - - IMPROVEMENT - Reset component selection when tab is changed - - - IMPROVEMENT - Resistor can show color bands - - - IMPROVEMENT - Electrolytic capacitor has a new icon and new looks - - - IMPROVEMENT - Solder pad can be square - - - IMPROVEMENT - Added keyboard shortcuts to some menu options - - - IMPROVEMENT - V1 file importer can recognize hookup wire and transistors - - - NEW_FEATURE - Added support for creating and loading templates - - - NEW_FEATURE - Added TO-92 transistor - - - NEW_FEATURE - Added TO-220 transistor - - - NEW_FEATURE - Added LED - - - NEW_FEATURE - Added axial electrolytic capacitor - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 0 - 6 - - 2011-02-07 20:00:00.000 CET - - - - BUG_FIX - Copy/paste doesn't work for some components (potentiometer, transistor, etc) - - - BUG_FIX - Resistor color codes are sometimes wrong - - - IMPROVEMENT - Resistors can specify power handling - - - IMPROVEMENT - Capacitors can specify voltage handling - - - IMPROVEMENT - Fixed lead alignment issue - - - IMPROVEMENT - Better scaling, grid lines are more precise - - - IMPROVEMENT - Improved performance - - - NEW_FEATURE - Added resistor schematic symbol - - - NEW_FEATURE - Added capacitor schematic symbol - - - NEW_FEATURE - Added eyelet/turret component - - - NEW_FEATURE - Added Marshall/Trainwreck style boards - - - NEW_FEATURE - Added few types of trimmers - - - NEW_FEATURE - Configurable rendering quality to improve speed - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 0 - 7 - - 2011-02-27 20:00:00.000 CET - - - - BUG_FIX - Resistor and capacitor symbols are not clickable - - - BUG_FIX - Boards sometimes render holes/pads on the edge - - - BUG_FIX - Download link doesn't work on Mac - - - BUG_FIX - Ruler ticks don't always match with the grid - - - BUG_FIX - Micro symbol doesn't get exported to PDF - - - IMPROVEMENT - DIL IC now has more pin options - - - IMPROVEMENT - Send to Back/Bring to Front are more flexible and renamed to match what they do - - - NEW_FEATURE - Auto-save project and restore if app crashes - - - NEW_FEATURE - Added support for themes - - - NEW_FEATURE - Added tube socket - - - NEW_FEATURE - Sticky points may be turned off - - - NEW_FEATURE - Snap to Grid may be turned off - - - NEW_FEATURE - Auto-create solder pads - - - NEW_FEATURE - Auto-edit mode - - - NEW_FEATURE - Continuous component creation - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 0 - 8 - - 2011-03-03 20:00:00.000 CET - - - - BUG_FIX - Sometimes it's not possible to click on a component, especially when layout is large - - - IMPROVEMENT - Curved traces and wires can have 2, 3 and 4 control points - - - NEW_FEATURE - Switchable wheel zoom - - - NEW_FEATURE - Automatic standing resistors, capacitors and diodes - - - NEW_FEATURE - Vertical vero board - - - NEW_FEATURE - Label has editable font - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 0 - 9 - - 2011-08-28 20:00:00.000 CET - - - - BUG_FIX - Auto-created solder pads aren't assigned with default settings and name - - - IMPROVEMENT - Component edit dialog allows changing property values even when they are not the same. Boxes are marked yellow to designate multi-valued state. - - - IMPROVEMENT - Component edit dialog should show mutual properties when components of different types are selected (e.g. curved trace and straight trace width) - - - IMPROVEMENT - Ctrl+click should not clear selection when clicked on the canvas - - - IMPROVEMENT - Increased PNG export resolution - - - IMPROVEMENT - Auto-increment component names when copy-pasting - - - IMPROVEMENT - Do not attempt to write auto-save files if user does not have permissions to create files - - - IMPROVEMENT - Allow zero ohm resistors - - - NEW_FEATURE - Outline mode that resembles PCB silkscreen - - - NEW_FEATURE - Double click on a component button in the toolbar selects all components of that type - - - NEW_FEATURE - Renumber selected components by X or Y axis - - - NEW_FEATURE - Recently used components in the toolbar for easy navigation - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 1 - 0 - - 2012-02-01 20:00:00.000 CET - - - - BUG_FIX - Selection sometimes highlights wrong component(s) - - - BUG_FIX - Renumber function sometimes doesn't work as expected - - - IMPROVEMENT - Increased PNG export resolution to 300dpi - - - IMPROVEMENT - Select All should not include locked components - - - IMPROVEMENT - Better lead and label rendering when lead spacing is smaller than component body - - - IMPROVEMENT - Allow more than 32 pins for IC - - - NEW_FEATURE - Adjustable solder pad hole size - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 2 - 0 - - 2012-02-19 20:00:00.000 CET - - - - NEW_FEATURE - Select components from context menu even when they are under other components - - - NEW_FEATURE - Ctrl+Shift toggles "Snap to Grid" option - - - NEW_FEATURE - Perfboards can show hole coordinates - - - IMPROVEMENT - Smarter resistor labels; try not to overlap label with color code bands - - - IMPROVEMENT - Improved import from v1 file format - - - IMPROVEMENT - Imperial ruler is divided to .1" instead of 1/4" - - - IMPROVEMENT - Allow finer grid spacing up to 0.5mm (0.02") - - - IMPROVEMENT - Do not hard-code voltage and power ratings - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 3 - 0 - - 2012-02-25 20:00:00.000 CET - - - - NEW_FEATURE - Expand selection feature, useful for debugging - - - IMPROVEMENT - Limit length of text in the status bar using "and X more" suffix - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 4 - 0 - - 2012-03-09 20:00:00.000 CET - - - - NEW_FEATURE - IC Symbol - - - NEW_FEATURE - BJT Symbol - - - NEW_FEATURE - MOSFET Symbol - - - NEW_FEATURE - JFET Symbol - - - NEW_FEATURE - Line connector - - - IMPROVEMENT - IC component can display name or value - - - BUG_FIX - "Index out of bounds" exception logs when selecting components - - - BUG_FIX - Loading files fails because encoding is not recognized - - - BUG_FIX - Application breaks when resistance is set to 0 ohms - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 5 - 0 - - 2012-03-15 20:00:00.000 CET - - - - NEW_FEATURE - Generic closed 1/4" jack - - - NEW_FEATURE - Cliff-style closed 1/4" jack - - - NEW_FEATURE - Ground Symbol - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 6 - 0 - - 2012-03-21 20:00:00.000 CET - - - - IMPROVEMENT - Fonts are exported to PDF - - - NEW_FEATURE - Plastic DC jack - - - NEW_FEATURE - Humbucker pickup - - - NEW_FEATURE - Single coil pickup - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 7 - 0 - - 2012-03-27 20:00:00.000 CET - - - - NEW_FEATURE - Lever guitar switch - - - NEW_FEATURE - 9V battery snap - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 8 - 0 - - 2012-08-16 20:00:00.000 CET - - - - NEW_FEATURE - Right click rotates component while laying out on the canvas - - - NEW_FEATURE - Added DIY file association for Windows (run associations.bat) - - - IMPROVEMENT - More usable "Bring to Forward" and "Send to Backward" - - - IMPROVEMENT - Faster copy-paste functionality - - - IMPROVEMENT - Improved auto-save not to slow down the app - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 9 - 0 - - 2012-08-20 20:00:00.000 CET - - - - NEW_FEATURE - Move selected components with arrow keys (and ctrl/shift) - - - IMPROVEMENT - Right-click in the toolbar to select all components of the same type - - - IMPROVEMENT - Click on a component in the toolbar sometimes doesn't register - - - IMPROVEMENT - Remove junk from BOM (eyelets, wires, traces) - - - IMPROVEMENT - Improved "Recently Used" toolbox, doesn't jump as you click - - - IMPROVEMENT - Control number of "Recently Used" items from config.properties - - - IMPROVEMENT - Faster component placement, auto-focus on "Value" box - - - IMPROVEMENT - Transistors can show name or value - - - IMPROVEMENT - UNICODE font export to PDF files - - - IMPROVEMENT - More intuitive unsaved file warning message - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 10 - 0 - - 2012-08-20 20:00:00.000 CET - - - - IMPROVEMENT - Improved overall performance - - - BUG_FIX - Should be more stable under OSX and not crash unexpectedly - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - - 3 - 11 - 0 - - 2012-08-20 21:00:00.000 CET - - - - IMPROVEMENT - Some components (like Image) can be placed in any layer using Send to Back/Bring to Front - - - IMPROVEMENT - Replaced deep cloning library with manual implementation - - - http://code.google.com/p/diy-layout-creator/downloads/list - - - \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/.classpath b/diylc-core/.classpath similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/.classpath rename to diylc-core/.classpath diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/.project b/diylc-core/.project similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/.project rename to diylc-core/.project diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/.settings/org.eclipse.jdt.ui.prefs b/diylc-core/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/.settings/org.eclipse.jdt.ui.prefs rename to diylc-core/.settings/org.eclipse.jdt.ui.prefs diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/build.xml b/diylc-core/build.xml similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/build.xml rename to diylc-core/build.xml diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.properties b/diylc-core/config.properties similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/config.properties rename to diylc-core/config.properties diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/jettison-1.0.1.jar b/diylc-core/lib/jettison-1.0.1.jar similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/lib/jettison-1.0.1.jar rename to diylc-core/lib/jettison-1.0.1.jar diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/junit-4.7.jar b/diylc-core/lib/junit-4.7.jar similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/lib/junit-4.7.jar rename to diylc-core/lib/junit-4.7.jar diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/log4j-1.2.15.jar b/diylc-core/lib/log4j-1.2.15.jar similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/lib/log4j-1.2.15.jar rename to diylc-core/lib/log4j-1.2.15.jar diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/lib/xstream-1.3.1.jar b/diylc-core/lib/xstream-1.3.1.jar similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/lib/xstream-1.3.1.jar rename to diylc-core/lib/xstream-1.3.1.jar diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar b/diylc-core/library/main.jar similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar rename to diylc-core/library/main.jar diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/BadPositionException.java b/diylc-core/src/org/diylc/common/BadPositionException.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/BadPositionException.java rename to diylc-core/src/org/diylc/common/BadPositionException.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ComponentType.java b/diylc-core/src/org/diylc/common/ComponentType.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ComponentType.java rename to diylc-core/src/org/diylc/common/ComponentType.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Display.java b/diylc-core/src/org/diylc/common/Display.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Display.java rename to diylc-core/src/org/diylc/common/Display.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/DrawOption.java b/diylc-core/src/org/diylc/common/DrawOption.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/DrawOption.java rename to diylc-core/src/org/diylc/common/DrawOption.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/EventType.java b/diylc-core/src/org/diylc/common/EventType.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/EventType.java rename to diylc-core/src/org/diylc/common/EventType.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/GridType.java b/diylc-core/src/org/diylc/common/GridType.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/GridType.java rename to diylc-core/src/org/diylc/common/GridType.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/HorizontalAlignment.java b/diylc-core/src/org/diylc/common/HorizontalAlignment.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/HorizontalAlignment.java rename to diylc-core/src/org/diylc/common/HorizontalAlignment.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IComponentFiler.java b/diylc-core/src/org/diylc/common/IComponentFiler.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IComponentFiler.java rename to diylc-core/src/org/diylc/common/IComponentFiler.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IKeyProcessor.java b/diylc-core/src/org/diylc/common/IKeyProcessor.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IKeyProcessor.java rename to diylc-core/src/org/diylc/common/IKeyProcessor.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IMouseProcessor.java b/diylc-core/src/org/diylc/common/IMouseProcessor.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IMouseProcessor.java rename to diylc-core/src/org/diylc/common/IMouseProcessor.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IPlugIn.java b/diylc-core/src/org/diylc/common/IPlugIn.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IPlugIn.java rename to diylc-core/src/org/diylc/common/IPlugIn.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IPlugInPort.java b/diylc-core/src/org/diylc/common/IPlugInPort.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IPlugInPort.java rename to diylc-core/src/org/diylc/common/IPlugInPort.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ISelectionProcessor.java b/diylc-core/src/org/diylc/common/ISelectionProcessor.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ISelectionProcessor.java rename to diylc-core/src/org/diylc/common/ISelectionProcessor.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ITask.java b/diylc-core/src/org/diylc/common/ITask.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ITask.java rename to diylc-core/src/org/diylc/common/ITask.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/LabelPosition.java b/diylc-core/src/org/diylc/common/LabelPosition.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/LabelPosition.java rename to diylc-core/src/org/diylc/common/LabelPosition.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ObjectCache.java b/diylc-core/src/org/diylc/common/ObjectCache.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ObjectCache.java rename to diylc-core/src/org/diylc/common/ObjectCache.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Orientation.java b/diylc-core/src/org/diylc/common/Orientation.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Orientation.java rename to diylc-core/src/org/diylc/common/Orientation.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/OrientationHV.java b/diylc-core/src/org/diylc/common/OrientationHV.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/OrientationHV.java rename to diylc-core/src/org/diylc/common/OrientationHV.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/PropertyWrapper.java b/diylc-core/src/org/diylc/common/PropertyWrapper.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/PropertyWrapper.java rename to diylc-core/src/org/diylc/common/PropertyWrapper.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ResistorColorCode.java b/diylc-core/src/org/diylc/common/ResistorColorCode.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/ResistorColorCode.java rename to diylc-core/src/org/diylc/common/ResistorColorCode.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/VerticalAlignment.java b/diylc-core/src/org/diylc/common/VerticalAlignment.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/VerticalAlignment.java rename to diylc-core/src/org/diylc/common/VerticalAlignment.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java b/diylc-core/src/org/diylc/components/AbstractComponent.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractComponent.java rename to diylc-core/src/org/diylc/components/AbstractComponent.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java b/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractCurvedComponent.java rename to diylc-core/src/org/diylc/components/AbstractCurvedComponent.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java b/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractLeadedComponent.java rename to diylc-core/src/org/diylc/components/AbstractLeadedComponent.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractSchematicLeadedSymbol.java b/diylc-core/src/org/diylc/components/AbstractSchematicLeadedSymbol.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractSchematicLeadedSymbol.java rename to diylc-core/src/org/diylc/components/AbstractSchematicLeadedSymbol.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractTransparentComponent.java b/diylc-core/src/org/diylc/components/AbstractTransparentComponent.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractTransparentComponent.java rename to diylc-core/src/org/diylc/components/AbstractTransparentComponent.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/AllowAllValidator.java b/diylc-core/src/org/diylc/core/AllowAllValidator.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/AllowAllValidator.java rename to diylc-core/src/org/diylc/core/AllowAllValidator.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/ComponentState.java b/diylc-core/src/org/diylc/core/ComponentState.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/ComponentState.java rename to diylc-core/src/org/diylc/core/ComponentState.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/CreationMethod.java b/diylc-core/src/org/diylc/core/CreationMethod.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/CreationMethod.java rename to diylc-core/src/org/diylc/core/CreationMethod.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ExpansionMode.java b/diylc-core/src/org/diylc/core/ExpansionMode.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ExpansionMode.java rename to diylc-core/src/org/diylc/core/ExpansionMode.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IDIYComponent.java b/diylc-core/src/org/diylc/core/IDIYComponent.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IDIYComponent.java rename to diylc-core/src/org/diylc/core/IDIYComponent.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDrawingObserver.java b/diylc-core/src/org/diylc/core/IDrawingObserver.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IDrawingObserver.java rename to diylc-core/src/org/diylc/core/IDrawingObserver.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IPropertyValidator.java b/diylc-core/src/org/diylc/core/IPropertyValidator.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/IPropertyValidator.java rename to diylc-core/src/org/diylc/core/IPropertyValidator.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IView.java b/diylc-core/src/org/diylc/core/IView.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IView.java rename to diylc-core/src/org/diylc/core/IView.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/Project.java b/diylc-core/src/org/diylc/core/Project.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/Project.java rename to diylc-core/src/org/diylc/core/Project.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Theme.java b/diylc-core/src/org/diylc/core/Theme.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Theme.java rename to diylc-core/src/org/diylc/core/Theme.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/ValidationException.java b/diylc-core/src/org/diylc/core/ValidationException.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/ValidationException.java rename to diylc-core/src/org/diylc/core/ValidationException.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/VisibilityPolicy.java b/diylc-core/src/org/diylc/core/VisibilityPolicy.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/VisibilityPolicy.java rename to diylc-core/src/org/diylc/core/VisibilityPolicy.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/BomPolicy.java b/diylc-core/src/org/diylc/core/annotations/BomPolicy.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/BomPolicy.java rename to diylc-core/src/org/diylc/core/annotations/BomPolicy.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java b/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java rename to diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/EditableProperty.java b/diylc-core/src/org/diylc/core/annotations/EditableProperty.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/EditableProperty.java rename to diylc-core/src/org/diylc/core/annotations/EditableProperty.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/PositiveMeasureValidator.java b/diylc-core/src/org/diylc/core/annotations/PositiveMeasureValidator.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/annotations/PositiveMeasureValidator.java rename to diylc-core/src/org/diylc/core/annotations/PositiveMeasureValidator.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/AbstractMeasure.java b/diylc-core/src/org/diylc/core/measures/AbstractMeasure.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/AbstractMeasure.java rename to diylc-core/src/org/diylc/core/measures/AbstractMeasure.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Capacitance.java b/diylc-core/src/org/diylc/core/measures/Capacitance.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Capacitance.java rename to diylc-core/src/org/diylc/core/measures/Capacitance.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/CapacitanceUnit.java b/diylc-core/src/org/diylc/core/measures/CapacitanceUnit.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/CapacitanceUnit.java rename to diylc-core/src/org/diylc/core/measures/CapacitanceUnit.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Inductance.java b/diylc-core/src/org/diylc/core/measures/Inductance.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Inductance.java rename to diylc-core/src/org/diylc/core/measures/Inductance.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/InductanceUnit.java b/diylc-core/src/org/diylc/core/measures/InductanceUnit.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/InductanceUnit.java rename to diylc-core/src/org/diylc/core/measures/InductanceUnit.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Power.java b/diylc-core/src/org/diylc/core/measures/Power.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Power.java rename to diylc-core/src/org/diylc/core/measures/Power.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/PowerUnit.java b/diylc-core/src/org/diylc/core/measures/PowerUnit.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/PowerUnit.java rename to diylc-core/src/org/diylc/core/measures/PowerUnit.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Resistance.java b/diylc-core/src/org/diylc/core/measures/Resistance.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Resistance.java rename to diylc-core/src/org/diylc/core/measures/Resistance.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/ResistanceUnit.java b/diylc-core/src/org/diylc/core/measures/ResistanceUnit.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/ResistanceUnit.java rename to diylc-core/src/org/diylc/core/measures/ResistanceUnit.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Size.java b/diylc-core/src/org/diylc/core/measures/Size.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Size.java rename to diylc-core/src/org/diylc/core/measures/Size.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/SizeUnit.java b/diylc-core/src/org/diylc/core/measures/SizeUnit.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/SizeUnit.java rename to diylc-core/src/org/diylc/core/measures/SizeUnit.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Unit.java b/diylc-core/src/org/diylc/core/measures/Unit.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Unit.java rename to diylc-core/src/org/diylc/core/measures/Unit.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Voltage.java b/diylc-core/src/org/diylc/core/measures/Voltage.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Voltage.java rename to diylc-core/src/org/diylc/core/measures/Voltage.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/VoltageUnit.java b/diylc-core/src/org/diylc/core/measures/VoltageUnit.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/VoltageUnit.java rename to diylc-core/src/org/diylc/core/measures/VoltageUnit.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/IconLoader.java b/diylc-core/src/org/diylc/images/IconLoader.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/IconLoader.java rename to diylc-core/src/org/diylc/images/IconLoader.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/about.png b/diylc-core/src/org/diylc/images/about.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/about.png rename to diylc-core/src/org/diylc/images/about.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/add.png b/diylc-core/src/org/diylc/images/add.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/add.png rename to diylc-core/src/org/diylc/images/add.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/arrow_down_blue.png b/diylc-core/src/org/diylc/images/arrow_down_blue.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/arrow_down_blue.png rename to diylc-core/src/org/diylc/images/arrow_down_blue.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/arrow_left_blue.png b/diylc-core/src/org/diylc/images/arrow_left_blue.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/arrow_left_blue.png rename to diylc-core/src/org/diylc/images/arrow_left_blue.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/arrow_right_blue.png b/diylc-core/src/org/diylc/images/arrow_right_blue.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/arrow_right_blue.png rename to diylc-core/src/org/diylc/images/arrow_right_blue.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/arrow_up_blue.png b/diylc-core/src/org/diylc/images/arrow_up_blue.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/arrow_up_blue.png rename to diylc-core/src/org/diylc/images/arrow_up_blue.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/at.png b/diylc-core/src/org/diylc/images/at.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/at.png rename to diylc-core/src/org/diylc/images/at.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/back.png b/diylc-core/src/org/diylc/images/back.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/back.png rename to diylc-core/src/org/diylc/images/back.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/blackboard.png b/diylc-core/src/org/diylc/images/blackboard.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/blackboard.png rename to diylc-core/src/org/diylc/images/blackboard.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/bom.png b/diylc-core/src/org/diylc/images/bom.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/bom.png rename to diylc-core/src/org/diylc/images/bom.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/bug.png b/diylc-core/src/org/diylc/images/bug.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/bug.png rename to diylc-core/src/org/diylc/images/bug.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/check.png b/diylc-core/src/org/diylc/images/check.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/check.png rename to diylc-core/src/org/diylc/images/check.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/chest.png b/diylc-core/src/org/diylc/images/chest.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/chest.png rename to diylc-core/src/org/diylc/images/chest.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/component.png b/diylc-core/src/org/diylc/images/component.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/component.png rename to diylc-core/src/org/diylc/images/component.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/copy.png b/diylc-core/src/org/diylc/images/copy.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/copy.png rename to diylc-core/src/org/diylc/images/copy.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/csv.png b/diylc-core/src/org/diylc/images/csv.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/csv.png rename to diylc-core/src/org/diylc/images/csv.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/cut.png b/diylc-core/src/org/diylc/images/cut.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/cut.png rename to diylc-core/src/org/diylc/images/cut.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/delete.png b/diylc-core/src/org/diylc/images/delete.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/delete.png rename to diylc-core/src/org/diylc/images/delete.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/disk_blue.png b/diylc-core/src/org/diylc/images/disk_blue.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/disk_blue.png rename to diylc-core/src/org/diylc/images/disk_blue.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/disks.png b/diylc-core/src/org/diylc/images/disks.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/disks.png rename to diylc-core/src/org/diylc/images/disks.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/document.png b/diylc-core/src/org/diylc/images/document.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/document.png rename to diylc-core/src/org/diylc/images/document.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/document_edit.png b/diylc-core/src/org/diylc/images/document_edit.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/document_edit.png rename to diylc-core/src/org/diylc/images/document_edit.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/document_info.png b/diylc-core/src/org/diylc/images/document_info.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/document_info.png rename to diylc-core/src/org/diylc/images/document_info.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/document_plain_yellow.png b/diylc-core/src/org/diylc/images/document_plain_yellow.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/document_plain_yellow.png rename to diylc-core/src/org/diylc/images/document_plain_yellow.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/donate.gif b/diylc-core/src/org/diylc/images/donate.gif similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/donate.gif rename to diylc-core/src/org/diylc/images/donate.gif diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/donate.png b/diylc-core/src/org/diylc/images/donate.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/donate.png rename to diylc-core/src/org/diylc/images/donate.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/edit.png b/diylc-core/src/org/diylc/images/edit.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/edit.png rename to diylc-core/src/org/diylc/images/edit.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/edit_component.png b/diylc-core/src/org/diylc/images/edit_component.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/edit_component.png rename to diylc-core/src/org/diylc/images/edit_component.png diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/elements_selection.png b/diylc-core/src/org/diylc/images/elements_selection.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/images/elements_selection.png rename to diylc-core/src/org/diylc/images/elements_selection.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/error.png b/diylc-core/src/org/diylc/images/error.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/error.png rename to diylc-core/src/org/diylc/images/error.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/excel.png b/diylc-core/src/org/diylc/images/excel.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/excel.png rename to diylc-core/src/org/diylc/images/excel.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/exit.png b/diylc-core/src/org/diylc/images/exit.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/exit.png rename to diylc-core/src/org/diylc/images/exit.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/export.png b/diylc-core/src/org/diylc/images/export.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/export.png rename to diylc-core/src/org/diylc/images/export.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/faq.png b/diylc-core/src/org/diylc/images/faq.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/faq.png rename to diylc-core/src/org/diylc/images/faq.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/folder_music.png b/diylc-core/src/org/diylc/images/folder_music.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/folder_music.png rename to diylc-core/src/org/diylc/images/folder_music.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/folder_out.png b/diylc-core/src/org/diylc/images/folder_out.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/folder_out.png rename to diylc-core/src/org/diylc/images/folder_out.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/forbidden.png b/diylc-core/src/org/diylc/images/forbidden.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/forbidden.png rename to diylc-core/src/org/diylc/images/forbidden.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/form_blue.png b/diylc-core/src/org/diylc/images/form_blue.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/form_blue.png rename to diylc-core/src/org/diylc/images/form_blue.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/form_blue_add.png b/diylc-core/src/org/diylc/images/form_blue_add.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/form_blue_add.png rename to diylc-core/src/org/diylc/images/form_blue_add.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/front.png b/diylc-core/src/org/diylc/images/front.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/front.png rename to diylc-core/src/org/diylc/images/front.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/garbage.png b/diylc-core/src/org/diylc/images/garbage.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/garbage.png rename to diylc-core/src/org/diylc/images/garbage.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/gear.png b/diylc-core/src/org/diylc/images/gear.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/gear.png rename to diylc-core/src/org/diylc/images/gear.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/gears.png b/diylc-core/src/org/diylc/images/gears.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/gears.png rename to diylc-core/src/org/diylc/images/gears.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/graph_edge.png b/diylc-core/src/org/diylc/images/graph_edge.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/graph_edge.png rename to diylc-core/src/org/diylc/images/graph_edge.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/graph_edge_curved.png b/diylc-core/src/org/diylc/images/graph_edge_curved.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/graph_edge_curved.png rename to diylc-core/src/org/diylc/images/graph_edge_curved.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/graph_edge_directed.png b/diylc-core/src/org/diylc/images/graph_edge_directed.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/graph_edge_directed.png rename to diylc-core/src/org/diylc/images/graph_edge_directed.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/group.png b/diylc-core/src/org/diylc/images/group.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/group.png rename to diylc-core/src/org/diylc/images/group.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/html.png b/diylc-core/src/org/diylc/images/html.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/html.png rename to diylc-core/src/org/diylc/images/html.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/icon_large.png b/diylc-core/src/org/diylc/images/icon_large.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/icon_large.png rename to diylc-core/src/org/diylc/images/icon_large.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/icon_medium.png b/diylc-core/src/org/diylc/images/icon_medium.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/icon_medium.png rename to diylc-core/src/org/diylc/images/icon_medium.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/icon_small.png b/diylc-core/src/org/diylc/images/icon_small.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/icon_small.png rename to diylc-core/src/org/diylc/images/icon_small.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/id_card.png b/diylc-core/src/org/diylc/images/id_card.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/id_card.png rename to diylc-core/src/org/diylc/images/id_card.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/id_card_add.png b/diylc-core/src/org/diylc/images/id_card_add.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/id_card_add.png rename to diylc-core/src/org/diylc/images/id_card_add.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/image.png b/diylc-core/src/org/diylc/images/image.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/image.png rename to diylc-core/src/org/diylc/images/image.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/lightbulb_off.png b/diylc-core/src/org/diylc/images/lightbulb_off.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/lightbulb_off.png rename to diylc-core/src/org/diylc/images/lightbulb_off.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/lightbulb_on.png b/diylc-core/src/org/diylc/images/lightbulb_on.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/lightbulb_on.png rename to diylc-core/src/org/diylc/images/lightbulb_on.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/manual.png b/diylc-core/src/org/diylc/images/manual.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/manual.png rename to diylc-core/src/org/diylc/images/manual.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/media_play_green.png b/diylc-core/src/org/diylc/images/media_play_green.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/media_play_green.png rename to diylc-core/src/org/diylc/images/media_play_green.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/media_stop_red.png b/diylc-core/src/org/diylc/images/media_stop_red.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/media_stop_red.png rename to diylc-core/src/org/diylc/images/media_stop_red.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/move_small.png b/diylc-core/src/org/diylc/images/move_small.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/move_small.png rename to diylc-core/src/org/diylc/images/move_small.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/navigate_check.png b/diylc-core/src/org/diylc/images/navigate_check.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/navigate_check.png rename to diylc-core/src/org/diylc/images/navigate_check.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/navigate_plus.png b/diylc-core/src/org/diylc/images/navigate_plus.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/navigate_plus.png rename to diylc-core/src/org/diylc/images/navigate_plus.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/notebook_add.png b/diylc-core/src/org/diylc/images/notebook_add.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/notebook_add.png rename to diylc-core/src/org/diylc/images/notebook_add.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/paste.png b/diylc-core/src/org/diylc/images/paste.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/paste.png rename to diylc-core/src/org/diylc/images/paste.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/pdf.png b/diylc-core/src/org/diylc/images/pdf.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/pdf.png rename to diylc-core/src/org/diylc/images/pdf.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/pens.png b/diylc-core/src/org/diylc/images/pens.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/pens.png rename to diylc-core/src/org/diylc/images/pens.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/photo_scenery.png b/diylc-core/src/org/diylc/images/photo_scenery.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/photo_scenery.png rename to diylc-core/src/org/diylc/images/photo_scenery.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/plugin.png b/diylc-core/src/org/diylc/images/plugin.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/plugin.png rename to diylc-core/src/org/diylc/images/plugin.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/print.png b/diylc-core/src/org/diylc/images/print.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/print.png rename to diylc-core/src/org/diylc/images/print.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/redo.png b/diylc-core/src/org/diylc/images/redo.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/redo.png rename to diylc-core/src/org/diylc/images/redo.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/refresh.png b/diylc-core/src/org/diylc/images/refresh.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/refresh.png rename to diylc-core/src/org/diylc/images/refresh.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/save_as.png b/diylc-core/src/org/diylc/images/save_as.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/save_as.png rename to diylc-core/src/org/diylc/images/save_as.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/selection.png b/diylc-core/src/org/diylc/images/selection.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/selection.png rename to diylc-core/src/org/diylc/images/selection.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/size.png b/diylc-core/src/org/diylc/images/size.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/size.png rename to diylc-core/src/org/diylc/images/size.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/sort.png b/diylc-core/src/org/diylc/images/sort.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/sort.png rename to diylc-core/src/org/diylc/images/sort.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/trace_mask.png b/diylc-core/src/org/diylc/images/trace_mask.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/trace_mask.png rename to diylc-core/src/org/diylc/images/trace_mask.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/undo.png b/diylc-core/src/org/diylc/images/undo.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/undo.png rename to diylc-core/src/org/diylc/images/undo.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/ungroup.png b/diylc-core/src/org/diylc/images/ungroup.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/ungroup.png rename to diylc-core/src/org/diylc/images/ungroup.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/upload.png b/diylc-core/src/org/diylc/images/upload.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/upload.png rename to diylc-core/src/org/diylc/images/upload.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/view.png b/diylc-core/src/org/diylc/images/view.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/view.png rename to diylc-core/src/org/diylc/images/view.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/warning.png b/diylc-core/src/org/diylc/images/warning.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/warning.png rename to diylc-core/src/org/diylc/images/warning.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/window_colors.png b/diylc-core/src/org/diylc/images/window_colors.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/window_colors.png rename to diylc-core/src/org/diylc/images/window_colors.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/wrench.png b/diylc-core/src/org/diylc/images/wrench.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/wrench.png rename to diylc-core/src/org/diylc/images/wrench.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/zoom_in.png b/diylc-core/src/org/diylc/images/zoom_in.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/zoom_in.png rename to diylc-core/src/org/diylc/images/zoom_in.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/zoom_out.png b/diylc-core/src/org/diylc/images/zoom_out.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/zoom_out.png rename to diylc-core/src/org/diylc/images/zoom_out.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/zoom_small.png b/diylc-core/src/org/diylc/images/zoom_small.png similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/zoom_small.png rename to diylc-core/src/org/diylc/images/zoom_small.png diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/log4j.properties b/diylc-core/src/org/diylc/log4j.properties similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/log4j.properties rename to diylc-core/src/org/diylc/log4j.properties diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/CalcUtils.java b/diylc-core/src/org/diylc/presenter/CalcUtils.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/CalcUtils.java rename to diylc-core/src/org/diylc/presenter/CalcUtils.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java b/diylc-core/src/org/diylc/presenter/ComparatorFactory.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java rename to diylc-core/src/org/diylc/presenter/ComparatorFactory.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentProcessor.java b/diylc-core/src/org/diylc/presenter/ComponentProcessor.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentProcessor.java rename to diylc-core/src/org/diylc/presenter/ComponentProcessor.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentZOrderFiler.java b/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComponentZOrderFiler.java rename to diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/DrawingManager.java b/diylc-core/src/org/diylc/presenter/DrawingManager.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/DrawingManager.java rename to diylc-core/src/org/diylc/presenter/DrawingManager.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/G2DWrapper.java b/diylc-core/src/org/diylc/presenter/G2DWrapper.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/G2DWrapper.java rename to diylc-core/src/org/diylc/presenter/G2DWrapper.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/InstantiationManager.java b/diylc-core/src/org/diylc/presenter/InstantiationManager.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/InstantiationManager.java rename to diylc-core/src/org/diylc/presenter/InstantiationManager.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/PointConverter.java b/diylc-core/src/org/diylc/presenter/PointConverter.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/PointConverter.java rename to diylc-core/src/org/diylc/presenter/PointConverter.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc-core/src/org/diylc/presenter/Presenter.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java rename to diylc-core/src/org/diylc/presenter/Presenter.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ProjectFileManager.java b/diylc-core/src/org/diylc/presenter/ProjectFileManager.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ProjectFileManager.java rename to diylc-core/src/org/diylc/presenter/ProjectFileManager.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/BomEntry.java b/diylc-core/src/org/diylc/utils/BomEntry.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/BomEntry.java rename to diylc-core/src/org/diylc/utils/BomEntry.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/BomMaker.java b/diylc-core/src/org/diylc/utils/BomMaker.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/BomMaker.java rename to diylc-core/src/org/diylc/utils/BomMaker.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/utils/Constants.java b/diylc-core/src/org/diylc/utils/Constants.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/utils/Constants.java rename to diylc-core/src/org/diylc/utils/Constants.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/utils/MemoryCleaner.java b/diylc-core/src/org/diylc/utils/MemoryCleaner.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/utils/MemoryCleaner.java rename to diylc-core/src/org/diylc/utils/MemoryCleaner.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/templates/eyelet.diy b/diylc-core/templates/eyelet.diy similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/templates/eyelet.diy rename to diylc-core/templates/eyelet.diy diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/templates/perf.diy b/diylc-core/templates/perf.diy similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/templates/perf.diy rename to diylc-core/templates/perf.diy diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/AllTests.java b/diylc-core/test/org/diylc/AllTests.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/AllTests.java rename to diylc-core/test/org/diylc/AllTests.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/components/MockDIYComponent.java b/diylc-core/test/org/diylc/components/MockDIYComponent.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/components/MockDIYComponent.java rename to diylc-core/test/org/diylc/components/MockDIYComponent.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/plugins/file/BomMakerTest.java b/diylc-core/test/org/diylc/plugins/file/BomMakerTest.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/plugins/file/BomMakerTest.java rename to diylc-core/test/org/diylc/plugins/file/BomMakerTest.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/presenter/ClassProcessorTest.java b/diylc-core/test/org/diylc/presenter/ClassProcessorTest.java similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/presenter/ClassProcessorTest.java rename to diylc-core/test/org/diylc/presenter/ClassProcessorTest.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/themes/Blueprint.xml b/diylc-core/themes/Blueprint.xml similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/themes/Blueprint.xml rename to diylc-core/themes/Blueprint.xml diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/themes/Dark.xml b/diylc-core/themes/Dark.xml similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/themes/Dark.xml rename to diylc-core/themes/Dark.xml diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/themes/Light.xml b/diylc-core/themes/Light.xml similarity index 100% rename from diy-layout-creator --username bancika@gmail.com/DIYLC/themes/Light.xml rename to diylc-core/themes/Light.xml