diff --git a/diylc/diylc-core/src/org/diylc/common/ComponentType.java b/diylc/diylc-core/src/org/diylc/common/ComponentType.java index 2f8a14a7..0fc555fc 100644 --- a/diylc/diylc-core/src/org/diylc/common/ComponentType.java +++ b/diylc/diylc-core/src/org/diylc/common/ComponentType.java @@ -33,11 +33,12 @@ public class ComponentType { private boolean rotatable; private IAutoCreator autoCreator; private KeywordPolicy keywordPolicy; + private String keywordTag; public ComponentType(String name, String description, CreationMethod creationMethod, String category, String namePrefix, String author, Icon icon, Class> instanceClass, double zOrder, boolean flexibleZOrder, boolean stretchable, BomPolicy bomPolicy, boolean autoEdit, boolean rotatable, - IAutoCreator autoCreator, KeywordPolicy keywordPolicy) { + IAutoCreator autoCreator, KeywordPolicy keywordPolicy, String keywordTag) { super(); this.name = name; this.description = description; @@ -55,6 +56,7 @@ public class ComponentType { this.rotatable = rotatable; this.autoCreator = autoCreator; this.keywordPolicy = keywordPolicy; + this.keywordTag = keywordTag; } public String getName() { @@ -120,6 +122,10 @@ public class ComponentType { public KeywordPolicy getKeywordPolicy() { return keywordPolicy; } + + public String getKeywordTag() { + return keywordTag; + } @Override public String toString() { diff --git a/diylc/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java b/diylc/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java index 6a0d6d7e..f26b1c9e 100644 --- a/diylc/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java +++ b/diylc/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java @@ -80,6 +80,19 @@ public @interface ComponentDescriptor { */ boolean rotatable() default true; + /** + * Defines if and how a component should appear in auto-generated project keywords. See + * {@link KeywordPolicy} for more info. + * + * @return + */ KeywordPolicy keywordPolicy() default KeywordPolicy.NEVER_SHOW; + /** + * Only used if {@link KeywordPolicy} is set to {@link KeywordPolicy#SHOW_TAG}. + * + * @return + */ + String keywordTag() default ""; + } diff --git a/diylc/diylc-core/src/org/diylc/core/annotations/KeywordPolicy.java b/diylc/diylc-core/src/org/diylc/core/annotations/KeywordPolicy.java index 3049389a..5191334a 100644 --- a/diylc/diylc-core/src/org/diylc/core/annotations/KeywordPolicy.java +++ b/diylc/diylc-core/src/org/diylc/core/annotations/KeywordPolicy.java @@ -1,5 +1,25 @@ package org.diylc.core.annotations; public enum KeywordPolicy { - SHOW_TYPE_NAME, SHOW_VALUE, NEVER_SHOW, + /** + * The component is represented with its type. + */ + SHOW_TYPE_NAME, + /** + * The component is represented with its value. + */ + SHOW_VALUE, + /** + * The component is not important enough and will not be shown in the keywords. + */ + NEVER_SHOW, + /** + * The component is represented with the value of {@link ComponentDescriptor#keywordTag()} + */ + SHOW_TAG, + /** + * The component is represented with both the value of {@link ComponentDescriptor#keywordTag()} + * and the actual component value + */ + SHOW_TAG_AND_VALUE, } diff --git a/diylc/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java b/diylc/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java index fbbaffb6..f7d2f84c 100644 --- a/diylc/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java +++ b/diylc/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java @@ -8,22 +8,14 @@ import java.net.NetworkInterface; import java.net.URL; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; -import java.util.ArrayList; -import java.util.HashSet; import java.util.List; -import java.util.Set; import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.common.ComponentType; -import org.diylc.core.IDIYComponent; -import org.diylc.core.Project; -import org.diylc.core.annotations.KeywordPolicy; import org.diylc.plugins.cloud.model.CommentEntity; import org.diylc.plugins.cloud.model.IServiceAPI; import org.diylc.plugins.cloud.model.ProjectEntity; import org.diylc.plugins.cloud.model.UserEntity; -import org.diylc.presenter.ComponentProcessor; import com.diyfever.httpproxy.PhpFlatProxy; import com.diyfever.httpproxy.ProxyFactory; @@ -299,26 +291,6 @@ public class CloudPresenter { } } - @SuppressWarnings("unchecked") - public String extractKeywords(Project project) { - Set words = new HashSet(); - for (IDIYComponent c : project.getComponents()) { - ComponentType cType = - ComponentProcessor.getInstance().extractComponentTypeFrom((Class>) c.getClass()); - if (cType.getKeywordPolicy() == KeywordPolicy.SHOW_TYPE_NAME) - words.add(cType.getName().toLowerCase()); - if (cType.getKeywordPolicy() == KeywordPolicy.SHOW_VALUE && c.getValueForDisplay() != null - && c.getValueForDisplay().trim().length() > 0) - words.add(c.getValueForDisplay().trim().toLowerCase()); - } - StringBuilder sb = new StringBuilder(); - for (String w : words) - sb.append(w).append(","); - if (sb.length() > 0) - sb.deleteCharAt(sb.length() - 1); - return sb.toString(); - } - private String getMachineId() { if (machineId == null) { try { diff --git a/diylc/diylc-core/src/org/diylc/presenter/ComponentProcessor.java b/diylc/diylc-core/src/org/diylc/presenter/ComponentProcessor.java index 1250ab23..50d84676 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/ComponentProcessor.java +++ b/diylc/diylc-core/src/org/diylc/presenter/ComponentProcessor.java @@ -3,7 +3,6 @@ package org.diylc.presenter; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; -import java.awt.Desktop.Action; import java.awt.image.BufferedImage; import java.lang.reflect.Method; import java.util.ArrayList; @@ -76,6 +75,7 @@ public class ComponentProcessor { boolean rotatable; IAutoCreator autoCreator = null; KeywordPolicy keywordPolicy; + String keywordTag; if (clazz.isAnnotationPresent(ComponentDescriptor.class)) { ComponentDescriptor annotation = clazz.getAnnotation(ComponentDescriptor.class); name = annotation.name(); @@ -91,7 +91,8 @@ public class ComponentProcessor { autoEdit = annotation.autoEdit(); rotatable = annotation.rotatable(); keywordPolicy = annotation.keywordPolicy(); - } else { + keywordTag = annotation.keywordTag(); + } else { // default name = clazz.getSimpleName(); description = ""; creationMethod = CreationMethod.SINGLE_CLICK; @@ -105,6 +106,7 @@ public class ComponentProcessor { autoEdit = true; rotatable = true; keywordPolicy = KeywordPolicy.NEVER_SHOW; + keywordTag = null; } if (clazz.isAnnotationPresent(AutoCreator.class)) { AutoCreator annotation = clazz.getAnnotation(AutoCreator.class); @@ -132,7 +134,7 @@ public class ComponentProcessor { } ComponentType componentType = new ComponentType(name, description, creationMethod, category, namePrefix, author, icon, clazz, zOrder, - flexibleZOrder, stretchable, bomPolicy, autoEdit, rotatable, autoCreator, keywordPolicy); + flexibleZOrder, stretchable, bomPolicy, autoEdit, rotatable, autoCreator, keywordPolicy, keywordTag); componentTypeMap.put(clazz.getName(), componentType); return componentType; } diff --git a/diylc/diylc-core/src/org/diylc/presenter/InstantiationManager.java b/diylc/diylc-core/src/org/diylc/presenter/InstantiationManager.java index 7877c945..64f0b5a5 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/InstantiationManager.java +++ b/diylc/diylc-core/src/org/diylc/presenter/InstantiationManager.java @@ -41,7 +41,7 @@ public class InstantiationManager { private static final ComponentType clipboardType = new ComponentType("Clipboard contents", "Components from the clipboard", CreationMethod.SINGLE_CLICK, "Multi", "", "", null, null, 0, false, false, null, - false, true, null, KeywordPolicy.NEVER_SHOW); + false, true, null, KeywordPolicy.NEVER_SHOW, null); public InstantiationManager() {} diff --git a/diylc/diylc-core/src/org/diylc/utils/KeywordExtractor.java b/diylc/diylc-core/src/org/diylc/utils/KeywordExtractor.java new file mode 100644 index 00000000..040f2c86 --- /dev/null +++ b/diylc/diylc-core/src/org/diylc/utils/KeywordExtractor.java @@ -0,0 +1,47 @@ +package org.diylc.utils; + +import java.util.HashSet; +import java.util.Set; + +import org.diylc.common.ComponentType; +import org.diylc.core.IDIYComponent; +import org.diylc.core.Project; +import org.diylc.core.annotations.KeywordPolicy; +import org.diylc.presenter.ComponentProcessor; + +public class KeywordExtractor { + + private static KeywordExtractor instance; + + public static KeywordExtractor getInstance() { + if (instance == null) { + instance = new KeywordExtractor(); + } + return instance; + } + + private KeywordExtractor() {} + + @SuppressWarnings("unchecked") + public String extractKeywords(Project project) { + Set words = new HashSet(); + for (IDIYComponent c : project.getComponents()) { + ComponentType cType = + ComponentProcessor.getInstance().extractComponentTypeFrom((Class>) c.getClass()); + if (cType.getKeywordPolicy() == KeywordPolicy.SHOW_TYPE_NAME) + words.add(cType.getName().toLowerCase()); + if ((cType.getKeywordPolicy() == KeywordPolicy.SHOW_VALUE || cType.getKeywordPolicy() == KeywordPolicy.SHOW_TAG_AND_VALUE) + && c.getValueForDisplay() != null && c.getValueForDisplay().trim().length() > 0) + words.add(c.getValueForDisplay().trim().toLowerCase()); + if ((cType.getKeywordPolicy() == KeywordPolicy.SHOW_TAG || cType.getKeywordPolicy() == KeywordPolicy.SHOW_TAG_AND_VALUE) + && cType.getKeywordTag() != null && cType.getKeywordTag().length() > 0) + words.add(cType.getKeywordTag().trim().toLowerCase()); + } + StringBuilder sb = new StringBuilder(); + for (String w : words) + sb.append(w).append(","); + if (sb.length() > 0) + sb.deleteCharAt(sb.length() - 1); + return sb.toString(); + } +} diff --git a/diylc/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java index 6176027b..10a3869f 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/MarshallPerfBoard.java @@ -21,7 +21,8 @@ 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, autoEdit = false, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME) + bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, autoEdit = false, keywordPolicy = KeywordPolicy.SHOW_TAG, + keywordTag = "Perf Board") public class MarshallPerfBoard extends AbstractBoard { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/boards/PerfBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/PerfBoard.java index 768a6b1e..51983dd3 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/PerfBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/PerfBoard.java @@ -20,7 +20,8 @@ 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, autoEdit = false, keywordPolicy = KeywordPolicy.SHOW_TYPE_NAME) + bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, autoEdit = false, keywordPolicy = KeywordPolicy.SHOW_TAG, + keywordTag = "Perf Board") public class PerfBoard extends AbstractBoard { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java b/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java index 2e0f472b..85edd364 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java @@ -14,13 +14,14 @@ 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.annotations.KeywordPolicy; 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, - autoEdit = false) + autoEdit = false, keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "PCB") public class CopperTrace extends AbstractLeadedComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java b/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java index 38e0b5f0..cf77cbfc 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java @@ -12,12 +12,14 @@ 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.annotations.KeywordPolicy; 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, autoEdit = false) + zOrder = IDIYComponent.TRACE, bomPolicy = BomPolicy.NEVER_SHOW, autoEdit = false, + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "PCB") public class CurvedTrace extends AbstractCurvedComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java b/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java index bc54a6bb..5617d594 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/SolderPad.java @@ -15,6 +15,7 @@ import org.diylc.core.annotations.AutoCreator; import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; @@ -23,10 +24,11 @@ import org.diylc.utils.Constants; @AutoCreator(creatorClass = SolderPadAutoCreator.class) @ComponentDescriptor(name = "Solder Pad", category = "Connectivity", author = "Branislav Stojkovic", description = "Copper solder pad, round or square", instanceNamePrefix = "Pad", stretchable = false, - zOrder = IDIYComponent.TRACE + 0.1, bomPolicy = BomPolicy.NEVER_SHOW, autoEdit = false) + zOrder = IDIYComponent.TRACE + 0.1, bomPolicy = BomPolicy.NEVER_SHOW, autoEdit = false, + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "PCB") public class SolderPad extends AbstractComponent { - private static final long serialVersionUID = 1L; + 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); diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java index 10d7c12d..25e66536 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java @@ -27,13 +27,15 @@ 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.annotations.KeywordPolicy; 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", autoEdit = false) + instanceNamePrefix = "PKP", autoEdit = false, keywordPolicy = KeywordPolicy.SHOW_TAG, + keywordTag = "Guitar Wiring Diagram") public class HumbuckerPickup extends AbstractTransparentComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java b/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java index 3e93c8a6..057e3c26 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/LeverSwitch.java @@ -25,13 +25,15 @@ 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.annotations.KeywordPolicy; 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") + instanceNamePrefix = "SW", keywordPolicy = KeywordPolicy.SHOW_TAG, + keywordTag = "Guitar Wiring Diagram") public class LeverSwitch extends AbstractTransparentComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java index 6d5a76da..ce1a00cb 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java @@ -28,13 +28,15 @@ 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.annotations.KeywordPolicy; 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", autoEdit = false) + instanceNamePrefix = "PKP", autoEdit = false, keywordPolicy = KeywordPolicy.SHOW_TAG, + keywordTag = "Guitar Wiring Diagram") public class SingleCoilPickup extends AbstractTransparentComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java index 7bb375b2..95f8ac32 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/CapacitorSymbol.java @@ -9,6 +9,7 @@ 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.KeywordPolicy; import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.measures.Capacitance; import org.diylc.core.measures.Size; @@ -16,7 +17,8 @@ import org.diylc.core.measures.SizeUnit; @ComponentDescriptor(name = "Capacitor (schematic symbol)", author = "Branislav Stojkovic", category = "Schematics", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "C", - description = "Capacitor schematic symbol with an optional polarity sign", zOrder = IDIYComponent.COMPONENT) + description = "Capacitor schematic symbol with an optional polarity sign", zOrder = IDIYComponent.COMPONENT, + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Schematic") public class CapacitorSymbol extends AbstractSchematicLeadedSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/InductorSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/InductorSymbol.java index eea232d5..8078a226 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/InductorSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/InductorSymbol.java @@ -9,6 +9,7 @@ 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.KeywordPolicy; import org.diylc.core.annotations.PositiveMeasureValidator; import org.diylc.core.measures.Current; import org.diylc.core.measures.Inductance; @@ -18,7 +19,8 @@ import org.diylc.core.measures.SizeUnit; @ComponentDescriptor(name = "Inductor (schematic symbol)", author = "Branislav Stojkovic", category = "Schematics", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "L", - description = "Inductor schematic symbol", zOrder = IDIYComponent.COMPONENT) + description = "Inductor schematic symbol", zOrder = IDIYComponent.COMPONENT, + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Schematic") public class InductorSymbol extends AbstractSchematicLeadedSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerSymbol.java index 275ec4c6..12adae28 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/PotentiometerSymbol.java @@ -10,11 +10,13 @@ import java.awt.geom.Rectangle2D; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.KeywordPolicy; import org.diylc.components.semiconductors.AbstractTransistorSymbol; @ComponentDescriptor(name = "Potentiometer Symbol", author = "MCbx", category = "Schematics", instanceNamePrefix = " VR", description = "Potentiometer symbol", stretchable = false, - zOrder = IDIYComponent.COMPONENT, rotatable = true) + zOrder = IDIYComponent.COMPONENT, rotatable = true, keywordPolicy = KeywordPolicy.SHOW_TAG, + keywordTag = "Schematic") public class PotentiometerSymbol extends AbstractTransistorSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java b/diylc/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java index 4d6d0557..f0ebcfb9 100644 --- a/diylc/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/passive/ResistorSymbol.java @@ -9,6 +9,7 @@ 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.KeywordPolicy; import org.diylc.core.measures.PowerUnit; import org.diylc.core.measures.Resistance; import org.diylc.core.measures.Size; @@ -16,7 +17,8 @@ import org.diylc.core.measures.SizeUnit; @ComponentDescriptor(name = "Resistor (schematic symbol)", author = "Branislav Stojkovic", category = "Schematics", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "R", - description = "Resistor schematic symbol", zOrder = IDIYComponent.COMPONENT) + description = "Resistor schematic symbol", zOrder = IDIYComponent.COMPONENT, + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Schematic") public class ResistorSymbol extends AbstractSchematicLeadedSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java index 1d78a088..130b17af 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java @@ -15,7 +15,8 @@ import org.diylc.core.annotations.KeywordPolicy; @ComponentDescriptor(name = "BJT Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "Bipolar junction transistor schematic symbol", stretchable = false, - zOrder = IDIYComponent.COMPONENT, rotatable = true, keywordPolicy = KeywordPolicy.SHOW_VALUE) + zOrder = IDIYComponent.COMPONENT, rotatable = true, keywordPolicy = KeywordPolicy.SHOW_TAG_AND_VALUE, + keywordTag = "Schematic") public class BJTSymbol extends AbstractTransistorSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeSymbol.java index 6caf06f0..1af857fa 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/DiodeSymbol.java @@ -7,12 +7,13 @@ import org.diylc.common.ObjectCache; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; @ComponentDescriptor(name = "Diode (schematic symbol)", author = "Branislav Stojkovic", category = "Schematics", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", description = "Diode schematic symbol", - zOrder = IDIYComponent.COMPONENT) + zOrder = IDIYComponent.COMPONENT, keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Schematic") public class DiodeSymbol extends AbstractDiodeSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java index a4eb236c..696b5a9a 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/ICSymbol.java @@ -33,7 +33,8 @@ import org.diylc.utils.Constants; @ComponentDescriptor(name = "IC Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "IC", description = "IC symbol with 3 or 5 contacts", stretchable = false, - zOrder = IDIYComponent.COMPONENT, rotatable = false, keywordPolicy = KeywordPolicy.SHOW_VALUE) + zOrder = IDIYComponent.COMPONENT, rotatable = false, keywordPolicy = KeywordPolicy.SHOW_TAG_AND_VALUE, + keywordTag = "Schematic") public class ICSymbol extends AbstractTransparentComponent { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java index 4acb6690..553945c0 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/JFETSymbol.java @@ -13,7 +13,8 @@ import org.diylc.core.annotations.KeywordPolicy; @ComponentDescriptor(name = "JFET Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "JFET transistor schematic symbol", stretchable = false, - zOrder = IDIYComponent.COMPONENT, rotatable = true, keywordPolicy = KeywordPolicy.SHOW_VALUE) + zOrder = IDIYComponent.COMPONENT, rotatable = true, keywordPolicy = KeywordPolicy.SHOW_TAG_AND_VALUE, + keywordTag = "Schematic") public class JFETSymbol extends AbstractTransistorSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/LEDSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/LEDSymbol.java index e1a529b2..d59acafd 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/LEDSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/LEDSymbol.java @@ -8,10 +8,11 @@ import org.diylc.common.ObjectCache; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.KeywordPolicy; @ComponentDescriptor(name = "LED (schematic symbol)", author = "Branislav Stojkovic", category = "Schematics", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", description = "Diode schematic symbol", - zOrder = IDIYComponent.COMPONENT) + zOrder = IDIYComponent.COMPONENT, keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Schematic") public class LEDSymbol extends DiodeSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java index 1e7a0714..1fa51b2f 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/MOSFETSymbol.java @@ -13,7 +13,8 @@ import org.diylc.core.annotations.KeywordPolicy; @ComponentDescriptor(name = "MOSFET Symbol", author = "Branislav Stojkovic", category = "Schematics", instanceNamePrefix = "Q", description = "MOSFET transistor schematic symbol", stretchable = false, - zOrder = IDIYComponent.COMPONENT, rotatable = true, keywordPolicy = KeywordPolicy.SHOW_VALUE) + zOrder = IDIYComponent.COMPONENT, rotatable = true, keywordPolicy = KeywordPolicy.SHOW_TAG_AND_VALUE, + keywordTag = "Schematic") public class MOSFETSymbol extends AbstractTransistorSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/SchottkyDiodeSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/SchottkyDiodeSymbol.java index b5a55585..fbbae589 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/SchottkyDiodeSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/SchottkyDiodeSymbol.java @@ -7,12 +7,14 @@ import org.diylc.common.ObjectCache; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; @ComponentDescriptor(name = "Schottky diode (schematic symbol)", author = "Branislav Stojkovic", category = "Schematics", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", - description = "Schottky diode schematic symbol", zOrder = IDIYComponent.COMPONENT) + description = "Schottky diode schematic symbol", zOrder = IDIYComponent.COMPONENT, + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Schematic") public class SchottkyDiodeSymbol extends AbstractDiodeSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/ZenerDiodeSymbol.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/ZenerDiodeSymbol.java index 50f16909..fd0c044e 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/ZenerDiodeSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/ZenerDiodeSymbol.java @@ -7,12 +7,14 @@ import org.diylc.common.ObjectCache; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.KeywordPolicy; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; @ComponentDescriptor(name = "Zener diode (schematic symbol)", author = "Branislav Stojkovic", category = "Schematics", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", - description = "Zener diode schematic symbol", zOrder = IDIYComponent.COMPONENT) + description = "Zener diode schematic symbol", zOrder = IDIYComponent.COMPONENT, + keywordPolicy = KeywordPolicy.SHOW_TAG, keywordTag = "Schematic") public class ZenerDiodeSymbol extends AbstractDiodeSymbol { private static final long serialVersionUID = 1L; diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UploadDialog.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UploadDialog.java index 44bd1071..b4050bee 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UploadDialog.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UploadDialog.java @@ -29,6 +29,7 @@ import org.diylc.common.IPlugInPort; import org.diylc.plugins.cloud.presenter.CloudException; import org.diylc.plugins.cloud.presenter.CloudPresenter; import org.diylc.swingframework.ButtonDialog; +import org.diylc.utils.KeywordExtractor; public class UploadDialog extends ButtonDialog { @@ -236,8 +237,8 @@ public class UploadDialog extends ButtonDialog { private JTextField getKeywordsField() { if (keywordsField == null) { - keywordsField = new JTextField(); - keywordsField.setText(cloudPresenter.extractKeywords(plugInPort.getCurrentProject())); + keywordsField = new JTextField(); + keywordsField.setText(KeywordExtractor.getInstance().extractKeywords(plugInPort.getCurrentProject())); } return keywordsField; }