From 8611a2ac929fc969964b4507c91cf5c89264e3f2 Mon Sep 17 00:00:00 2001 From: bancika Date: Mon, 20 Feb 2012 03:24:07 +0000 Subject: [PATCH] --- .../DIYLC/.classpath | 17 - .../DIYLC/.project | 17 - .../DIYLC/DIYLCStarter.launch | 15 - .../DIYLC/build.xml | 78 - .../DIYLC/config.xml | 86 - .../DIYLC/lib/bancika-gui-framework.jar | Bin 107214 -> 0 bytes .../DIYLC/library/main.jar | Bin 99869 -> 0 bytes .../DIYLC/src/org/diylc/DIYLCStarter.java | 76 - .../DIYLC/src/org/diylc/common/IPlugIn.java | 19 - .../src/org/diylc/common/IPlugInPort.java | 375 ----- .../diylc/components/AbstractComponent.java | 73 - .../components/AbstractLeadedComponent.java | 336 ---- .../DIYLC/src/org/diylc/core/Project.java | 225 --- .../diylc/core/measures/AbstractMeasure.java | 81 - .../org/diylc/core/measures/Resistance.java | 78 - .../diylc/core/measures/ResistanceUnit.java | 24 - .../src/org/diylc/images/IconLoader.java | 61 - .../org/diylc/presenter/DrawingManager.java | 396 ----- .../src/org/diylc/presenter/G2DWrapper.java | 673 -------- .../diylc/presenter/InstantiationManager.java | 219 --- .../src/org/diylc/presenter/Presenter.java | 1391 ----------------- .../diylc/presenter/ProjectFileManager.java | 456 ------ .../src/org/diylc/swing/ActionFactory.java | 870 ----------- .../org/diylc/swing/gui/DialogFactory.java | 155 -- .../src/org/diylc/swing/gui/MainFrame.java | 370 ----- .../org/diylc/swing/gui/TemplateDialog.java | 285 ---- .../diylc/swing/gui/editor/FontEditor.java | 42 - .../org/diylc/swing/gui/editor/IntEditor.java | 35 - .../diylc/swing/gui/editor/MeasureEditor.java | 97 -- .../gui/editor/PropertyEditorDialog.java | 170 -- .../plugins/autosave/AutoSavePlugin.java | 73 - .../plugins/canvas/CanvasGestureListener.java | 29 - .../swing/plugins/canvas/CanvasPanel.java | 210 --- .../swing/plugins/canvas/CanvasPlugin.java | 319 ---- .../plugins/canvas/CanvasTargetListener.java | 95 -- .../swing/plugins/edit/EditMenuPlugin.java | 224 --- .../diylc/swing/plugins/file/BomDialog.java | 180 --- .../plugins/file/ProjectDrawingProvider.java | 55 - .../swing/plugins/file/ProjectPreview.java | 163 -- .../file/TraceMaskDrawingProvider.java | 43 - .../swing/plugins/help/HelpMenuPlugin.java | 120 -- .../swing/plugins/online/OnlineManager.java | 155 -- .../plugins/online/view/LoginDialog.java | 135 -- .../plugins/online/view/NewUserDialog.java | 210 --- .../plugins/online/view/UploadDialog.java | 105 -- .../swing/plugins/statusbar/StatusBar.java | 301 ---- .../plugins/toolbox/ComponentButton.java | 108 -- .../plugins/toolbox/ComponentTabbedPane.java | 169 -- .../DIYLC/test/org/diylc/TableTest.java | 56 - .../diylc/components/MockDIYComponent.java | 146 -- .../org/diylc/plugins/file/BomMakerTest.java | 37 - .../DIYLC/update.xml | 373 ----- .../Library/.classpath | 10 - .../Library/.project | 17 - .../Library/build.xml | 63 - .../Library/lib/bancika-gui-framework.jar | Bin 100168 -> 0 bytes .../Library/lib/diylc.jar | Bin 343822 -> 0 bytes .../components/boards/AbstractBoard.java | 124 -- .../diylc/components/boards/BlankBoard.java | 20 - .../diylc/components/boards/EyeletBoard.java | 115 -- .../components/boards/MarshallPerfBoard.java | 109 -- .../diylc/components/boards/PerfBoard.java | 107 -- .../diylc/components/boards/VeroBoard.java | 142 -- .../components/connectivity/SolderPad.java | 139 -- .../electromechanical/MiniToggleSwitch.java | 270 ---- .../src/org/diylc/components/misc/BOM.java | 170 -- .../passive/AxialElectrolyticCapacitor.java | 149 -- .../passive/AxialFilmCapacitor.java | 86 - .../components/passive/CapacitorSymbol.java | 101 -- .../passive/PotentiometerPanel.java | 279 ---- .../org/diylc/components/passive/Power.java | 18 - .../passive/RadialElectrolytic.java | 184 --- .../passive/RadialFilmCapacitor.java | 82 - .../diylc/components/passive/Resistor.java | 122 -- .../components/passive/ResistorSymbol.java | 84 - .../org/diylc/components/passive/Voltage.java | 11 - .../components/semiconductors/DIL_IC.java | 358 ----- .../semiconductors/DiodePlastic.java | 112 -- .../diylc/components/semiconductors/LED.java | 107 -- .../semiconductors/TransistorTO220.java | 308 ---- .../semiconductors/TransistorTO92.java | 268 ---- .../org/diylc/components/tube/TubeSocket.java | 328 ---- .../diylc/common/BadPositionException.java | 7 - .../src/org/diylc/common/ComponentType.java | 88 -- .../src/org/diylc/common/Display.java | 11 - .../src/org/diylc/common/DrawOption.java | 40 - .../src/org/diylc/common/EventType.java | 83 - .../src/org/diylc/common/GridType.java | 6 - .../src/org/diylc/common/IComponentFiler.java | 8 - .../src/org/diylc/common/ITask.java | 34 - .../src/org/diylc/common/LabelPosition.java | 11 - .../src/org/diylc/common/ObjectCache.java | 39 - .../src/org/diylc/common/Orientation.java | 15 - .../src/org/diylc/common/OrientationHV.java | 11 - .../src/org/diylc/common/PropertyWrapper.java | 156 -- .../org/diylc/common/ResistorColorCode.java | 14 - .../components/AbstractCurvedComponent.java | 249 --- .../AbstractSchematicLeadedSymbol.java | 72 - .../AbstractTransparentComponent.java | 21 - .../src/org/diylc/core/AllowAllValidator.java | 13 - .../src/org/diylc/core/ComponentState.java | 11 - .../src/org/diylc/core/CreationMethod.java | 6 - .../src/org/diylc/core/IDIYComponent.java | 122 -- .../src/org/diylc/core/IDrawingObserver.java | 15 - .../org/diylc/core/IPropertyValidator.java | 16 - .../diylc-core/src/org/diylc/core/IView.java | 38 - .../diylc-core/src/org/diylc/core/Theme.java | 86 - .../org/diylc/core/ValidationException.java | 11 - .../src/org/diylc/core/VisibilityPolicy.java | 22 - .../core/annotations/ComponentDescriptor.java | 62 - .../core/annotations/EditableProperty.java | 42 - .../annotations/PositiveMeasureValidator.java | 20 - .../org/diylc/core/measures/Capacitance.java | 31 - .../diylc/core/measures/CapacitanceUnit.java | 24 - .../org/diylc/core/measures/Inductance.java | 31 - .../diylc/core/measures/InductanceUnit.java | 24 - .../src/org/diylc/core/measures/Size.java | 47 - .../src/org/diylc/core/measures/SizeUnit.java | 17 - .../src/org/diylc/core/measures/Unit.java | 6 - .../diylc-core/src/org/diylc/log4j.properties | 9 - .../src/org/diylc/presenter/CalcUtils.java | 25 - .../diylc/presenter/ComparatorFactory.java | 88 -- .../diylc/presenter/ComponentProcessor.java | 225 --- .../diylc/presenter/ComponentZOrderFiler.java | 23 - .../org/diylc/presenter/PointConverter.java | 41 - .../src/org/diylc/utils/Constants.java | 27 - .../src/org/diylc/utils/MemoryCleaner.java | 43 - .../diylc-core/test/org/diylc/AllTests.java | 14 - .../diylc/presenter/ClassProcessorTest.java | 22 - .../diylc-library/lib/log4j-1.2.15.jar | Bin 391834 -> 0 bytes .../diylc-library/lib/xstream-1.3.1.jar | Bin 431406 -> 0 bytes .../diylc/components/connectivity/AWG.java | 15 - .../components/connectivity/CopperTrace.java | 122 -- .../components/connectivity/CurvedTrace.java | 68 - .../diylc/components/connectivity/Eyelet.java | 139 -- .../components/connectivity/HookupWire.java | 63 - .../diylc/components/connectivity/Jumper.java | 97 -- .../components/connectivity/TraceCut.java | 132 -- .../electromechanical/ToggleSwitchType.java | 11 - .../components/misc/IconImageConverter.java | 102 -- .../src/org/diylc/components/misc/Image.java | 131 -- .../src/org/diylc/components/misc/Label.java | 202 --- .../src/org/diylc/components/misc/image.png | Bin 1659 -> 0 bytes .../passive/AbstractPotentiometer.java | 85 - .../passive/PotentiometerValue.java | 28 - .../passive/RadialCeramicDiskCapacitor.java | 80 - .../components/passive/ResistorValue.java | 28 - .../org/diylc/components/passive/Taper.java | 12 - .../passive/TrimmerPotentiometer.java | 375 ----- .../.settings/org.eclipse.jdt.ui.prefs | 4 - .../diylc-swing/config.properties | 2 - .../diylc-swing/lib/cloning-1.5.jar | Bin 9838 -> 0 bytes .../diylc-swing/lib/iText-2.1.7.jar | Bin 1130070 -> 0 bytes .../diylc-swing/lib/jettison-1.0.1.jar | Bin 56702 -> 0 bytes .../diylc-swing/lib/junit-4.7.jar | Bin 232354 -> 0 bytes .../diylc-swing/lib/log4j-1.2.15.jar | Bin 391834 -> 0 bytes .../diylc-swing/lib/objenesis-1.1.jar | Bin 31582 -> 0 bytes .../lib/poi-3.5-FINAL-20090928.jar | Bin 1516415 -> 0 bytes .../diylc-swing/lib/xstream-1.3.1.jar | Bin 431406 -> 0 bytes .../src/org/diylc/images/about.png | Bin 875 -> 0 bytes .../diylc-swing/src/org/diylc/images/add.png | Bin 729 -> 0 bytes .../src/org/diylc/images/arrow_down_blue.png | Bin 749 -> 0 bytes .../src/org/diylc/images/arrow_left_blue.png | Bin 736 -> 0 bytes .../src/org/diylc/images/arrow_right_blue.png | Bin 707 -> 0 bytes .../src/org/diylc/images/arrow_up_blue.png | Bin 714 -> 0 bytes .../diylc-swing/src/org/diylc/images/at.png | Bin 993 -> 0 bytes .../diylc-swing/src/org/diylc/images/back.png | Bin 537 -> 0 bytes .../src/org/diylc/images/blackboard.png | Bin 4216 -> 0 bytes .../diylc-swing/src/org/diylc/images/bom.png | Bin 863 -> 0 bytes .../diylc-swing/src/org/diylc/images/bug.png | Bin 850 -> 0 bytes .../src/org/diylc/images/check.png | Bin 708 -> 0 bytes .../src/org/diylc/images/chest.png | Bin 960 -> 0 bytes .../src/org/diylc/images/component.png | Bin 901 -> 0 bytes .../diylc-swing/src/org/diylc/images/copy.png | Bin 728 -> 0 bytes .../diylc-swing/src/org/diylc/images/csv.png | Bin 595 -> 0 bytes .../diylc-swing/src/org/diylc/images/cut.png | Bin 781 -> 0 bytes .../src/org/diylc/images/delete.png | Bin 914 -> 0 bytes .../src/org/diylc/images/disk_blue.png | Bin 876 -> 0 bytes .../src/org/diylc/images/disks.png | Bin 853 -> 0 bytes .../src/org/diylc/images/document.png | Bin 596 -> 0 bytes .../src/org/diylc/images/document_edit.png | Bin 765 -> 0 bytes .../src/org/diylc/images/document_info.png | Bin 696 -> 0 bytes .../diylc/images/document_plain_yellow.png | Bin 597 -> 0 bytes .../src/org/diylc/images/donate.gif | Bin 1714 -> 0 bytes .../src/org/diylc/images/donate.png | Bin 845 -> 0 bytes .../diylc-swing/src/org/diylc/images/edit.png | Bin 928 -> 0 bytes .../src/org/diylc/images/edit_component.png | Bin 697 -> 0 bytes .../src/org/diylc/images/error.png | Bin 892 -> 0 bytes .../src/org/diylc/images/excel.png | Bin 751 -> 0 bytes .../diylc-swing/src/org/diylc/images/exit.png | Bin 834 -> 0 bytes .../src/org/diylc/images/export.png | Bin 857 -> 0 bytes .../diylc-swing/src/org/diylc/images/faq.png | Bin 990 -> 0 bytes .../src/org/diylc/images/folder_music.png | Bin 842 -> 0 bytes .../src/org/diylc/images/folder_out.png | Bin 910 -> 0 bytes .../src/org/diylc/images/forbidden.png | Bin 875 -> 0 bytes .../src/org/diylc/images/form_blue.png | Bin 694 -> 0 bytes .../src/org/diylc/images/form_blue_add.png | Bin 773 -> 0 bytes .../src/org/diylc/images/front.png | Bin 535 -> 0 bytes .../src/org/diylc/images/garbage.png | Bin 1004 -> 0 bytes .../diylc-swing/src/org/diylc/images/gear.png | Bin 995 -> 0 bytes .../src/org/diylc/images/gears.png | Bin 4237 -> 0 bytes .../src/org/diylc/images/graph_edge.png | Bin 656 -> 0 bytes .../org/diylc/images/graph_edge_curved.png | Bin 675 -> 0 bytes .../org/diylc/images/graph_edge_directed.png | Bin 708 -> 0 bytes .../src/org/diylc/images/group.png | Bin 771 -> 0 bytes .../diylc-swing/src/org/diylc/images/html.png | Bin 832 -> 0 bytes .../src/org/diylc/images/icon_large.png | Bin 4094 -> 0 bytes .../src/org/diylc/images/icon_medium.png | Bin 2306 -> 0 bytes .../src/org/diylc/images/icon_small.png | Bin 898 -> 0 bytes .../src/org/diylc/images/id_card.png | Bin 852 -> 0 bytes .../src/org/diylc/images/id_card_add.png | Bin 894 -> 0 bytes .../src/org/diylc/images/image.png | Bin 728 -> 0 bytes .../src/org/diylc/images/lightbulb_off.png | Bin 789 -> 0 bytes .../src/org/diylc/images/lightbulb_on.png | Bin 785 -> 0 bytes .../src/org/diylc/images/manual.png | Bin 833 -> 0 bytes .../src/org/diylc/images/media_play_green.png | Bin 798 -> 0 bytes .../src/org/diylc/images/media_stop_red.png | Bin 733 -> 0 bytes .../src/org/diylc/images/move_small.png | Bin 1256 -> 0 bytes .../src/org/diylc/images/navigate_check.png | Bin 747 -> 0 bytes .../src/org/diylc/images/navigate_plus.png | Bin 709 -> 0 bytes .../src/org/diylc/images/notebook_add.png | Bin 816 -> 0 bytes .../src/org/diylc/images/paste.png | Bin 783 -> 0 bytes .../diylc-swing/src/org/diylc/images/pdf.png | Bin 1446 -> 0 bytes .../diylc-swing/src/org/diylc/images/pens.png | Bin 922 -> 0 bytes .../src/org/diylc/images/photo_scenery.png | Bin 728 -> 0 bytes .../src/org/diylc/images/plugin.png | Bin 838 -> 0 bytes .../src/org/diylc/images/print.png | Bin 835 -> 0 bytes .../diylc-swing/src/org/diylc/images/redo.png | Bin 895 -> 0 bytes .../src/org/diylc/images/refresh.png | Bin 947 -> 0 bytes .../src/org/diylc/images/save_as.png | Bin 766 -> 0 bytes .../src/org/diylc/images/selection.png | Bin 376 -> 0 bytes .../diylc-swing/src/org/diylc/images/size.png | Bin 550 -> 0 bytes .../diylc-swing/src/org/diylc/images/sort.png | Bin 826 -> 0 bytes .../src/org/diylc/images/trace_mask.png | Bin 388 -> 0 bytes .../diylc-swing/src/org/diylc/images/undo.png | Bin 879 -> 0 bytes .../src/org/diylc/images/ungroup.png | Bin 883 -> 0 bytes .../src/org/diylc/images/upload.png | Bin 857 -> 0 bytes .../diylc-swing/src/org/diylc/images/view.png | Bin 844 -> 0 bytes .../src/org/diylc/images/warning.png | Bin 816 -> 0 bytes .../src/org/diylc/images/window_colors.png | Bin 541 -> 0 bytes .../src/org/diylc/images/wrench.png | Bin 775 -> 0 bytes .../src/org/diylc/images/zoom_in.png | Bin 858 -> 0 bytes .../src/org/diylc/images/zoom_out.png | Bin 847 -> 0 bytes .../src/org/diylc/images/zoom_small.png | Bin 1268 -> 0 bytes .../src/org/diylc/swing/ISwingUI.java | 64 - .../org/diylc/swing/gui/CustomGlassPane.java | 42 - .../OverwritePromptFileChooser.java | 38 - .../diylc/swing/gui/editor/BooleanEditor.java | 34 - .../diylc/swing/gui/editor/ByteEditor.java | 36 - .../diylc/swing/gui/editor/ColorEditor.java | 52 - .../diylc/swing/gui/editor/EnumEditor.java | 41 - .../swing/gui/editor/FieldEditorFactory.java | 61 - .../diylc/swing/gui/editor/ImageEditor.java | 46 - .../diylc/swing/gui/editor/StringEditor.java | 50 - .../plugins/canvas/CanvasSourceListener.java | 50 - .../plugins/canvas/EmptyTransferable.java | 24 - .../plugins/canvas/PointTransferable.java | 38 - .../plugins/canvas/SelectionTransferable.java | 47 - .../swing/plugins/config/ConfigPlugin.java | 90 -- .../plugins/edit/ComponentTransferable.java | 51 - .../diylc/swing/plugins/file/BomEntry.java | 89 -- .../diylc/swing/plugins/file/BomMaker.java | 55 - .../swing/plugins/file/FileFilterEnum.java | 50 - .../swing/plugins/file/FileMenuPlugin.java | 69 - .../plugins/layers/LayersMenuPlugin.java | 89 -- .../org/diylc/swing/plugins/online/Test.java | 28 - .../plugins/online/model/ProjectEntity.java | 136 -- .../presenter/AlreadyExistsException.java | 7 - .../online/presenter/LibraryPresenter.java | 177 --- .../online/presenter/MySqlDBManager.java | 86 - .../presenter/NotConnectedException.java | 7 - .../online/presenter/NotExistsException.java | 10 - .../presenter/NotLoggedInException.java | 7 - .../plugins/online/view/LibraryFrame.java | 12 - .../diylc/swing/plugins/toolbox/ToolBox.java | 57 - .../toolbox/ToolboxGestureListener.java | 33 - .../toolbox/ToolboxSourceListener.java | 47 - .../diylc-swing/templates/eyelet.diy | 65 - .../diylc-swing/templates/perf.diy | 65 - .../diylc-swing/themes/Blueprint.xml | 21 - .../diylc-swing/themes/Dark.xml | 21 - .../diylc-swing/themes/Light.xml | 21 - .../diylc-core => diylc-core}/.classpath | 0 .../diylc-core => diylc-core}/.project | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../diylc-core => diylc-core}/build.xml | 0 .../DIYLC => diylc-core}/config.properties | 0 .../lib/app-framework.jar | Bin .../DIYLC => diylc-core}/lib/cloning-1.5.jar | Bin .../DIYLC => diylc-core}/lib/iText-2.1.7.jar | Bin .../lib/jettison-1.0.1.jar | Bin .../DIYLC => diylc-core}/lib/junit-4.7.jar | Bin .../DIYLC => diylc-core}/lib/log4j-1.2.15.jar | Bin .../lib/objenesis-1.1.jar | Bin .../lib/poi-3.5-FINAL-20090928.jar | Bin .../lib/xstream-1.3.1.jar | Bin .../library/main.jar | Bin .../diylc/common/BadPositionException.java | 0 .../src/org/diylc/common/ComponentType.java | 0 .../src/org/diylc/common/Display.java | 0 .../src/org/diylc/common/DrawOption.java | 0 .../src/org/diylc/common/EventType.java | 0 .../src/org/diylc/common/GridType.java | 0 .../org/diylc/common/HorizontalAlignment.java | 0 .../src/org/diylc/common/IComponentFiler.java | 0 .../src/org/diylc/common/IMouseProcessor.java | 0 .../src/org/diylc/common/IPlugIn.java | 0 .../src/org/diylc/common/IPlugInPort.java | 0 .../org/diylc/common/ISelectionProcessor.java | 0 .../src/org/diylc/common/ITask.java | 0 .../src/org/diylc/common/LabelPosition.java | 0 .../src/org/diylc/common/ObjectCache.java | 0 .../src/org/diylc/common/Orientation.java | 0 .../src/org/diylc/common/OrientationHV.java | 0 .../src/org/diylc/common/PropertyWrapper.java | 0 .../org/diylc/common/ResistorColorCode.java | 0 .../org/diylc/common/VerticalAlignment.java | 0 .../diylc/components/AbstractComponent.java | 0 .../components/AbstractCurvedComponent.java | 0 .../components/AbstractLeadedComponent.java | 0 .../AbstractSchematicLeadedSymbol.java | 0 .../AbstractTransparentComponent.java | 0 .../src/org/diylc/core/AllowAllValidator.java | 0 .../src/org/diylc/core/ComponentState.java | 0 .../src/org/diylc/core/CreationMethod.java | 0 .../src/org/diylc/core/IDIYComponent.java | 0 .../src/org/diylc/core/IDrawingObserver.java | 0 .../org/diylc/core/IPropertyValidator.java | 0 .../src/org/diylc/core/IView.java | 0 .../src/org/diylc/core/Project.java | 0 .../src/org/diylc/core/Theme.java | 0 .../org/diylc/core/ValidationException.java | 0 .../src/org/diylc/core/VisibilityPolicy.java | 0 .../core/annotations/ComponentDescriptor.java | 0 .../core/annotations/EditableProperty.java | 0 .../annotations/PositiveMeasureValidator.java | 0 .../diylc/core/measures/AbstractMeasure.java | 0 .../org/diylc/core/measures/Capacitance.java | 0 .../diylc/core/measures/CapacitanceUnit.java | 0 .../org/diylc/core/measures/Inductance.java | 0 .../diylc/core/measures/InductanceUnit.java | 0 .../src/org/diylc/core/measures/Power.java | 0 .../org/diylc/core/measures/PowerUnit.java | 0 .../org/diylc/core/measures/Resistance.java | 0 .../diylc/core/measures/ResistanceUnit.java | 0 .../src/org/diylc/core/measures/Size.java | 0 .../src/org/diylc/core/measures/SizeUnit.java | 0 .../src/org/diylc/core/measures/Unit.java | 0 .../src/org/diylc/core/measures/Voltage.java | 0 .../org/diylc/core/measures/VoltageUnit.java | 0 .../src/org/diylc/images/IconLoader.java | 0 .../src/org/diylc/images/about.png | Bin .../src/org/diylc/images/add.png | Bin .../src/org/diylc/images/arrow_down_blue.png | Bin .../src/org/diylc/images/arrow_left_blue.png | Bin .../src/org/diylc/images/arrow_right_blue.png | Bin .../src/org/diylc/images/arrow_up_blue.png | Bin .../src/org/diylc/images/at.png | Bin .../src/org/diylc/images/back.png | Bin .../src/org/diylc/images/blackboard.png | Bin .../src/org/diylc/images/bom.png | Bin .../src/org/diylc/images/bug.png | Bin .../src/org/diylc/images/check.png | Bin .../src/org/diylc/images/chest.png | Bin .../src/org/diylc/images/component.png | Bin .../src/org/diylc/images/copy.png | Bin .../src/org/diylc/images/csv.png | Bin .../src/org/diylc/images/cut.png | Bin .../src/org/diylc/images/delete.png | Bin .../src/org/diylc/images/disk_blue.png | Bin .../src/org/diylc/images/disks.png | Bin .../src/org/diylc/images/document.png | Bin .../src/org/diylc/images/document_edit.png | Bin .../src/org/diylc/images/document_info.png | Bin .../diylc/images/document_plain_yellow.png | Bin .../src/org/diylc/images/donate.gif | Bin .../src/org/diylc/images/donate.png | Bin .../src/org/diylc/images/edit.png | Bin .../src/org/diylc/images/edit_component.png | Bin .../org/diylc/images/elements_selection.png | Bin .../src/org/diylc/images/error.png | Bin .../src/org/diylc/images/excel.png | Bin .../src/org/diylc/images/exit.png | Bin .../src/org/diylc/images/export.png | Bin .../src/org/diylc/images/faq.png | Bin .../src/org/diylc/images/folder_music.png | Bin .../src/org/diylc/images/folder_out.png | Bin .../src/org/diylc/images/forbidden.png | Bin .../src/org/diylc/images/form_blue.png | Bin .../src/org/diylc/images/form_blue_add.png | Bin .../src/org/diylc/images/front.png | Bin .../src/org/diylc/images/garbage.png | Bin .../src/org/diylc/images/gear.png | Bin .../src/org/diylc/images/gears.png | Bin .../src/org/diylc/images/graph_edge.png | Bin .../org/diylc/images/graph_edge_curved.png | Bin .../org/diylc/images/graph_edge_directed.png | Bin .../src/org/diylc/images/group.png | Bin .../src/org/diylc/images/html.png | Bin .../src/org/diylc/images/icon_large.png | Bin .../src/org/diylc/images/icon_medium.png | Bin .../src/org/diylc/images/icon_small.png | Bin .../src/org/diylc/images/id_card.png | Bin .../src/org/diylc/images/id_card_add.png | Bin .../src/org/diylc/images/image.png | Bin .../src/org/diylc/images/lightbulb_off.png | Bin .../src/org/diylc/images/lightbulb_on.png | Bin .../src/org/diylc/images/manual.png | Bin .../src/org/diylc/images/media_play_green.png | Bin .../src/org/diylc/images/media_stop_red.png | Bin .../src/org/diylc/images/move_small.png | Bin .../src/org/diylc/images/navigate_check.png | Bin .../src/org/diylc/images/navigate_plus.png | Bin .../src/org/diylc/images/notebook_add.png | Bin .../src/org/diylc/images/paste.png | Bin .../src/org/diylc/images/pdf.png | Bin .../src/org/diylc/images/pens.png | Bin .../src/org/diylc/images/photo_scenery.png | Bin .../src/org/diylc/images/plugin.png | Bin .../src/org/diylc/images/print.png | Bin .../src/org/diylc/images/redo.png | Bin .../src/org/diylc/images/refresh.png | Bin .../src/org/diylc/images/save_as.png | Bin .../src/org/diylc/images/selection.png | Bin .../src/org/diylc/images/size.png | Bin .../src/org/diylc/images/sort.png | Bin .../src/org/diylc/images/trace_mask.png | Bin .../src/org/diylc/images/undo.png | Bin .../src/org/diylc/images/ungroup.png | Bin .../src/org/diylc/images/upload.png | Bin .../src/org/diylc/images/view.png | Bin .../src/org/diylc/images/warning.png | Bin .../src/org/diylc/images/window_colors.png | Bin .../src/org/diylc/images/wrench.png | Bin .../src/org/diylc/images/zoom_in.png | Bin .../src/org/diylc/images/zoom_out.png | Bin .../src/org/diylc/images/zoom_small.png | Bin .../src/org/diylc/log4j.properties | 0 .../src/org/diylc/presenter/CalcUtils.java | 0 .../diylc/presenter/ComparatorFactory.java | 0 .../diylc/presenter/ComponentProcessor.java | 0 .../diylc/presenter/ComponentZOrderFiler.java | 0 .../org/diylc/presenter/DrawingManager.java | 0 .../src/org/diylc/presenter/G2DWrapper.java | 0 .../diylc/presenter/InstantiationManager.java | 0 .../org/diylc/presenter/PointConverter.java | 0 .../src/org/diylc/presenter/Presenter.java | 0 .../diylc/presenter/ProjectFileManager.java | 0 .../src/org/diylc/utils/BomEntry.java | 0 .../src/org/diylc/utils/BomMaker.java | 0 .../src/org/diylc/utils/Constants.java | 0 .../src/org/diylc/utils/MemoryCleaner.java | 0 .../DIYLC => diylc-core}/templates/eyelet.diy | 0 .../DIYLC => diylc-core}/templates/perf.diy | 0 .../test/org/diylc/AllTests.java | 0 .../diylc/components/MockDIYComponent.java | 0 .../org/diylc/plugins/file/BomMakerTest.java | 0 .../diylc/presenter/ClassProcessorTest.java | 0 .../DIYLC => diylc-core}/themes/Blueprint.xml | 0 .../DIYLC => diylc-core}/themes/Dark.xml | 0 .../DIYLC => diylc-core}/themes/Light.xml | 0 .../.classpath | 0 .../diylc-library => diylc-library}/.project | 0 .../diylc-library => diylc-library}/build.xml | 0 .../lib/app-framework.jar | Bin .../lib/diylc-core.jar | Bin .../lib/log4j-1.2.15.jar | Bin .../lib/xstream-1.3.1.jar | Bin .../components/boards/AbstractBoard.java | 0 .../diylc/components/boards/BlankBoard.java | 0 .../diylc/components/boards/EyeletBoard.java | 0 .../components/boards/MarshallPerfBoard.java | 0 .../diylc/components/boards/PerfBoard.java | 0 .../diylc/components/boards/VeroBoard.java | 0 .../diylc/components/connectivity/AWG.java | 0 .../components/connectivity/CopperTrace.java | 0 .../components/connectivity/CurvedTrace.java | 0 .../diylc/components/connectivity/Eyelet.java | 0 .../components/connectivity/HookupWire.java | 0 .../diylc/components/connectivity/Jumper.java | 0 .../components/connectivity/SolderPad.java | 0 .../components/connectivity/TraceCut.java | 0 .../electromechanical/MiniToggleSwitch.java | 0 .../electromechanical/ToggleSwitchType.java | 0 .../src/org/diylc/components/misc/BOM.java | 0 .../components/misc/IconImageConverter.java | 0 .../src/org/diylc/components/misc/Image.java | 0 .../src/org/diylc/components/misc/Label.java | 0 .../src/org/diylc/components/misc/image.png | Bin .../passive/AbstractPotentiometer.java | 0 .../passive/AxialElectrolyticCapacitor.java | 0 .../passive/AxialFilmCapacitor.java | 0 .../components/passive/CapacitorSymbol.java | 0 .../passive/PotentiometerPanel.java | 0 .../passive/PotentiometerValue.java | 0 .../org/diylc/components/passive/Power.java | 0 .../passive/RadialCeramicDiskCapacitor.java | 0 .../passive/RadialElectrolytic.java | 0 .../passive/RadialFilmCapacitor.java | 0 .../diylc/components/passive/Resistor.java | 0 .../components/passive/ResistorSymbol.java | 0 .../components/passive/ResistorValue.java | 0 .../org/diylc/components/passive/Taper.java | 0 .../passive/TrimmerPotentiometer.java | 0 .../org/diylc/components/passive/Voltage.java | 0 .../components/semiconductors/DIL_IC.java | 0 .../semiconductors/DiodePlastic.java | 0 .../diylc/components/semiconductors/LED.java | 0 .../semiconductors/TransistorTO220.java | 0 .../semiconductors/TransistorTO92.java | 0 .../org/diylc/components/tube/TubeSocket.java | 0 .../diylc-swing => diylc-swing}/.classpath | 0 .../diylc-swing => diylc-swing}/.project | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../DIYLCStarter.launch | 0 .../diylc-swing => diylc-swing}/build.xml | 0 .../config.properties | 0 .../lib/app-framework.jar | Bin .../lib/cloning-1.5.jar | Bin .../lib/diylc-core.jar | Bin .../lib/iText-2.1.7.jar | Bin .../lib/jettison-1.0.1.jar | Bin .../lib/junit-4.7.jar | Bin .../lib/log4j-1.2.15.jar | Bin .../lib/objenesis-1.1.jar | Bin .../lib/poi-3.5-FINAL-20090928.jar | Bin .../lib/swing-framework.jar | Bin .../lib/xstream-1.3.1.jar | Bin .../library/main.jar | Bin .../src/org/diylc/DIYLCStarter.java | 0 .../src/org/diylc/images/IconLoader.java | 0 .../src/org/diylc/images/about.png | Bin .../src/org/diylc/images/add.png | Bin .../src/org/diylc/images/arrow_down_blue.png | Bin .../src/org/diylc/images/arrow_left_blue.png | Bin .../src/org/diylc/images/arrow_right_blue.png | Bin .../src/org/diylc/images/arrow_up_blue.png | Bin .../src/org/diylc/images/at.png | Bin .../src/org/diylc/images/back.png | Bin .../src/org/diylc/images/blackboard.png | Bin .../src/org/diylc/images/bom.png | Bin .../src/org/diylc/images/bug.png | Bin .../src/org/diylc/images/check.png | Bin .../src/org/diylc/images/chest.png | Bin .../src/org/diylc/images/component.png | Bin .../src/org/diylc/images/copy.png | Bin .../src/org/diylc/images/csv.png | Bin .../src/org/diylc/images/cut.png | Bin .../src/org/diylc/images/delete.png | Bin .../src/org/diylc/images/disk_blue.png | Bin .../src/org/diylc/images/disks.png | Bin .../src/org/diylc/images/document.png | Bin .../src/org/diylc/images/document_edit.png | Bin .../src/org/diylc/images/document_info.png | Bin .../diylc/images/document_plain_yellow.png | Bin .../src/org/diylc/images/donate.gif | Bin .../src/org/diylc/images/donate.png | Bin .../src/org/diylc/images/edit.png | Bin .../src/org/diylc/images/edit_component.png | Bin .../org/diylc/images/elements_selection.png | Bin .../src/org/diylc/images/error.png | Bin .../src/org/diylc/images/excel.png | Bin .../src/org/diylc/images/exit.png | Bin .../src/org/diylc/images/export.png | Bin .../src/org/diylc/images/faq.png | Bin .../src/org/diylc/images/folder_music.png | Bin .../src/org/diylc/images/folder_out.png | Bin .../src/org/diylc/images/forbidden.png | Bin .../src/org/diylc/images/form_blue.png | Bin .../src/org/diylc/images/form_blue_add.png | Bin .../src/org/diylc/images/front.png | Bin .../src/org/diylc/images/garbage.png | Bin .../src/org/diylc/images/gear.png | Bin .../src/org/diylc/images/gears.png | Bin .../src/org/diylc/images/graph_edge.png | Bin .../org/diylc/images/graph_edge_curved.png | Bin .../org/diylc/images/graph_edge_directed.png | Bin .../src/org/diylc/images/group.png | Bin .../src/org/diylc/images/html.png | Bin .../src/org/diylc/images/icon_large.png | Bin .../src/org/diylc/images/icon_medium.png | Bin .../src/org/diylc/images/icon_small.png | Bin .../src/org/diylc/images/id_card.png | Bin .../src/org/diylc/images/id_card_add.png | Bin .../src/org/diylc/images/image.png | Bin .../src/org/diylc/images/lightbulb_off.png | Bin .../src/org/diylc/images/lightbulb_on.png | Bin .../src/org/diylc/images/manual.png | Bin .../src/org/diylc/images/media_play_green.png | Bin .../src/org/diylc/images/media_stop_red.png | Bin .../src/org/diylc/images/move_small.png | Bin .../src/org/diylc/images/navigate_check.png | Bin .../src/org/diylc/images/navigate_plus.png | Bin .../src/org/diylc/images/notebook_add.png | Bin .../src/org/diylc/images/paste.png | Bin .../src/org/diylc/images/pdf.png | Bin .../src/org/diylc/images/pens.png | Bin .../src/org/diylc/images/photo_scenery.png | Bin .../src/org/diylc/images/plugin.png | Bin .../src/org/diylc/images/print.png | Bin .../src/org/diylc/images/redo.png | Bin .../src/org/diylc/images/refresh.png | Bin .../src/org/diylc/images/save_as.png | Bin .../src/org/diylc/images/selection.png | Bin .../src/org/diylc/images/size.png | Bin .../src/org/diylc/images/sort.png | Bin .../src/org/diylc/images/trace_mask.png | Bin .../src/org/diylc/images/undo.png | Bin .../src/org/diylc/images/ungroup.png | Bin .../src/org/diylc/images/upload.png | Bin .../src/org/diylc/images/view.png | Bin .../src/org/diylc/images/warning.png | Bin .../src/org/diylc/images/window_colors.png | Bin .../src/org/diylc/images/wrench.png | Bin .../src/org/diylc/images/zoom_in.png | Bin .../src/org/diylc/images/zoom_out.png | Bin .../src/org/diylc/images/zoom_small.png | Bin .../src/org/diylc/log4j.properties | 0 .../src/org/diylc/swing/ActionFactory.java | 0 .../src/org/diylc/swing/ISwingUI.java | 0 .../org/diylc/swing/gui/CustomGlassPane.java | 0 .../org/diylc/swing/gui/DialogFactory.java | 0 .../src/org/diylc/swing/gui/MainFrame.java | 0 .../org/diylc/swing/gui/TemplateDialog.java | 0 .../OverwritePromptFileChooser.java | 0 .../diylc/swing/gui/editor/BooleanEditor.java | 0 .../diylc/swing/gui/editor/ByteEditor.java | 0 .../diylc/swing/gui/editor/ColorEditor.java | 0 .../diylc/swing/gui/editor/EnumEditor.java | 0 .../swing/gui/editor/FieldEditorFactory.java | 0 .../diylc/swing/gui/editor/FontEditor.java | 0 .../diylc/swing/gui/editor/ImageEditor.java | 0 .../org/diylc/swing/gui/editor/IntEditor.java | 0 .../diylc/swing/gui/editor/MeasureEditor.java | 0 .../gui/editor/PropertyEditorDialog.java | 0 .../diylc/swing/gui/editor/StringEditor.java | 0 .../plugins/autosave/AutoSavePlugin.java | 0 .../plugins/canvas/CanvasGestureListener.java | 0 .../swing/plugins/canvas/CanvasPanel.java | 0 .../swing/plugins/canvas/CanvasPlugin.java | 0 .../plugins/canvas/CanvasSourceListener.java | 0 .../plugins/canvas/CanvasTargetListener.java | 0 .../plugins/canvas/EmptyTransferable.java | 0 .../plugins/canvas/PointTransferable.java | 0 .../plugins/canvas/SelectionTransferable.java | 0 .../swing/plugins/config/ConfigPlugin.java | 0 .../plugins/edit/ComponentTransferable.java | 0 .../swing/plugins/edit/EditMenuPlugin.java | 0 .../diylc/swing/plugins/file/BomDialog.java | 0 .../diylc/swing/plugins/file/BomEntry.java | 0 .../diylc/swing/plugins/file/BomMaker.java | 0 .../swing/plugins/file/FileFilterEnum.java | 0 .../swing/plugins/file/FileMenuPlugin.java | 0 .../plugins/file/ProjectDrawingProvider.java | 0 .../swing/plugins/file/ProjectPreview.java | 0 .../file/TraceMaskDrawingProvider.java | 0 .../swing/plugins/help/HelpMenuPlugin.java | 0 .../plugins/layers/LayersMenuPlugin.java | 0 .../swing/plugins/online/OnlineManager.java | 0 .../org/diylc/swing/plugins/online/Test.java | 0 .../plugins/online/model/ProjectEntity.java | 0 .../presenter/AlreadyExistsException.java | 0 .../online/presenter/LibraryPresenter.java | 0 .../online/presenter/MySqlDBManager.java | 0 .../presenter/NotConnectedException.java | 0 .../online/presenter/NotExistsException.java | 0 .../presenter/NotLoggedInException.java | 0 .../plugins/online/view/LibraryFrame.java | 0 .../plugins/online/view/LoginDialog.java | 0 .../plugins/online/view/NewUserDialog.java | 0 .../plugins/online/view/UploadDialog.java | 0 .../swing/plugins/statusbar/StatusBar.java | 0 .../plugins/toolbox/ComponentButton.java | 0 .../plugins/toolbox/ComponentTabbedPane.java | 0 .../diylc/swing/plugins/toolbox/ToolBox.java | 0 .../toolbox/ToolboxGestureListener.java | 0 .../toolbox/ToolboxSourceListener.java | 0 .../templates/eyelet.diy | 0 .../templates/perf.diy | 0 .../test/org/diylc/TableTest.java | 0 .../themes/Blueprint.xml | 0 .../themes/Dark.xml | 0 .../themes/Light.xml | 0 .../diylc-swing => diylc-swing}/update.xml | 0 684 files changed, 19547 deletions(-) delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/.classpath delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/.project delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/DIYLCStarter.launch delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/build.xml delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/lib/bancika-gui-framework.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/DIYLCStarter.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugIn.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractComponent.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/Project.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/AbstractMeasure.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/Resistance.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/core/measures/ResistanceUnit.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/images/IconLoader.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/ActionFactory.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/DialogFactory.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/MainFrame.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/TemplateDialog.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FontEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/IntEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/MeasureEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasGestureListener.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPanel.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/canvas/CanvasTargetListener.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/BomDialog.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/ProjectPreview.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/OnlineManager.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/LoginDialog.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/NewUserDialog.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/online/view/UploadDialog.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/statusbar/StatusBar.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentButton.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/TableTest.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/components/MockDIYComponent.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/test/org/diylc/plugins/file/BomMakerTest.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/.classpath delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/.project delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/build.xml delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/lib/bancika-gui-framework.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/AbstractBoard.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/BlankBoard.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/EyeletBoard.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/MarshallPerfBoard.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/PerfBoard.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/boards/VeroBoard.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/SolderPad.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/electromechanical/MiniToggleSwitch.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/misc/BOM.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialFilmCapacitor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/CapacitorSymbol.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/PotentiometerPanel.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Power.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialElectrolytic.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialFilmCapacitor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ResistorSymbol.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Voltage.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DIL_IC.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/LED.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO220.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/tube/TubeSocket.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/BadPositionException.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ComponentType.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Display.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/DrawOption.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/EventType.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/GridType.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/IComponentFiler.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ITask.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/LabelPosition.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ObjectCache.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/Orientation.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/OrientationHV.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/PropertyWrapper.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ResistorColorCode.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractCurvedComponent.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractSchematicLeadedSymbol.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/components/AbstractTransparentComponent.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/AllowAllValidator.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ComponentState.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/CreationMethod.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IDIYComponent.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IDrawingObserver.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IPropertyValidator.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IView.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/Theme.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/ValidationException.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/VisibilityPolicy.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/EditableProperty.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/PositiveMeasureValidator.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Capacitance.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/CapacitanceUnit.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Inductance.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/InductanceUnit.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Size.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/SizeUnit.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Unit.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/log4j.properties delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/CalcUtils.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComparatorFactory.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentProcessor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentZOrderFiler.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/PointConverter.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/Constants.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/utils/MemoryCleaner.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/AllTests.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-core/test/org/diylc/presenter/ClassProcessorTest.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/lib/log4j-1.2.15.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/lib/xstream-1.3.1.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/AWG.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CopperTrace.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Eyelet.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/HookupWire.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Jumper.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/TraceCut.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/electromechanical/ToggleSwitchType.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/IconImageConverter.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Label.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/image.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/AbstractPotentiometer.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/PotentiometerValue.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/ResistorValue.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/Taper.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/passive/TrimmerPotentiometer.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/config.properties delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/cloning-1.5.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/iText-2.1.7.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/jettison-1.0.1.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/junit-4.7.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/log4j-1.2.15.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/objenesis-1.1.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/poi-3.5-FINAL-20090928.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/xstream-1.3.1.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/about.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/add.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_down_blue.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_left_blue.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_right_blue.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/arrow_up_blue.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/at.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/back.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/blackboard.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/bom.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/bug.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/check.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/chest.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/component.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/copy.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/csv.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/cut.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/delete.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/disk_blue.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/disks.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_edit.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_info.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/document_plain_yellow.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/donate.gif delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/donate.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/edit.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/edit_component.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/error.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/excel.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/exit.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/export.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/faq.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/folder_music.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/folder_out.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/forbidden.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/form_blue.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/form_blue_add.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/front.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/garbage.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/gear.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/gears.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge_curved.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/graph_edge_directed.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/group.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/html.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_large.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_medium.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/icon_small.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/id_card.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/id_card_add.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/image.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/lightbulb_off.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/lightbulb_on.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/manual.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/media_play_green.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/media_stop_red.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/move_small.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/navigate_check.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/navigate_plus.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/notebook_add.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/paste.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/pdf.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/pens.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/photo_scenery.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/plugin.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/print.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/redo.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/refresh.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/save_as.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/selection.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/size.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/sort.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/trace_mask.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/undo.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/ungroup.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/upload.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/view.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/warning.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/window_colors.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/wrench.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_in.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_out.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/zoom_small.png delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ISwingUI.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/CustomGlassPane.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/components/OverwritePromptFileChooser.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/BooleanEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ByteEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ColorEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/EnumEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/FieldEditorFactory.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/ImageEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/StringEditor.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasSourceListener.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/EmptyTransferable.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/PointTransferable.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/SelectionTransferable.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/config/ConfigPlugin.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/edit/ComponentTransferable.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/BomEntry.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/BomMaker.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/FileFilterEnum.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/file/FileMenuPlugin.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/layers/LayersMenuPlugin.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/Test.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/model/ProjectEntity.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotConnectedException.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotExistsException.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/NotLoggedInException.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/view/LibraryFrame.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolBox.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolboxGestureListener.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolboxSourceListener.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/templates/eyelet.diy delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/templates/perf.diy delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Blueprint.xml delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Dark.xml delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/themes/Light.xml rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/.classpath (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/.project (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/.settings/org.eclipse.jdt.ui.prefs (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/build.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/config.properties (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/lib/app-framework.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/lib/cloning-1.5.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/lib/iText-2.1.7.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/lib/jettison-1.0.1.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/lib/junit-4.7.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/lib/log4j-1.2.15.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/lib/objenesis-1.1.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/lib/poi-3.5-FINAL-20090928.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/lib/xstream-1.3.1.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/library/main.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/BadPositionException.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/ComponentType.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/Display.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/DrawOption.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/EventType.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/GridType.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/common/HorizontalAlignment.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/IComponentFiler.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/common/IMouseProcessor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/common/IPlugIn.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/common/IPlugInPort.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/common/ISelectionProcessor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/ITask.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/LabelPosition.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/ObjectCache.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/Orientation.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/OrientationHV.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/PropertyWrapper.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/common/ResistorColorCode.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/common/VerticalAlignment.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/components/AbstractComponent.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/components/AbstractCurvedComponent.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/components/AbstractLeadedComponent.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/components/AbstractSchematicLeadedSymbol.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/components/AbstractTransparentComponent.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/AllowAllValidator.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/ComponentState.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/CreationMethod.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/IDIYComponent.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/IDrawingObserver.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/IPropertyValidator.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/IView.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/core/Project.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/Theme.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/ValidationException.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/VisibilityPolicy.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/annotations/ComponentDescriptor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/annotations/EditableProperty.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/annotations/PositiveMeasureValidator.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/core/measures/AbstractMeasure.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/measures/Capacitance.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/measures/CapacitanceUnit.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/measures/Inductance.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/measures/InductanceUnit.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/core/measures/Power.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/core/measures/PowerUnit.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/core/measures/Resistance.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/core/measures/ResistanceUnit.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/measures/Size.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/measures/SizeUnit.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/core/measures/Unit.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/core/measures/Voltage.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/core/measures/VoltageUnit.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/images/IconLoader.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/about.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/add.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/arrow_down_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/arrow_left_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/arrow_right_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/arrow_up_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/at.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/back.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/blackboard.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/bom.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/bug.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/check.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/chest.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/component.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/copy.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/csv.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/cut.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/delete.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/disk_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/disks.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/document.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/document_edit.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/document_info.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/document_plain_yellow.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/donate.gif (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/donate.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/edit.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/edit_component.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/images/elements_selection.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/error.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/excel.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/exit.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/export.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/faq.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/folder_music.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/folder_out.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/forbidden.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/form_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/form_blue_add.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/front.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/garbage.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/gear.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/gears.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/graph_edge.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/graph_edge_curved.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/graph_edge_directed.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/group.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/html.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/icon_large.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/icon_medium.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/icon_small.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/id_card.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/id_card_add.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/image.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/lightbulb_off.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/lightbulb_on.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/manual.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/media_play_green.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/media_stop_red.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/move_small.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/navigate_check.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/navigate_plus.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/notebook_add.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/paste.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/pdf.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/pens.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/photo_scenery.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/plugin.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/print.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/redo.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/refresh.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/save_as.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/selection.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/size.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/sort.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/trace_mask.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/undo.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/ungroup.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/upload.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/view.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/warning.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/window_colors.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/wrench.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/zoom_in.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/zoom_out.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/images/zoom_small.png (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/log4j.properties (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/presenter/CalcUtils.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/presenter/ComparatorFactory.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/presenter/ComponentProcessor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/presenter/ComponentZOrderFiler.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/presenter/DrawingManager.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/presenter/G2DWrapper.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/presenter/InstantiationManager.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/presenter/PointConverter.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/presenter/Presenter.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/presenter/ProjectFileManager.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/utils/BomEntry.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/src/org/diylc/utils/BomMaker.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/utils/Constants.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/src/org/diylc/utils/MemoryCleaner.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/templates/eyelet.diy (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/templates/perf.diy (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/test/org/diylc/AllTests.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/test/org/diylc/components/MockDIYComponent.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-core}/test/org/diylc/plugins/file/BomMakerTest.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/test/org/diylc/presenter/ClassProcessorTest.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/themes/Blueprint.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/themes/Dark.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-core}/themes/Light.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/.classpath (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/.project (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/build.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/lib/app-framework.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/lib/diylc-core.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/lib/log4j-1.2.15.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/lib/xstream-1.3.1.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/boards/AbstractBoard.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/boards/BlankBoard.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/boards/EyeletBoard.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/boards/MarshallPerfBoard.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/boards/PerfBoard.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/boards/VeroBoard.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/connectivity/AWG.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/connectivity/CopperTrace.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/connectivity/CurvedTrace.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/connectivity/Eyelet.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/connectivity/HookupWire.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/connectivity/Jumper.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/connectivity/SolderPad.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/connectivity/TraceCut.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/electromechanical/MiniToggleSwitch.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/electromechanical/ToggleSwitchType.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/misc/BOM.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/misc/IconImageConverter.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/misc/Image.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/misc/Label.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/misc/image.png (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/passive/AbstractPotentiometer.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/AxialElectrolyticCapacitor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/AxialFilmCapacitor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/CapacitorSymbol.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/PotentiometerPanel.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/passive/PotentiometerValue.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/Power.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/RadialElectrolytic.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/RadialFilmCapacitor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/Resistor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/ResistorSymbol.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/passive/ResistorValue.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/passive/Taper.java (100%) rename { diy-layout-creator --username bancika@gmail.com/Library => diylc-library}/src/org/diylc/components/passive/TrimmerPotentiometer.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/passive/Voltage.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/semiconductors/DIL_IC.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/semiconductors/DiodePlastic.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/semiconductors/LED.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/semiconductors/TransistorTO220.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/semiconductors/TransistorTO92.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-library => diylc-library}/src/org/diylc/components/tube/TubeSocket.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/.classpath (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/.project (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/.settings/org.eclipse.jdt.ui.prefs (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/DIYLCStarter.launch (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/build.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/config.properties (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/lib/app-framework.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/lib/cloning-1.5.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/lib/diylc-core.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/lib/iText-2.1.7.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/lib/jettison-1.0.1.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/lib/junit-4.7.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/lib/log4j-1.2.15.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/lib/objenesis-1.1.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/lib/poi-3.5-FINAL-20090928.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/lib/swing-framework.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/lib/xstream-1.3.1.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/library/main.jar (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/DIYLCStarter.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/images/IconLoader.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/about.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/add.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/arrow_down_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/arrow_left_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/arrow_right_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/arrow_up_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/at.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/back.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/blackboard.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/bom.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/bug.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/check.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/chest.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/component.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/copy.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/csv.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/cut.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/delete.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/disk_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/disks.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/document.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/document_edit.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/document_info.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/document_plain_yellow.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/donate.gif (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/donate.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/edit.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/edit_component.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/images/elements_selection.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/error.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/excel.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/exit.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/export.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/faq.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/folder_music.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/folder_out.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/forbidden.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/form_blue.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/form_blue_add.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/front.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/garbage.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/gear.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/gears.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/graph_edge.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/graph_edge_curved.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/graph_edge_directed.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/group.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/html.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/icon_large.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/icon_medium.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/icon_small.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/id_card.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/id_card_add.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/image.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/lightbulb_off.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/lightbulb_on.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/manual.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/media_play_green.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/media_stop_red.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/move_small.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/navigate_check.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/navigate_plus.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/notebook_add.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/paste.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/pdf.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/pens.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/photo_scenery.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/plugin.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/print.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/redo.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/refresh.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/save_as.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/selection.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/size.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/sort.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/trace_mask.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/undo.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/ungroup.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/upload.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/view.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/warning.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/window_colors.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/wrench.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/zoom_in.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/zoom_out.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/src/org/diylc/images/zoom_small.png (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/log4j.properties (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/ActionFactory.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/ISwingUI.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/CustomGlassPane.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/gui/DialogFactory.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/gui/MainFrame.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/gui/TemplateDialog.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/components/OverwritePromptFileChooser.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/editor/BooleanEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/editor/ByteEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/editor/ColorEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/editor/EnumEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/editor/FieldEditorFactory.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/gui/editor/FontEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/editor/ImageEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/gui/editor/IntEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/gui/editor/MeasureEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/gui/editor/PropertyEditorDialog.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/gui/editor/StringEditor.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/canvas/CanvasGestureListener.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/canvas/CanvasPanel.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/canvas/CanvasSourceListener.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/canvas/CanvasTargetListener.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/canvas/EmptyTransferable.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/canvas/PointTransferable.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/canvas/SelectionTransferable.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/config/ConfigPlugin.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/edit/ComponentTransferable.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/edit/EditMenuPlugin.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/file/BomDialog.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/file/BomEntry.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/file/BomMaker.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/file/FileFilterEnum.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/file/FileMenuPlugin.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/file/ProjectDrawingProvider.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/file/ProjectPreview.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/file/TraceMaskDrawingProvider.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/help/HelpMenuPlugin.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/layers/LayersMenuPlugin.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/online/OnlineManager.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/Test.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/model/ProjectEntity.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/presenter/NotConnectedException.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/presenter/NotExistsException.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/presenter/NotLoggedInException.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/online/view/LibraryFrame.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/online/view/LoginDialog.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/online/view/NewUserDialog.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/online/view/UploadDialog.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/statusbar/StatusBar.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/toolbox/ComponentButton.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/toolbox/ToolBox.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/toolbox/ToolboxGestureListener.java (100%) rename { diy-layout-creator --username bancika@gmail.com/DIYLC => diylc-swing}/src/org/diylc/swing/plugins/toolbox/ToolboxSourceListener.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/templates/eyelet.diy (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/templates/perf.diy (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/test/org/diylc/TableTest.java (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/themes/Blueprint.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/themes/Dark.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-core => diylc-swing}/themes/Light.xml (100%) rename { diy-layout-creator --username bancika@gmail.com/diylc-swing => diylc-swing}/update.xml (100%) 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 439eb6b986b7a8e0b3a76a20044167249012bf81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107214 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�k zxct#@(A+RixG22oAl9r^IL#otttD||X`qTlf^s&$F?E%;xWt@^E5qOpNRibjP)Q{p z^!M9o#m;i)5fY$XA4*-YK`=UQ=WjR2X@<((&(Q9~KGnn9cyCmVQWZ z1w;&GL&tatUt*0k!`@*g?O8rI!V~((N_(V6z3n;z_@QDGbK3HyUB1wfk-b)U!T>K* zkAOZOc>bYXAt(iAkFY)!czyHf+&>D^Wuu%Sh5(YXaUdlx@qsU1DpN#86g0N%FWF(K zXRyR5937d>-%w@o~2)93mVw|R_+|LK2@K*u&d;6z1CxYM00=cfr8|sa;u$t8&Ov;b zVXyLw`S|z79Jm6aLG@J|uB|6jVCEe1%^F%@&M~ZUe#XNPeUVSxYXEk_&oD0Vn99~y zH8}XAel%SyyEZ|AF;5@h@?LHuw^HqQHhKxb(m;Ov*L(d9qp#90oH@Wgw_9{I zLA|Ri=vVlWiROAdQx^6tVkMKFs;KU}GkNj&52@pf5TfynJxVon1kxrUNn1wu#khvT zg04o z);XH%$*ZcWL_F?u!Ceh^F+SNo;9c2gvQvxMvT;KZ7g2exH*bJ9+mKFtuTavs4n3>|AV=!CF>RZ7cgVuoJ|M9Da7zhoNgcK$1NYz}Y()L*GJ zfyxZK2kcjf#TT>WC&r}E(wFepp5)9@oJNQe14*nLP1Uo1Yw8x;xhZf{(KF=r9ErJI z<%L1+DK=Q+Do`gqbDvTT)h{S(m7OEL$RISRWD98N7j=n@<#O zy!Xv}H1x#?1EB>Np!5)lz7;L;ldWsdC+AQ=2#6Gd?-mjC>dBdZ&#Z_z&TF;Av~m7r z@6-ty6Tj~aA2Aca%4#%mzJc}Xyjw(8!{wl&!VJyKR_v@OF86|`ihMAxa-18eo0dR8 z+mawoyRz*96`=ro-*E3dd*~dH1gj-8M6Inn*ji#XPd{}I`Ky6NDV|ejnrURIo6OZ-oy0>K2aoSiKlf|zhNA2?D|kh zfa}itXiTtC-!RKMNZJfPRyGnZcOI`b8udwYXJJAHyZqj zc}!SOK)11SpZRu2Ywgall5sCzU|-{k((-DaU*k!@zM))42C0)7UPCPRH(Il1#+Yh{ z5iXk{Ff*e@Lo@ao;IKSSTVeur4);q-rmd?e-IYmgOI(+7{aM*!Ux<3%Gna{%O2M*f*_C6jp1s~p0Ts!!IxjSc~4Q_O0x zrsGLd+=<}{bq@QB3f8@GVybg1dg`#U8~xITq58jCdlwiN_0@G!0{jnbk2bg6I;#uR ze}k8?+tyZ9^MZ@Ohwx#bz{WLG6I>eAZKzDM(7rs*HJ_UuAD7>%mhQ#`d*8t?j;H>@ zZ9Pkqa?lQ7aoIg4l~i(8_dfYsOC1dM2C& zk?VXAy~iW^!TS|_#UvrQKC?VK(a2) zUA9&z(jeq>aG+wC){bb~ccSW(Tm_zOz|>^zj==P{Mo?bBM60qmV8ZmaM!Tx5)y!}x z<6^n0y>-thIv?e$fK)ch>z#Dg3|;hAgcvNJ0$!Kgs+B_4jYm%f3^->v@xiNm5rn}?D2tEY=bl;OBmMb9w zD?mNwg$fC+MtqNkFD=4RV_0gDNgS7u4%claI&c7QcUGGC1q zBc0unlU28vnapo>#|kwTnxzaLE zrBK4Y^Si;d?z3gp9RAv_wBzHq->Ab~ZvMKcGKe%6BD%z*wMpoXbJIIR=50*eHM%)Z zSf{UoZNu@RZ-96@ksifIG@du_4gd1e{D=nD;F8KW@Zesc&okXP+`%w}-q13HAV2fK zoO4tI5w2`5?V<=_eN>_-wmw=<`JDSmC*)~)2=e|I0k&1L1(80!OUxj6e5n|DnTi!g%1CC*Q0k3@408;L(($^0?w8j=QN)*g4|z$WiM^ z7wl`+T(!C?<0ur>vw<`Vt%j$CbWW4M(e2R}3Hr}3HzsW@TOJCg%{`|P{yZLxs9%ASL`=<9CfK;*zguoEqkFM_-MlV2h}|@S_`^|=1=?6^DuvZ)B2K+ zO5)f02OsClx^W^0QaiZ}LOH`3}v__dKw2*C1`Ihxy4bad(I8S%J_d;PbJM z4Jd&6UW>%Ok(m3oiv{$HdXyo5#)#EFX^Q0S5=96=LZPuhpy@gl=7{Cpl;p1xw#Rt& zXv?7Z8^oqxHNVOWXe8)Cm_#&Y$&_QB{Y>{ZC-U=GQ1aoPi4)(yYVCLZ{k{N~WC605~9 zH8umc0w{jHGfuOGx_!9zaQL#}cRLz#$KMHP@v4XRI>U1aHD5`c2A;so)Yz|s!`R0= zlm>Nt`G#Ujl&wk(G-OrSP|oGp3aMVxGMLy%ngnpfdpD4+UZayNsi>@F=gieORtZVr zo`(7lLSK!+>kWwsI147Jvd5Jw8+K-+Wf|&kA`wDK2DspF6kQx(GDn7X&;1n*On!1y z8U@9l`v2$;`A)*Jls+4C0h(@&SK={O9m<+2Gdl@$6DH$Y0&}NaB*fnoIft$8pPTI- zwFu&DJJGZag3=Mvlah0d(FD-34Hb!ttEi+H&4tL2O-*8#Piqp$pRzfUn3}@-jLs@! zYS}FHz1Ixk?6o4|h9CTh_8d*Jnsfu%b+6w(*hbp(`#?xt*Ps6mCE-z#hl8 zWHZL6&{sQ7VD)ooV_dFGL65+|sSaLj4_LFBLd}ToOP119B!M|+V07;hdP83hCtghc zhN2E#Xgh&asKf#{Cr(SpFBf`1d+ge9>i!o8RPAI}2GS-8vjWre0DuTdP9e zxK1^l(%$O9hC5%=%C8=GDN0k?`*&^v!O`89ZKsxhPs}>N_UJvVhRK#VUMYrnQ{|_n zg18h#Q|lVWHQiGCPMQ=hRkE!h>^%Wxa3U6-(!nxwyG2^j?A{2Xic6XbiwiqmI!GNx zWPgLguqVh6h6G)l%phDjq*k^JC1o@1v9iknM3<4jarg+>}Pv&q^zimP}biOl41INFOz zAbEhVE`AX>_IO$1I+HYXi^`%j=l+n~H6^m2YC{6uaa6$to#i-{%Zj#znjG#(Ov|cJ zeFklTHi)#tvv`zvmkZ?p9JHxze}VznM!1RJ^Y!?;DW;p?NTWb{k3X!m-3mdWUt1bv zf`q;REr7fe%g7X!9siUrL5Kut)Oga+Hu=G~>%={MkI<+<>_o>O_Nk6(nJ8a5WCFa? zlwM;6FNKc6)`yz9u8$qf_nWU~YWzF?;x%n^Xs!yu-Nf zf8d|$iJ^f%wSK=qrUL25#fL6X^j79e)-mi5a2tqaJubiN>|bqe((MsNj0~9!6rosF zp1_!92__&XfEb5OWq&$y3a$5=?@<9L9Hoazt(XafBPdK$ zR;`?&T`lRq>dM(f)6O2M!^Wd8wS$Qg0RMvED2g~YUj~jRriQn@s-PPa{+k5QcW=ev zP@o|oXSl_o3zW<3L3>x|BGKwM` zjvakg;y)Q_d%^bA?Pp=;?>qT`vEv^*`JnPv9#$w6hLk#M8wdLGmq?@=hz`%xrOotf z!A@s3+g)8m%&x0Ea{+Rp)_oVGF(QIyMxSY?Wxf_dxdSIJW!-;f)z~f4#8&E9{5r&q zH#(4;yUrv79S$m)CtI)aHZMR& zqPA4iq;y!r9%4JaG~Ama{i#{=YzUPwD=CwziqH(99YwM9+^DC|q^&KNq;~X2F9@CU zIb)xAP>UkPPE3J?**bT)Obmjg)jrNDD|PqI7q6EwD5!AYIZR;0l7IG*U{a zbcZ5{fP{b`jf6;}Ed77nd%0e?qTYX=2fk$==6%ncIdf)qcIF%t8pb2vOu-8wsG;9N zG4J7-1|w>{e<|>pLA8dyd0_={@Kt-go3*+~9lwqe4!E{1wp%Z`+cn_e=FE2cf}>Tm zkyvX?bMNDXI1~02n5|lWM+khHD@^ubUD<6Lt))l3Z{Y+lWbJME=^sJUA7tGKM2FHo zsgtGi;}CFPf44B+F67l-#8Pie$Ap)4AI1l+WoYSw?0Z3ax`r(2V*+H3tb*$nKC=xp z22)bwE`Oj;i*n^R>- zQ=QK5YL0cOy80xVjO6a{>({Z71-6|F(DbZ?toUT^R}e=<2+nua$@ z=B)$f6%r>%O$GNby0l3$HL7bVF1Ad6>=bpfrU+`C0la^>6VkYF|Hc7#p76?+#(2b` zQC_3+*2Vodc(-nGNhp_Ke5RRo4@yiY0^ZBY7*~G2=p?r6ZS6*)(Ti@9?~7krpE*sb zQNiiIL|HX@%NU`@;}ePlD~TvM5ED0QY-e2{pN?QvU`UoAx$C^= zX1iuP2%FE~f4!N#27jQCk{9NoRlgC4bVTa&F`&eaR2JKK;%iorBWju>o=t&eFs3#P zPPitErnTB+fTfa-%f!T3xRX zVqvW{3VmNWD|Jthq^ZZPqa}GMo#`Ww7&&?ka6u+xLUcFP1XEjEeRKCN`_oT%Q!cN3 zl}+nzJ;3$w%@Vk9IX|(xHIwnP1h=c0KeS6#nMhrEcz}YlNppsTma74MiG0v9vqLM< zpMrSmb4de(#vyh&-()p9SmL8dx`kfOP^x`oL^-kx;kd1Y{vOW$_yd;ss6LNKv)t6# zL=N8emNp0NyPj*!hjUy=+I0v z(;fcL7E&A{TW~{J*~*v_##wgcc_;Za=G&B%w_+$&uX{2 zZdeJr)dO;`@431N^UTM@o8q`N?rC)e3DV|#zmk3uvN8|OW5cR_?)U_c$i@#b_d}(( z55ff7*!zcL&yBxn3!|7Jq#Lh%E?Cs@7s}Mc8AEIgi|Wai;@Yj)Lcbcw5zmMtx8_P_q5gF@r6uj1YI1;R%zEC{hfqpIfklYAdy~k9e?aIY@r#`)S zPe;h>Z8P}}olC6oO}6HJdjg+B0u(*Y>buB2vTHXH8fcrba4A{QMFTk-aP>t4jcuiCR-WBXRjX%w7++z5l;CcQ%y_)5oDUWeg8(xU_80~riFpzM|W;46n$C7XK! z+-X785hI-XeyC{`+ZFD0nC=$f zn_(Nw`=LP(NRmR3D%x4$Z`9NVBo|NL>7@rf^Zca-&|OKD9gi}7Lh>)f!NRc#OvZ}3gOfMeyKyvY#}axZ-&G!DFGqKULWOE+AoQ*c@$i% zZtsgEiFamuXv^{nPk%S_qS?FXWw-t-hHf2hSiNu|KVm|$s3`=WixbV)^X?Vg!{`2x zdbH2a^Wt{*qs`^l3G$#9!|2mOQi$kNqW*QNFf+t90R_j+=#&mx28H!}9sj!Puenzk zt7I`f7$#X->okPkQip+_EM zdnfGDVdY2q&N#UWrJaau{mVgjB>7y_-3LiO-kqfmVzPXn|5oIK>cHhs+Hr-Mz2u}~ zp6Yy0;~fSgllx0;5OY!5=`5lNxT7w`xS1%uyh%)&753&X9Yut0f_ss(zP;U2vTEmO z1td~u7HsVh&&5RBD$gES)gk}XMDr#2wIv-$xaziZo_BSnb5e=Hq5UToRIYHr+=34R z;@0J5#Nt&$Vg+9L1-L;jsW#a3zTh&5^F;iP5>a;75m$`N3Q2Kj=$F=ec=ULJ4Kj z?jZJXxJ*Hvmra$6HH9e+S3&3l7xOX*J52E}Qe~|=#-jODfok{3_pyh_?tGkI^N^#N z^6V9*$*c@R%q$7>6Uz)DL3fEj?t$N)p`0$E3q}ear^Y34i}VTf2Yq!RF_PfAOKSZH zcLQ;e?)fm?*elz*OTLk)$vLP>>uGVS#9SfG+K8Ws_qvRPTSB~vzKF(sA@mAckPlZM zR<0C^u%w7dKb=i!bC9824=~L)fN666u4#&aZ~qk_@1gnxv`>ZTaAl-8L^Jp~4u5ZE z7UEv7KZL>q5!~*GlWHZQI7p z)YY`K!^6!35`VrpalB`wZ3OX<9PxyYJCsBkQm}OW! zI_{@jHR47WOu2~a^!m#P_UDGBk<>ynw_3LZ@UuDB3A!4Ic+_D_Gvn-pwQ8u+-6S--s(>dumuYbOq)VqbB-_N=Sm`A_@`2j(gVO zQ8C@U2N7t)THIltHB+|ty&mNjOe@nAhMUFrgnmkaMIfW8W&qb!AKABx&b+Mfu@RrUe1&YVdCjN;9mJDu+JcjxbPrb0_pBo_e&T z1AK%w!DsovUuTF&6w8p-2UY+o%yMJ%j{%Lxmsx?#VudlVd=Vo( zuS8<p4P7 z{|-{QOKbPy0J2!3`CW#@Bn?^O^qOK*OKY4s#zSpb0S|ds+Cg^IJTW!@a%WKhn3&YlF~J@|^N^>`v>T50sT<`64EMN!yWi3~J1#7}%Y&pE@=kQU~}-PGh&^ zwJWOzX2OC_EE9^EsD*cDQQ4hoIJLp>R#V$l@jaD$UcIT@(VM@$vbd2ibIwAJM$Z^%M`ooW-Rp9Bs)V|9P;O^fIc#qcb^AHYci zV{k|bWE|<~1&6O^q6*@Mnd@WdAailMsqNAGPEur+EZhMLD)J|ojpQoUE<23oj5#dv zXO1e42EPm}>gVNJTH1@)K!g4!bU2r^UyHP2826SY|108=`S4}P_2qK;toWVG6jihJs}h4eZwHOg+=Q=n53YJn3MWk+ zZ8YDXZ1mg`zPW2W4YI>^n?tRoex|$gEMaYYa*j!8AwZtM;9IkiN33MM7=2FmJic|r zMIo1rSc-%TW6Uug3sW%(nL-Y%zRYG9ONus4`361KZ#;!Gc^N&KXt-Xt%;>!ga+FU?wbC^oRruy48!?$}3C?_loF!NX8XR%|u!_-WmvA z6TRT@b&9|4RS*^R$L>}t0ynuT^%i}6U}Ksg*2arAlQh&u#)BfzR;GtR5u+CG(LqEe z-2kbLo;tyd&B(j0*-RO9gjI=r@^`VJ1q@wIj4`T)-yoL)ON7ajuk+(kMZw<9H50z6 z>&tw^D~P%koHnj#`Au3{Y$}E_)cv|M*Zr;;wbHNzDSGJ^^q~u%7Z+hwZa46k!WXT} z&6G5w6!iFRNR^{$WPQ1XM}BFf zb%qv1f|p>#Wpsn^D%o3pH4?_zJaQ3aPOH5Sl4S=M(Cx^WULxF5@{#Q?v>xlJXo`1d z&}l_CEalIG*@p5bsq8(F9h;83KB`r0`WUo~{+drcld9GF*5ll+ehK-j&ITU|JkS(M zDVJpYt)7wVzxkw7)b1+vA#JefedU_y5>G*uX(7^McNIPx)@L6sG4i$1sn*fIE-h!h zk`-UYQi~aJA?MITPvEZOoea=ex|SM`-rEK2e z7;dL)f6o=-fka6Zj3R~Sz>I_`-baw^>7}D=#jR#ULC8T^KpCmDj&}+F)3)~yAUtmYaZ9YEGaiPge8F zxHPWXle=rw>KFPhV&}bQStdg9>l1~16q53oRGg91>*tZe3X{*4Ot- zNa-c3tm*rxuF?_#i8RnQQm>1FV&@t@+?s5=B@o-P+LNZvxJA(XO9&GL4!S98Wb7qg zhO}o6r}dEuP0y}hBl6K{^P`OBM&_jFHRO<&A&qyUSxH#)kHW8uy*tJ@LyOztftNii zgmN(Ibk&D7ccjIEz46guR6Ok^<{TQi!aOx|9Gkk37mCV}QLP@=uF+qGwP1GcL`0cg z_g66vHi(n;=($Asz|o-1d#yBz@a=p2o9t7nZ?1ZBC_LFUkiH)CPAznV%m!ulTH{jR||o7SG?US88ND@ zgjaoVyF0E&Vvx;qv1G$!G1Q|x8l$XpS~8`j2zdy)J3R>e$9Q z(K;&LlDWdJ`=Dd&a|wyzYP#u~5w~O~#;kK+-ngC?GX>7wL9y83HYKA5HxYVhg-Uyt z`CBsjq(`m3zR(V5@QZ$KwR5Y(F`(>1XQ>$XVXp5M;keQ>^|lLB>UGcA>e%XTliaU> zuC8Lo-t!^tQK77jj|(lGp{f;VsV!#FUlFlty!`SKn+UXej?&CiipYncM5t2 zjZ#-dtr~37#D`1W(y~9U^WQB_swr1VcYz?aZ{Ou1aoyskoUS2KXIwrSdo1; z6Cb8P-1H9l=*#hnK&=rSHv1=KYEE%iALZoD=&8xZ>8N%0kPaOG**1S}#Q5peK0dj;2Mk{%udS;@d~kFKuc&Qk{Dr|MNS7hp-R2D3YBjNlmv-@8O*85yXEg7}BoR3% zAV=bDWNOe>XCayS2HBDqsJ!+kNV(Km!0?UEP0RO*SEavla$(YRj%;YbD;cxhr_6B? zOMJEu(}grX5UFTg;);FFJh}m^&#Y?dDj{S^cp%fooRjKDCph2^*O{1H3urL){l+bZ zUoagSHN>nnKiijAbG#(>W>;kAg+|@e+%n|qo5m>pscIdbH*$IOUO%#Uxgo7!-Jev( z_2v>|fx_+f5!phYuoSqaRoGKAGqe`*Ex9q3E6>_Pf*0s{BK1Q9N^NoG>uUBc77p~T znRuA6D^RQ0(n458p-JGJKGM4oIo^p9wm?(vT_`4Tr)?!2&liQHG%Jr>YfGacBF#qg zGtG?L!`-hg#24!a{NgMsgTkahf+GnCqX`+)H?NP_rp`A@5^j4&kE9x-^#so#UV}lr zOdg@pOldV(9kikdp$dyja}_LEwdEKra|X?zAROu*a^iFN8D#h&3R$Pu+^x`1F&?9y z-3&JnOhXfp-n90xz)9}Y;}u3pH;T;Fka`hl>xzYc2l-(sZ1=WA|NH`_K_Khgb*v?a z9fBDl26Ut~`OKJxv8^$E`mu38ghHmz85Sru2_^?u2O!PqAvoTthTW3k?>(H+DLU~f zquv?MbY0?oDx3Kg(Jr|Pq)6EL&cNH3*r7DhrbBG$>PPs!8&w^vKIC z4R3A_)Dk!AuNDS%c~zDnUwe`D9IsR&;GlwCY1bj6Bvt6p(h5ptSCC*jHZD1=k0$C} z^#ZrzL#s&rOG6BGDq?lDfC9Ja(6>PfS>vOIEL&uht}dE8Pm;Su!{-lK=bb82O^7Ro zw2PZyb0NBOeBX$QTsGcx?_=s~`$Fp31`R!PF-c15HnJuUc?QN2h71FX2=;yC{=O2SM)>gv8XoOSbrL(S zrYeWTezhM#7M<88i4QF%#)=^Bm6rG`&qNKMh`<9?O9dE(sM8CQ)Fh7bn@LV>We1CS;~lD z4!--;AwQY0uQWHf`plc@=puYvPR|6VF1j+Iixz5cXU9O;#I|;|szX5~u!p`cRqla? z6F%%P5iSi!ylER2az7{%5owa6`69Z&3%u@@hHva&R-IxWQ!jvp=;a;f1%^poHmze` zFj;x=S0lPZz>Z4<*tf9mHCs6MGG3Pv;}qq^YHdb!CtktjkKRDVs4zp3vXM?OVaEzH z3R*w~Hvc1JaEo`XvR&mfS~`$}sUZL_w)rDOwS%ZE?WQ4{>5 z8-2)%rR&hiRgYNfOkTq~XRC!i8~5l+xw^)(H8iC|aBg*9*3RmDKlwHV7HN`IfE04L zAw~Fh?0)QOSX^=nB_k%^ibuj|FXPT*@*V+|gJP6M3FJWYWbV|rL#sxK5G)R~FJ%bh zk46rtnHD?A+-oBT^y@tKqabb@~aU01-ddJ<+JwCCTwsWx_kxe;OL?fyeGGt z0W>WR3iDlK*XtfsZQ?9bNkM8qB+uY79of##bk82MqnS zH}Z79R0-_WIN#l0S}VkXmMd@C?_$fuEkA9;pFof^YKL}>vXB)U^bcIP1hnGzfzW-iul)-Iku zm5k{W-qZ8&Aa($nGt?epW(9VzHUr!J6qNiF==yn}_SUygYyPa-fGv@~%CY8IfW5gN zs?8C|qGIg^`Kd?@CrE#EzWI4jXX0`E)11x zFa&<6!N0)8?7$ATKS3748>tlm#NPcYq{(;Wi@-ZSLzeUeEa+!K56-+3tO9c9JjMor zcusJEXHGx{;46Lxtq69$Z3VWoQ-L^J{6zNL0Sab1K=uSc(qn&fQgQ+cD1J`x3*hKh zaSAqc5U2)-SAQCqi2momS`cUGPbAihxBTV^^x+YpmeauDz@I-<$*Ey4sxAFv1Bs8> zJEQv39sxDzI4q;e#;#%tmtppA%3h z_B+@zP^hh|qqep4Im)r@p_eQGX0K!b|FrD%GQWc_=V}jV|HraxtlmSr0}Oo`K>p*X zgC`{?fK>5!u+^b<<`8EUusOr`T<2#y_icvkLvKL$y@2oHJ|O^}IRQ(`|B2(rO>k5; z<0%K=w*mO$Z(&YKPC&W#@4)|IHR7&+Wqmm-{0yO4)G{z1JqO0sKi4uj0aeE5p#OX7 zQ?z!l)__`C+CkLatzFElPQFGzOQyuJNA(KuXS~2XcI%`az!R`i)Bl_7$66!d&ZG_i zI$jRw_|sH$(BG!|XPeINf1f+XVWGglwgLPy;Nbo)IRS@G=TQAI(Tgc7{#f=WJC9Y~ z0zIw<^!Rc5r<0Ns@XF_BfU_=M4&zb-!!Jp*R%)e8v-S;F%LJ z75r2DW9%P`tj@XHcLYEl0siMSWM9qF3*ddUX(nR1}7j;}zRl$?O~Ddzy5ETm2r87fd0U}01V)3vB+e!Ypu(b08VxEeF9l>VSKzgr#Yv_3Kh025FX#r@57MQkx zY2@#c6Hr|6J5*BEcJ{xZxK%0`-~~`X0gBV6Xj%FTiocQ7J?%}QKj`G+CV*wzw7UTJ zGXf0NYkxQ3*c7=de}R9hFI2z|5WDl-&YVAyTP5Ijh=ETXr}d;>{hvvG+!YH_UkBrX zb{GI|^fZNG+kc_Z0^7NsGsK7>UaSj%nsNb;#(YXuQtiK_a6iu%Afk=f3IQEF1L)_p zpLFT`1*#g@9I#h$h%*>SL?>Z=+xG7s|FMn^^_B>K>m!m^kd;6>)sf+fbjQ# zt~kApc=q`>fqypC&|hPlhXW=m518obbp-DEZ^Hk?I!$PJzYGA@S@bXKoZa{Zx(4{% z<=a9|1JcfcC{t(Tu|X9~zB6 zxzArR;9o{&DFx0rfN0LTJ;D9|gYd`pbT$L)NyBmiM6eKk{F&fnzB`qV_3S))Haq2a zTp!$XaL?=_oX%Bw7XNI9!|(Wsc>f9ibiTv0G-p$)eW!sD{TG@aEB|b`^Y7>?jK7Kg zui)orTW~g@>URz`j^E?>JG|;y=(929zC#!C{vI^&vExS(=FSqG4M_H#XpsN^BKmQ6 zoV_RgohDc6zteobHGQ@@XRq0Q=joC8e|Ub}nzKinzq2%JpTlzIz|?u3@a)Od@5lyv zzlr?)oa$NSoIOwY9URHhvx(LIfS5B)^hD8MvuJQ0Y4rbs}b%MQS# G3Hl#$@FSi8 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 1ccbbb071f64b9fa8b495ab8911d3b71428accfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100168 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 A(EtDd 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 0782abf3b9c371781ce941c8fbbee1112b14419e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343822 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 O@V|ImuaJu#Nbr9)nvsJ5 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/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/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/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/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/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/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/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/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/ComponentType.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/ComponentType.java deleted file mode 100644 index f10717cb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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-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/PropertyWrapper.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/common/PropertyWrapper.java deleted file mode 100644 index d07af5f4..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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-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/IDIYComponent.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IDIYComponent.java deleted file mode 100644 index ecf23912..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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: - *

- * - * @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-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/IView.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/IView.java deleted file mode 100644 index fe11e4b5..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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-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/ComponentDescriptor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/annotations/ComponentDescriptor.java deleted file mode 100644 index c9bbaa21..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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-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/Capacitance.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Capacitance.java deleted file mode 100644 index 4e2e79c3..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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-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/Inductance.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Inductance.java deleted file mode 100644 index af598a2a..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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-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/Size.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/core/measures/Size.java deleted file mode 100644 index e7543161..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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-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/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/ComponentProcessor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/ComponentProcessor.java deleted file mode 100644 index 3eb9bee2..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/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-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/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-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 c930a6ab4d4b73c1a6feb9e929091205664bb340..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391834 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
kW46-n*Dy%K?x)3MTw-@Z@8{Z7i4b#9(E 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 z≫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

sl*CtvD7j$_;?KD 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

{0o23%x0zG^lL-+)0hE&z$21eha>paa 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 LL+IIXJH`J1EdB>a 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 4ef4219c6f62944a898fd5bec4bfeb8671109d5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431406 zcmbTe1$10VvIQtv%q)wUnVFfHxx~zj7Be$5GlM1BVrH_KnVIcX|C#yY>D|-Qf9q69 zb*eHlA~Pf7#=DWP6r@2wp@IH*(1e6={?D6#{(<`VFDt4dNGmBPMz8SCW{^PCAI-+z z(WA{izV`Weq5j@XR!~k-OjKEgPFCzzc6>}mnwD+`PMVf#a(t>$iD903Yu}MZYI2xH znpOxBVy{Ro37z^oiFlCpC)RW&LO400l~5}G&4n9}XXH&V<_Qr~wppUW{l z(h=iPb!(HX<9fY%*f8>e@*{?w?O)53ukjX7c+Bb zH#))i&{-m7zZ%Dh_+Z+GK4FB1L|26_kCp+8UZ1}S{@qe+w(83nr=_VA5zzn59vn?ftxb%aE&g&kX#ZwsChpEAw#FvL zzfBDKpH}zpc4Y~01sIwD{%Vn^{-#xi04EEh-%R@RR5AR`evIs_|2b8^PyC;k?(bS< zV(Vh_SN#zDl~pzXdwUbdzZet#Ur7V3Edal({_}+3{gtqhoukQLDE`Zx^FOjK&KAFK z|351y{VU}kgLblT`fxI%-);Ew68vQs09#u-XTTp0|L-Y){GS*;Rb^YA^a%)v2^fRyKh9Z_jWI4dH?59aw$$Z3Oa)eFpVXA5KAWQGw8YBldJS4a8bmWA5Ns95ZXjp zVLhD2ysflN1T@3oEmZ~$DEe{LVJzA%;tA{P;*PYQ{4feDk$vwPye{wgE?P*~bg z?q>5;I(vZ=XH;k;ddJPE#Z@F{6q`#Au-GVvs@+jwP!$Q-??~5l8qk_Jag|*xK4gw6 zrWe98t<1+N6?CBLGf>!7>1{qLt7*3ao0WK}5FX!h=A>ikFVHcS(48GH@d1Qv6a#x! z9eHMK6H<#kFl1wh9o=CfiCEy*HI8^9!9;DVpVH$wC?Q9qTEbI`+xbwe%4!e+=lN;pLn!y8YH zFcuB+sL~hijS=1jKtfXnd_^YIjp;Aof2Aw`aP>48Kx+#a5YW>{2FCP%a`k`tc(R(d zvbHMfPdUc~kZmB!Rw2RS2XrBG8l|dWLs}af8if@C35#T5j<~sl#l*x<)mmQni!lQ-U{EkP>{`yAjp}mF1sF9PH(F1E))5G{k(Sr0<7I`n?$|T z!I=4QgqoA48ewf9?Y4zLF?Lh;7cubE0!BlrvZ@0@V6f;Su6gk-ueuQn4LND6-~hb4 z!rX?v=T!(~2UHBTgcpGjDG0PgmN0Zs4w_*>h>UQO4pha2)r5rtV@1_TMk~-sVF3|o z@r;HkjYWA(MjY2=M*VcuWw}@##yYIMP{geGFx|`2cjxouQ z%Cd)zhD!_IfLQAcpp zHW1uh==q+zs`5P7VX1WD_Pr>JSWIRp%af2pq4rkof#($WO+mCC4b=a6zTa}!FP}fSO!xW#n)QCxU-8o?{uW`7|O2tD( zWg#s0#A%-=k)ux)9~C~Qlf>>H9FWvx5d7%O(|89jl+dHpk+7E#h>T9X&afs92{E=1{Q>igsA4ZD1WUnhuF2p6bRTP83khjaxfWr4c>?6)u&~ukInI#e z(HyqaoE@JHVf`VG96~$PGuqbIDk(iMvo(o58IN|%f$Wj%w|u6<){_~@!}#^JpT$*1 zWX~~}EjBa*vzRG}G$V=hOCb&)Q6z@&kf-R=!7b85TFKk|2EA`)@dRBQ zOMJ!E$q@yTb?m|HysIkEaYWe`)< zRNh(c18QbT4MO7`p~CXhZ6OsSsz-gND+(<0&ln4I-hu1+ldSVH5iZp*etD)~zAm0< zt9XTz(cz(GQ`lvqs`g6Y`eG&unqofX9eRtPu*xw8++xcmjX}R~m}46P7#DeC=F$W{ zC3=&V*du(t0;3x}S-o{ZtNa!#d=}Vy3+^>Tj=iXFy+u(iYUWz?xk$u>?s?ucU5m1k zs{pS5$ExQ14T2EN0o$Fcczvrl!*`TkuT~Mst?cLB02nDn063Bi?@g-OMh?E+I z<<$d_vSG!Mn!=A{8?mW}zkgEHN=m=q+eNQGBfkld#B<%os11$8>lo=KP_*89;c!#E zxP6{Hthuv4-yeY(ul@U-C9;s?UgM+tXrf|yHZxc zzjcJAMRvPN{bTzvL8Cg9mo~>mHPg=$jGm=}+I_|^zA=1~&81_YF(9=7L6I2UW9$ew z_2w$~wTHDy-nGWC^oUiN+Qsxs7Z^V~maPHyH!9h;q^4c;%W0b($56;M($@>5E_r+0 z+}RuEpSC;HOy}C(ln&Si6TAI8v{^)I5FNSWve+q__ z6oYfYfiS{~I!yzOva&Wh`(cU%qeVl~sm19!%T_O($VQL*l7QeqHWI}R#f&?}Vu5Xb zLYe4mQF`uY{z{rI=_j&&t3x}Bk%ajec(L9^KgD~{$Iy0B|R zZ;sDGxRcUO`FK;i1w6V5rDK9J5_XG(QIZz3f-=E%k}cK&q!Udn%!0_swTJ_dI>6~}ex+2f97 zNiRPq1xaQb_uaF0xlX#ivWOUB_qpUOp(!gbgo@KcdaIjl&mQIXRkq#ZsnLbn< z|G2q;JFy)k`-wF~h1ysXGN?3NU}dH(?An8deq6At!Rf}pZlb%C2WR;ssj=p3;bP~0 zn(YQ5)Er9V9mzOfuCl7Yw9xG;3Lgj>E{8N(DI3p9;rEb&g545fil@U12vyWo~lscb3tND%(CGmm*ytv9h~zH>{ylIr0)=;U6?SO&JY|3 z{Z27Kx7`-RQF1CimOJMA-L2;}Y-d0wxT{gDf7el-Rb}SHciK*>i2#2Pccs3KP(!n= zI3Rbdckr0)HgJ9QRR1AF6mWUaYhsXE|8mKn{7PdROK@)({ES!N8%3oUx3rz_KwSxQ zte`gKbMY1tIM_I-mGfv3iD0!qGfb+qz}R>+9+l>lm6gmEQcuBNMNKJ=4pfO)`thzV zv_#b~jgaPY)M9#84MDI2Q>}P4&jVf$_TiG#0Va0*)BysL0=5IshW=L^ZJBq%7uGe$>X7Z`m$0-=m?`+q=uZS8aVU4m^=hR1K06)s^Pv>~v zyVO?*udm3_}TwwULKP;z^olE|Opj91|T&l7p>Df#a6fV<3x06WLKYjf7GjA6ta!N6I4 ziaPyn^|9P9QWP`A9K(rqJH@@pl-`ju*!IY=%pv%+cRyR7iz3|JlNtcS zer?&r_mysSh3_CiWv5JRv82XTU0#^cMlgIf$3OXZ!%cXE@{J$KO&Go^jJZMz!WuEl zF$5DA`6M{YUmYos#P@J=_V8MVh`O z`x$j*1N!EMqEEn6HBDChtT6cIqlobBq;OqwfzBv$rD2Qw#qZQ@Nsv!`c-Ooi?Bo|u zbBBaPD&zqX8Y|i!2cfgVP#~2NsIuB4XGeal0&&q3Zp`!3ILriy{+06vw(Uu^`RXi& z%~+KMR{D`@f$y@K|AGt*5PGW|^8j;L!zSFQgjNRU0a;Z z>JHjMTgJ8BqF)a7z1YlQnBvcGr>p~uK` zKhu*&O7WMl)Mx0tgS6bodx*qt^t6bGT*}>)t|_6+Tqf+zzSkBccUmiJbqmd{6$RP> zAoPk)*u%G2gWdUwmzcF77Rn7XS+g9pEMjlmai(rYhA_UGdM^XXhWD>Gdzb8?kby|Es47M;nLmE(1(BG{1zx+&)B3_jG8vN#xr?x0Gwoa}e` z?cT}J-y-?o3$rlSO15+2zkhNmjCfnZZuAHW{^YAE{8lD*#dhx-sj0PR^1y6*cW8VA zbMrzvxrK{9M?`i_XX=po>=P@sK6v^hVBr!0jiJ({q9o6#-4|7;T#ILCJ(; z2YSJ9_^lV+yZvJ1#)JL@Rp4IxKmUDP|mzajh&*4BQ~Si9wevvBzT!&#_1T70mG|KcpP zfk|yx|$<=(x)#R(TTdU(U`OiORrL ztK61hH}&=zlk03tcS7^tW{j5m750o*cs1dCWt&Nu)Qxlvd-bMWzhZ^-qDuNS#V!=o ztBd3&6LvI0y#=EqqQ$D3)p9lETTd%)gK;EYzMbPH`sUWa=(xs(3fYvv z6P$q&m+(o%@L|#;{f_RXdFWd_k z9o2dho(MNdZs{nOn!z30RmEl1Ooa?{`-T#`v+gA?)X1M>c6(Y zKWICYPyWVW0bf2V2m+%7(3pQG7#;vZhBNmUO18^1rqYygEgu2D%JrV6qJ_bK1L7ZT zFl%sJg`-Ly9g&eg9Oqo`dc9qG#0PRV?hD(I#O7ke7W{lb!jsHE4-o7v2qJ}=A}J!J zk=BT>quOo{YDQ!t?1bDV6+RNc@bc>X&X7H^indO<+-x|)SvT-n;j7^S%1+f`acV{O zIb=9>yi;*QX-3u-wJpuWJe`?#F5N6GTsMZOdje5r6>M@ko|U#+v2w4?-DqzV^>}n8 z>6;Ct^2NHrG-bMKNPqC-!m?Wuf3b2IkggI_#c9jdae^itq%9-Mz|JLx7WD(4ehb10 zF!BNsh}|Owk?4hW+;_M_p;ot{on>94&FQfa)%lSK3$*ZW$q6mdj?qjkT6CPwah04+ zxZxhRK9m6|9eHDyRpcqx@A8cnXitP7V+61>Ib0Jus-@wAxLeMo*N2AQAi5bYDG=TzaB zRq^9(Fc{1c}Q+2Se_1eI>?YS!S>aNW( zkN_}F6c9Mw z!ATL{DOr@NB6w0dM!Qx*PD4P(`hsA~dW&u`pMPqrVakMjrTB(#qvDUQ8%n`G=`8~2$ViJ7Huk^=UhpIi6mwk>q>z{zM0%{ zEeG-|{=F->t1IXBo^3-xuAkcMn%?oq<2JR>L%QpX zIuuVWmC&bVUj0)}xn|*}42Wc`4wQ0qN!>bkux3WDi@xUF!4>=BHtWMmDq(ShsV~UC zapsTuCUHKyge5Q#Q1u7aaQ&A{MF|TNM}VV|xrGtHTKRv9l>b4FD~!qY3ZQlccJ2}8 zeYvcr#5UXQ4N4Y_CJ74{ky(Q~4}x#OWy%itnE}K9J(g($o)tMbT6a9%>tM}E{&MJW zl^aNbW3)#Q9v(_X2Yo|ofV<`jX8`0Aw%Td9z(y*wFXbVOp#%Xo3WD;d0mdbt<14;f zPXCUD6WJe8im_luT+>pZyKF6m=EI$kXr!Hb=H3{hSYs%swZ6roeJ3@0R%5=nm|!a+ zXUJuA-)MFge3c3P58U=7U}9Za)n%lECrR0|Z@#xHNm0#bYw~KpsC;F@`szuy;3T0h zRLyZ)P8*1+{sT*i*iYqCq-$qc)cFXaxO(CD?NP6R`Nyp7e`Zg4>lxBF+Jd+$ zL`-E-N^Q6U=kNIXc)$Ms=IaBp)h59pX+OzuC)jpn?lfSZPPe!tYfoGeVAgY7ktUl8 zYZQO@=zpUMOY(Jtc-0Qa9WA9-go(6bv{gA~wqwDIaVAy7qN?4m+Ux$U52Ca`#A@tNi*wt!yqG~#d7aA)ws2gGd?AqS?ta0qH`CK1 zWK}q1dhlyvu9_98aISxTAXft2dN`fHS^g%2#Vv3MoH%W)c8r6NT!^wKH^=L5TLSrG zOCUkU;Cg+qCn_J+{J$(AexS`C6>nu{fcx*$Sgmg5guRdEtLIUjynm0&=^98Fv^Cs- zBj`UbNnlf#7-C5MIW#V4x*=t$1zEE}z4FJlk}YkjBfWYiGIX&lw+*FCJ#R?*oiixX(4%L|4s%S8`=d9G{(C4H;6YWHdD`E0w(|ubwTKO>mn_CYogZx7X4{ zhj5$>r!!p1DBW6xu40_o&d*diP}kcsPra6$bOf>Ofipv9HK{ezu$s?|4$MQc7V~vR z$8p%to6aI-CemdN(RNNf8F$j0d|`WE50!XixKfKR;_dDrOXWrgbAE={)L5POs~mjE zZfP(|za7^Jfx0WeY>4CzUj3GW6ufdRLpasBBr=d^IBoX=o%%i;Q8JIQ59efUoxA(v zcqX9l{GqHecQ|bs>OeHYdTIfu6}oK9%?j^^!77KwI7+jHN%tCSI_{25YCXDRW&4$u!8xZW)gCz% z)7f!+I>&&bOWx5%3+LC`ac6O^T%E#G3`aJT_n`fxir`|r^JhOYVd`Y+6G;HJjkSSF zkhmilw+XIooift3C4zn(aH5C~1Y;XoGZ$8LYMVya0kBxF-_(bZA?Q85|F} zlG~PCFgCk_J#?4;zI1RC!LRY}kDxmqod#Q?YbFK|$l!X&8)FTf0fAh4tXEE*CA%&l zc3ZL_cH6SJcGzh{0sd}RFu0e{iDYzJykHnl#c7`S5OCfE(BFDPKd2c!5aOGiC63|a z?rV=?`!UbnSFv_>Wq2dq*<*dbPt~lnOLh*eto;UW3^Jv&RONZ{{UwzH43}|kW};hQha}3^ zQIV}W+805ObZ$w9fZ@(A?Vz03nQ^;*AXmw2fN?Hd;D6}SK8A%?tT90B+39Ld#8VBqh+9VbOF{2-p_C*dc zFBnl5>D&oaj;_!YQ;T$d!n{QPlS^jlmT>cv0<9=T{+>509Vz)d)s`FDHvJXmUL*IS z=GUkdjZ30{`X{10jU^(X`mmO;jv9~o0d+(*je84f1o+8mf`@!Ox0zO85r(jdAF-zn zUj#XiUOJWY~F`aGtdTu zUD(q?R0aBVOkV19BKy(GiQx;lg*0PuapN~79xuPMy;AdqLG+mu(fnw9W=HhtL2+}u zkfH7pOM63^Y6sElEC3+4SRAwE7ny`eG_bhuotd{SqAv<6MWOgBePTe>c~TBgp-mnYu_uyWr^*yD*4 zH{Tvz8$QtnccWRu8@QD*J7dCS6V9}|0t?!d`Xa6RlrPq>4)kYbmUqk9fGtU$J44E8 zi{y$Ib|U_~2X13>c8@%>n>iFJ;CzruY|+)dg70+UI2^`g$fkQ(Ju#*3OX9D=vCNyQ|jk zo7_*h8w27vx_*ORZT*>xo9;6&5Pbdo9(^zDzLE6TUTD3!VQ=ClTf}HRL$RxB9+xykV33m-!KkTAmeWF|o&4OApUoT7al~ce@h`xH8*C{+=kFs1OkPqEl$$!#32&8`IJ z>i(c2pTZHg3K1J)Bn!z<%V?_I2F)gOn0Mc=Z%^HT(Aik4unaVq83Mn8J69byX{!Si zecDR%i}I^_<`n>G@jJu&Epf02RxO*&y)m0sZoQA)-q;%N1W5sIv_q{gx=WtxE|s%L zdSkr4NU1i=#;!P1P`OMb()%DG^EI2uu(zy3DEE4;lzY+}&XkQRw>B4e_Qz!$awWYn zC=Ax`_h)9Z5$(7MA?mYGg^BpdbR?SP^MP?=b$F7rDVCvcxUD)D&DCNQxV2rpDa$S% zh$5ntv2Mh~DE1*u=QoKcAp_x3A(}`(-X!8uJVhAJzu&OT2Injx&+?X-n`?Q{t&y)g+-uXm3VF-U~Ibsq&V2$o!ZR~(Q28;01 ztIqhf3GH=47!V4}eK^B&8A>AF^mFeWUnMI2MK>{%jr0X3YMW(&LK&<>jSHED10RU01V#1^h1#J4ORvc=E{sc~Q8=D+AG_i0ERPfR9MUP*IeY19{0x zm|+Fml%sWYGc}SE19C+{@Bf~yf&}`*InB!RC<;EDa{lA>cbxOXDa9NuK2G6Td;IR4 zCKL7W0Su^M)31nvvNBn3poNjqjogVd{(?(d*c2`ENd-?<@V;O0O@c=J+1J+A_V#?b zYuSN99HKY|!x)m2x7am#3LF1xe0$L1dWdb3EWW_#~|>7 z6?PRC@%=X{=Z|6U1gC#p|DbZde^5Dee`8N7$^mRlWC8a7U~;09KB|+ds6)Tl<)u@K zxATFKs`J!tja&H$lOk3Wif9$$FiHxUCy`r53>&cB*i#-dpJ-2_z--KL^cOJslXf}X zQiFnMZw@xTnoV*3+T?v)d!70=^$Rr5NPPhGAoNNTYgc0n5Fd)&r_n15mRqS%Kb}I5 z>OF$5PuW&1)Yloor1s;yB|_D^I$!px)e`x7>ue8r;&(<#gH=b_%(IMlC1px*bQhXP@6* z8^7mE{^8e>nORzKerr}2C`^OcMcLd|6gho$y`8ykxv3o=QNyY;)RL3-n&803er3Bi)k%Eq8fuSD)Z)++ zZ351vB#>Y2NXjUVumai@57qxPZ-KTOn9O`1m{q!;6|yCle+~CSm6)9YZWL@3*6V(T zx#KAFMkTyabd9{jGO2K)>8W^V54L8^1Zfu!*Ob$@3J}UH_~F-bg`GgpIG}uuP-OT7 zGb(mWnowLiKn%-!evm7YFvx?73fU%+MyfPdJV~=ZN)+q{$xHSPL{zUUva(3h$Ny3I zoIEMKS(+pRzG;qp#j@=E(+Nlec?3&;EF;fwy#P*Rkw+j$N|=$ym)(jz3KvePVI*wz zFIfD0Pr;q(h2ube$~O7}UiMM(n-0gAvpVsDMhU#q{Tbm#>M2#IRbE5(!Qa2EveY1t zVnMAF_IRb0uKK`W>&o!Wp|m+_km&6jLt!>z7}kWQS>|hS^&TM&dRkVj9l*Ot@2i+L zXKJ3Cs+EJ{57Tvsg`yiT?)M1TQqNS{OJTXmyC^iQ3NBp(Fgj&6XmY4fUtbsmUSbTp zQ!&XvYUz}u*f?PPP@$0VL7xec_jb+Wo(LqO4IlJ@na~2fiH!JuFM#|JD2juBt~GoB zcg@F1w*Pi$^AGU;Ej}ul*jodP{8#}N_oKn5=03E;Obre4J%tc|dHmo9; z*PDV=j@iI8(s#Wx<>}+lkauYKCq;icMrZ1yYa>kfh}gp*7YW!d!y}ZL(1FFnffFRK zcW7`Dnn*Kc%Dxj;CrV<|k_j0>A=RZchtaU2sB!b6S_4w%LT-|y0hzU?oBApfI!O4m z=d^g{LNOYEl!n&I$N3E9cw6EjAL)p6FeFE9rbL>vq%B)(E}|ZkiNSN9k*H;58HCJ5 zfDwmD1W^Mcu}gnl!p^FLCv>>6UT;c`1{*FVNyEU5$hPw$S9)yL$Y+{43GsyG;dEyz zrZ_nl4M}Dc`D~YpW{t7I!2x#dGbEE|Y1T&!i=2-9@s<)t3`xeH1)WBt<5B3yZ%2Fd zlA$ICk(33hjpnNtJHuhRS>#6e2QA}BP%gJSM`3rFgCly0{-$K65s6^|Y=PG0qbs5^ zt|Zmogc%GpP?cj1?DPZzcRO9Ce3@JWI@DN)o0nTxX_(YkDt`Jc<^$s~MOy_Wu!EWX zWKcEv=!~!y8lhy2JQV=66P7A5++-GVB!_ArF+Ra^bB#bxI4i|k1BE_CoW!~tV1h8j z6crEt94xl&wvf+P1wkh_29XgOt56tNAxJ2~I)ULx_1{6ENLZt`i-IP837f%KQV9;J z*KKLW?JG9g=hopQjeVMG6(SvBR9cwy$r+q1F}EmC^LgH}-{{7(Tl=xBsg}_YKUOaT zHGx2Sps8A89mQv$N^AU@mH1i8w8kdsD^aBDVMOO}3sWTmR5-srLzPfBKjns|OS-fR z8*Xui<+3a=f{xIaCLN)`EPWKm#>3`^vtSbE(RzP~ zdNZ`sU8ytg*+8#Rm2F!Qs_02w;89cB(v7uuZ0S}AgQP_zHg8O+mM%iN{poq4zreKS zxv+1B5XlNy>_I(E zdKHIzeG4mdaPL#MGg!{MC|8k}$+!GkYNDGSv|*R)$}HjL66+I=Jq@m1ay86ixprjN&K0?aQ4dleVvP`g zM1bZMKI3aR6HGoW`{r4P0O9auGjuu>7{?R^bIXfAge7JdC*+E1wHKS=3NN$QENmNk zr!53Y#_1e_N83T>csB#o7nB~vw5 zm@}7UQ#B-CRdttG1GR-N_{N9{n!mZ`EY*$ky_^lV$n`#$Htt|whn*qx{SYP-hn8#(WIH8IH-*42nNEB>`Mz_veL=WJ zYQAE0v5&`k0(HBh^esM=*XiBF7~<85>ue(ey9#c?LTO=hgk*4&#HKO|wHX__rtdyP ze|7oQqrNU=x_b4s`g6MKyXmRu_H(LDS6RS4X4kai9g*t9k*Fi5r-Nc7ch+L#=CMBO zex|HBd@1zTOz#oPZ$hjKTuZZ-rrKJWxbJu0{_`ph=~BY0>4V$$_{bWW|3=0rVrRo5 zCE{rDaVrf8<39_4N}KZY0*F6b-0nJ+^6@ArBECG@;~5OZr2$vq z2yV%=_TqnQlpztpe*$?b3~Q8D>pa z(p{@h32qE_;|uvjeoF8(Y%RYladL=g)r=1xe)%XP?zP*#e zXuHYhDFlp)uP2cPX&0k1-bbb4LYKFNL2+X0if_P6vrnWNtl3Oodi*}P-b*r`DKNrq zj+adA`LE0c{$T9ffV42=WaV09q---EZ>P+Bi=f5CA~w) zgl=U*jcN1y2L8f=k6Fk_AECJcBlBa9)5FH&n$r~Qub+>Hn?MOqqJz3%$OmXNTR8!Y zG!M6q`mm|S#%RO6Y#|WP8w0|CSDis(FhNG#ej`kM$lFwCq2UpYlz8*l5^ zESUCvBD06$d+(aIG-eh?SF-nm3Nio0<4!%Pj7m=zlLeinXtU%!u>qEO9Z5vnqzF{a zj1EpC^C{K9tj|QacWw&QpebLY)>U_u%F~!wnsq2_H&mA*+Ifnhd-?h>B{}BMAe~wZ zGMLZ3I6jU>wMD*C;Rz0LRqK_(#hH+0Td5OS;FX4gS>NJ*bs5*hgr<}&$ z&8^*L**BM#kaLlpbd+Fm5`U|x&pW8rB#&A!=SU0HCLPz;bo6;?i46<_!CTG??VrWD zXV6_8uCyvCNi7vUuD}+7Y?V%pv!FQ?ONVJCb^TU?S532>M_!US`Wj-|QaqdEX{ALT zb(pT3=iyV6@3v0J{aB}cwn45n6M*5kt-Kg@%DAc#rpu>mIs=AtGnkk+eyU1bn~?hz z&(@L!3W)&VJ_Lf&59LkJ2U`%)Xvl!s?+^uXjdO}D=jN~oCLyH57T}I>sod;_22meg zOWMCtW@8)b9cTx3=XQ34E9LcBh1;g473fW`>{+l^g`KfWUfJ~^48Mgr^L2551DeyTt-jD73C(svb=ptf>#fMIjhsRnLtQQR@Tzh0c}!yS zYj1j-rF$)%PIs@KxxAUow(_F<3byHk73y{}6Zuw#yNf^Fr_aW88eSd$2%MweBCAJ? zv;HMk{(HVTu2M@#4*ynV5B@tY@Fu#aU*jiocibXk436Px!Vob|=#~61LU@h3MEEnD zPbt3)SkP;Q$?Wyv-r-n+-56{Uh{0yl&d&+L$qBU@a)QqAV0gFlK65E}<=7|{9 zG9X5O6Uy`dHr0?@5HYuxu_OM58A)zA)XoD)B|p0gD<$D;nsrQoWHU-|+eR}m1lQ|e z=~~Y2TsT!0HWPRtV0-owR6zmYaZRyA=_c9bolPTxjqI@g2QE-TK{ zPy$N;@ft>^W0>)G*}HA@Rt{NdaB)Vf8TpyTA-|Rqhxm;^ngr>ji^48^{9P33wKi(o ztg)Z-NN&xEZGm=_w*EvH@xJjXuO#{>QfsicRQ=bY`(a)^?u2yPzhHz_94N+wmHM`q z+iGLBt#OG_N7k#i!>aF(yw}_+>X%$?_zPl&sup-u(K0N#w;jptvxl?`HbGH*B4+?N zMitCzHl=CS+EchO1II86j2Y1j_B1HbcH7zD`MP+OI(duE8p3pnVIr+ii&H}Fl2VGs zPHK0!Vqxy#vb`_Q`2QK8zb7yeWqqKu$_GmS9XjhbuJs>S{V$}}mBtoC zFgU+hL61eu5f(9CL3Uwk(hz>FPe}m`=J$oa!riQ~KOm0j0cL-eRC@ zHJ%>$OXtAXY6a060}9tNWks-GJj=IFm^(yPc_%f-ujM0O7vLy#p!2Q z?tukD`koJ;Ur9DGflu}`aqS}H3W(tha!1FHV|4}k`j#{=^wmYw?~LN)A-Rfl1wT{GGAJkLS~xPLD1%1{hxCrMSD@t%$aO`yAaoCI z8+4F@E6E>hhu(0l?nOt&AfaJqWPr=W5UWP{q=%|{o$$VZNsRf6iG~It!hi(jrrD5G z3DbpnA4Bl5Mxrv?tx~aeQ4NISaasFAZ2tWBX_@{}{y$a8RZ12vc|H(%4i*TAPJ zKkw|;u(xOa$k6_|+N!$B*e0mHDc;t6DOb9*HeeOSP=bb$YBb3K3N+{x$y$e3noLk!4gnEMOt%YuEW-OT-Idu$oBb< ztDDGn2Pl7BR{i{mFv}UG4nvEQAhy*8!{g`q04<_MdsF2pvqP7;glWCjG3q8<q-F~h$IM0H!cLnKSJ}#{^57)fB3GE_`Hy>6NfVouESv`^5M{0+ z^yaIfpm?wQbWo^KN1Ean(sK3Y(W!%*)VixnZi(243lG%i8z!C1X6$TEP@}Wvszmbz z+<3N&1;b#~tTBa3xX0fdV$3vVBc_%$!dXh>touCS@ z+xxGJQ=DI>B-5^oJgwW}GA25_W4y9J65P(igUo4JsEEag2V!LpGt^b+zszMYMqqo^ zD5=q|Q!Jk7AfA?g1ykN{=s45?`&RBJR&HG_%4nnV#P+lUrNk{$DLwh#hT#XC-FE;i zV7y$G#Jo~9*<8cHMm#Phh|>|EK24rK7FZIXevPI2)U)WauvTuabn^wC8hpWXklq(`mzkk#>#69%f@Y`4o_2YJ7@kLOPD(&Xd>pLg{Y*7XC zX}G&3_^hi~8vy))$c*7{VR4u2BDpth(7_23jZ|9NR}hAG+y+?0UH+Aj0Oabl8Y7+~ zCSMdgPCazo!LHshgrgnxh6pzB7`_mF%f&5EUC=Juk0&0TViwy2IwOGYT@JK9&{{kw zbDL_#M}v2|Jkb$;9OV(r84!+W2W9upHkn^_8f#uQGRlxbaSWW!cdwy#Uy)Ua}Q&G}nj3BbdHGuY!K_xg+Uv z(JXyYoQYu}G>vJ4Q@7~fAYZe{lPbTu z0~yO++C0Iy9`{YQG(e`d$KPq_vwL+!Dyhs9-Lu!5S@#eF{r!`bM>~#04y?lTE5|b~ zQ6JBR?)xY`@6X3tfY{1Vxv8(Pb3RbuQ*u~tIGzT{2s~?cXi|&rxIru*Ew>6!F3bf= zzg-lxWkwrBS$>g7!n^YY__7}HJYRxU%A&W>K}Oc8?afAMLu+BS%ifu50o+qg8zG;C z(iM#16RCrbN~uBXhr{z-9dVXso}O4ugSMb(dH{~FO|)q^C&PYJ{1hR-w-?2{(P=OQC=tI$uF3{=#tCEMKn_4cl>e{;H8#zYrNQ^_s@E6r-Osxhn(J7C8i*>xY64`<#lj=^>7^{|^OE|-R zT1@!9ZR-uH()EOWH0cYMu^gva)}dyX>MXV@=W6Q`s|8Dc5wgmKz|v~RZ)Ry=>wJTV z*$3hwKaE}0GMCz(OmufUW8hXujD%Dh?<29>(H75le(%gn59!L&boQ^FptH!uu4%2O#3CZU&{;Fz;naZ<@g z#P_bke0F&(;9HxRt(HY|vMS6nj-Nq}M;bVVhLCdQGZOgZ)rM?UB&G4H_9>0~DmaKJ zfN#q7mp$I2dcGRot}wYd!9wfxj`e#+946UVv2##>yEGpUYS0Xo>>ax-OQ3Ag%s_^1+qP}nwr$(CZ96h-X4tlE>qd3I`?{*f8}HWb z5Bmq~v(M6;YtFSjRAq&)M7B;rvLAR)6>m<6N0UbtD9OocU0jeKZmy|xx@@mu9O1*G zK2Rm7sL5-Ra>XuxjMN6t-)|uyOlVi1satArHh?b-FQ@nONP(h{jQXAbhupcj=Beq_ zK%aRfw9`-cG0_Ov1=Jwia(S$^KCpVcQvK+R&B?p^=jWJ7cIWdq?;=navKd|u{pDcg zb6yN3TMi{_7Q6OROfJP(0>x+rQTzz$NH{0(w__ryIf`Y0tJSlX0Buh(d7VAd%N^7% z0UYnbH^2@*9b0&qnV2m*bRT_KpB+f-JlQ78U~0 ztMR*>;;06euxQ~~#$gXTtXce~1){H_ERv&Fy{|Un>rRT9ZvH4%lX7sUelnmFQ+?0V9D?);A3-Vgb7-723vRy?IjJH6Q`QAaWv# zR;D(e#L>l$*+2}8NlSremZvtaTP{@0dKIWpg-0r53jA(%S~BE;9O~3+Ad{^`mDaj* z&RU$T{(aSglcC;z(kfqLQC!e;mi#zb*6k!E(>4ZRVvp2b)I?^m5$|N?F-Dnbc1*pZ zC#qYBLU>(CbK|9jXcU3s ziF1HQ+d_V%p@RFGUm90AZ}xAJwfTz~&93gP)8sjOs8+q((vSkUP5pdEVLEDBAOB6e zQ#5YkXIH`bFY=Nb)QWe~oFT+;Gfuv=M?4@QD7^tkbe7s7(7tK|0o<>x4ANRhOy?%? zE^Akd=$YL=pM+f_4>6Ae6{&Gj0yd)V9VazIb`^+K65=+Dq17E0>P)9H_x9J|FXJnu zh)feP6&$k^zcrV9rX~-gmlZUNWCqNxa{zkp^6x0!Anr%u?lVY3sRvN%^+#q$bMUu0 zf6+zL)zAI}KO+5=qsM8eDzZLo3_b`ru<1fKE!2@>>JLinm0$M*6TZ&rCrVg2843TN zBh*|U@+MhIC%R<`=d9Dz+tF&E+E7Wb(dG03BK~2!G})h486B)9ShzP`vgf=f_%HR- zgVTo-IHGlOr@T~N(f32gpFNOBX?qVu-Mp1VI_KxHYG0o55wUovWQyFL}I#Z z&SY9uS>6rMio8n0PXuhUER8D^nQ@pGK8e8U)Bm956tTlcX8hRFtv|Jp111vXlQj-? zjsi9H*|{Snq4GSo`C5~IVka_klLs7pP8c*`TYC7a-@H%?@e;ViwMw=K5aI!$*|sXp z++e-{g*Nn}lyyK(gaNW5t;h zc_*~egnm9sH!bFhab|3MjfMIJI=$QgT=1W##827F|-!?&`7~EA5QT72R6X+F_wDe9(v9Zkx7qVwc-pj^O5BYskg=oW1F1~J@Z1I zZf+_VHalOqHVmfmqQ{?DEbEcVi277(GCpJw^WOI|6sO{|HPxjM0uCq_PrIm5!=tYt zYL3&K>eZJ1NnZlSW(Zg|u|-DKqxH;jK7a<#fYC`ha~*z@Lh6PgTlo|LgDQdJ+dxq~ zJ-K$N-XUIvp2#M$d_3NTHC&w@6goRV!F8HTW?WiC3Z-!4E?HeQcQ|L!96(yyj_^%D)NRpbG-?1kcFmj7_mg zZMJ=tSAEqYjsj?AveNBn4#3xo-ZBEi$Ud@3Up?dyJLxpwgS=5t@+H%}fx`}Iz1Urv zrP5-U5AnenoQV;+96REF)CdalnqcZab+=!4H|=mBa2CibB6MVJJFr)6Y!@-xUP3Hy za-8xg+eUrLvM12_GDMXgs%opm2Cte^>2 zEg&PPw?Ct0LNs%@ylUPLvIjf06_H6zM{U5ZWPF_182;sAaRIuD1=FXf!>ijn2w%F< z>r}l&J;_w${I%<>F}Zh-=frec4bB4(2gdc%yUccVmB1Tf#+g4Acl@c{Kx>Nj(=o@2 zyY=nFlvbsxW7CL5+5GS2FPavJ3Uv^k)tp~n<_&L%HqgK|E*^E_u3f{f4)9WqMGZqX z?oYzvV1b1T0va*D0)GZ?1UF`Z)l>ZQ*JxcMi`o9Rquhe{*NwwJq*_WE3TwiMpMk*j zMn9o{0)RE7j<|0lXGmL^Ew;iT+GC9 zAxYwP;qfKC)-a0?v0_FK+5dXJ(y;Y1Y4xzg)BOd88**isDa1E4tZF=)1>|0bUjX7_ z6t7HFIT~9#$(U1XB+$o&CT26u$Kzo8hv)P`CG6$ zA$>MU#uZRxHmG2aycZ-%al-mcrcrrsz51f6b1=BasR5Ho>7lgsM4gjE2sjVSk#uMvZ}bMj;|RHKRAU-frvL08^ndS=|CzEAsJJi!CeV8pK#(ld*6##aqEsfyc$kh$p z*cw&=wY2uXY4@#LTA8$- z(WYV-32<<%60IMfkKwrM^|X z!FZB!{F^9&EASdZOo~;e;@r$*TJi}*^z^an8k+h?_C0kT81|wErbV&=5&a5zI(p9o zp7bG8i{Oux9^B0%+wa*s5cT7yJTZr7s4C*Q|FEB5*3$$4ZJ2|>EG)g@gl+?7bB~@; zj1j>;tqSF)oll&^ z@6T6Th?*J`FStQKntAU!Lf{3g0)`;AQU0jIMBkKvBSXt&Tm~^f3TY2!)r2;nm+u(t z3?F07v{!Pxn>1H6hNDB|2*bRE;~#li=}>Q07XM`2O~Ep*^q4f2#(u)$4rf#ndG2}0 z5P8)3R&sfz%<%k)py|XPQh4YpT#W8kY^z2#GC!YRE}qH!8&S&@I7{awdyJ!JdpZi~ znb=Fd7ZYIh6Twl7SPA017+7~nO%m_XoRnvfh??N>llFD-y(n&@0#2jj)ofrBMf1j4 z#OdU6YbOQin7>#C@sVvSKG|ITvbS)BkIsL_xju)#(#$?L=vsTYaKHY|O5v~45q2-2 zVfal=!F@M>g8zfY?>{pqp{$LW_5bUtP$VxU0Z0ey)$pOJQ90I=k949c%BxXSOzPvu@)2PsPvmKPgNzZ<0M!LjVIK&CoQe*QRtdf-)K*d-fEQ` zuf;`ONO&lapDNr?6G|{%^cVGM7c|%0;zmic+suu_?gIjX1f09L#|P~-bp|HHmZn)Z z#-EXOiJADDL)q*3LGqu0cU5*t(9%{K(mpx1^j*L3mRzGGHP8|IfeT|K13S>I4U%gAFwK;J9k6 z{ashfyc}9Z>YtP=1G~4o;g-T1e|NM%>G=akJaSc?ZLAM+%=^xD^YRB!8(cmp7~V?y zA98JDV1(C(tUG1$ZrXBkwKu3St~EJonRr;6n$?nX2BbWJRB{FIob=P!*M>R~66&2a zBQkmdY9l=F{$K+D(2b-;%cCI2Xso=aYS^H8kh;x-N>0679Gn2&nw<)F)WCV(yM(=3 zu@(gN-X@)YmVZO>$Fb_~@*nkG{{JVV%-?%~B4vyJ9Azla1MqOcRpUcY3u3lknEF?FlNhM?mV!}k+1`jo@cly5iy zvXWV_7vfS*vXYv}9<0qCaI+k^R)FLgzLtRO2B!^YK4P7fSQE~}g#f4%TC(>%0UNkG zK#K~vE6$kvsMJ{h^ID^6)1KQ+{hZBc-*)0IPxG2wHH8Z7v%)fd!68T&kxhc7lk4?a zRA+G9ykmJHLr+t5;?RCleW3ao$SZO+bJ3;bXS%wP2vBvGOn?&J8hM|Mj;2A*y2N;{ z)ZZ}A&M5p*IY?=Pl~Z(ZTI0~nowl<|`$4uud6>Ex&&XUf9GK3v^iX1z24U~5NK&Ct zmveBAHWfcv+}Tce*Q^JxngsvUm(;VI#tX#mRw!HBoavahV4fdFbwYz~luvX2xKO}8 zNpMnWWJ6wmbc$_OhAGxA6f{4*#v*drAiP7DfpJbNsJo?Wafjr`$x5)LA`nJ~x4(|n z8V^&8q+-r?(4}ANAZb4P#6_WSf8ZaduzFsZhKQW>8i!qty)@5H9Q&$8apy zZ?vu$qy6AYO?ypt_3Pk{zyIi&zdz+!TzB`&Omqhgot~EIzCfg(xN8CTCL zj4J6G*OB?5(DW-#Lr9C9S9yDAWtNjjzlxx&`WZ6&(1CTNiXoo0GSK;uMI-SF0s2W= zgq7M8jaY{=cE{p@8~8z6Mb2pyXaM@_CEI+m{l&<9TVL;O&M?Tiv< zh^6HhP{SDz(oaJh(3jwfU(o_(e(?EafQ;3@o06s*LsZLsU~c9;2B2eAQHThiW;&Ad z@w#9x4CWXxL$s@*$-p!E(^pMRLLlE(2O56B;h-{|o?q`7s zYZH}jfp6&%j=K=xhRG@EznQ*3guQ$|JySNtEN;!9daYeIr>k*T0D5K6iBk{R!m(Jm zwjvtOOU8?|j#cmel1bd7ypH^HqaQwEg$MV>>eBdWpV%I{haE?(`t^bP%}~G;$X+X* zv*=;iEX~^{nkX%BucEd2WX&B%a4EY%zHK#xGji}qS>wbvs6`r77cZ_Ys6Uuj?KLLf zq3MMvR)+y*>c}M7?!=ILD%8^HD9GlkPh%l#{X&J9oO`^C-P4zX&M*I=t#w;y-!kPb z0szXT3K&)1*MFm8vC9%n3&US3#veL|$9&2QdaHaQ=2Kg((07L}BIhJ&K<*%xeu|qaX77 z&ri~uapN`93aaFw6*iMiw@EjX!{Mp^s~?>6Qk1K@s`YeHMi|J+l<8H+no2M(lIu)% zQv+TI6_9h{=fLYI;X8J7F#W9RPX27~t(d~r(zw}z!H zWohk@Kw=!}X^Z8x+`h$EH)a{fh@mKd^^d#8ICx^Llt}>;h}SIfLo-)TpG}z6+)qQj zj_?>AlDhkIPW%|=0`Oqrw+?(q33q4_FOc%l^?RhrFH|z1s@`!I&nFmXg_1X~x`@_o zvDl(z${Ux5(oMUkn3rK9N*X?mEHr835Y|CUihQ9oP`^}>tisB@egRSw#jx`cP$MCQ zxN8wR`(^!sV3aLvl^LPml68vW{of!#gi3JYg702p@%#BV|DS(oO#aIj+-QOe+MgE| zc$+0Wms#Bns2~c%!h^gZjIo(Q^4TthX)NEB2?Az2FH%;Gc5rM=qHFx<%^eUn6$lg{ z60D(ZpFEj`+rlX}9c*l&E7pZ9kx~JUEhFW`dLsvPZe*VMkXEHiy^*_-EhWr7Tb0<7 z1q;v8pde^WGRyc<@4N|K>frnOg*^d!l^_iK;g`*@L~q?4Sm4h#f*9JsC8o$#%$~oy zME}(h@5u<(R)4?q!}s%l1E%~vXuM)Lp!;aQ!4yD3Pjo_7AVxa@5iov4QPF*%p~~Cd zFrvL5CI#C+Fu`|tfq@6Bg$sT&tPbBfgW%GJPDf2gOq1LzI7h6iS7YjNrdfl#CG(Gw zBdvM${+ZxPNL?k@K1c^ED3WtJxxpF(Tx;0@tD`TnO)Hxl*NWuI9(dTN9FyM{)|8;? zssZia!tOiQ8Dck~sQP11M zBL8OP@KqM2MtHaaE|PUF=P6ZqopVa;b&C4EE@bZR#!a$SdaV z%EzY@BzLFQS8W|(;)Bz;R*n}g0~nnPwtxy4#=(^^crD+JGQHT;S+Jo(SElzjcs4B} z)Rt50#f5r@3|7DUnC)x&lEb_8)Z2oc54L$h-jRK0O`xI34_NUgIm zAvhnLwryv>7JOM`Uo2#2ol-Vdh0R4P@o$br8=B{yStxL_>STw5$el%!INHoJ`zv2a z_USjrH;4oAv!u_6Z$@TgLEF9B%mplwU^>qFB~bUC2dDo$8j|~3a(EMV^CphOQz}n3 zOn+S1AwwaT3Pz>%I2`rkmUnUOpMD>Q`{Fmp;y}W!X#lV}MDHn)O)#m^Oc z(1;O4F=AnrYqmVJuAcb9PONb;*QQqz;^;W8q5X_d5Ax-905favH1Qx?SYN~ zb-Yos1(ZUG zM2fOdq!x}DvGs7{MeO+=U+jEMXm`vwZf{bBCw23Rl|w*Tf2IpkbM*;JNr8< zigGnYU8qMJ5#|ySB-O;nqZr#!V)BT=vONbb5y&1!G6EA%3Yn@D$)LndUA;Nt<=-#{ zf2WFeg$b}feu(U^=l?<3xdJk|{QMgf@K@kR5;XxTev_^1(EkoM{qIq)tnrtK;8PkN zH69W-R1_Amq6k*rV6YuIy!0U+mwdZOor6$-KGpEpFyHj5s&nhA>1h>2=T&z}Uaicc z>9Ne>p$g_=%B+2Ae3URy?_?LxWOAip>UX!-#QVz?O*cU3t_YaSuO3@!-v?K6P~Zg5 z6wqxxLZZ^2qO3hc;6naeT=%Y+&xNQmH$;B`^B6Ri3bTsh%pJ zy8ugVBROi+*$2B4n6LJ*Q`>4?oFqGLU^GCr$VbmFLSQsvu4#FAaI52IbwItTW}UI(87NMBp4{viEKo|L!c1K3854p}rz-~K@r|j!ptNY- zu+pcDYO+aL4Nv2D2c}P}2Vq^F4zeSqjTzpcq$Y?MQliTk(1`ffDKmmu=`7XYLHkGW zsj1QwXp7Pb5>w!aB=~GjPPAly88$^H5+_RbibE_!Ce?$Z8xRsObt{n&C?_9L*rJiq zMtOsjeLIeMIz6}6Dk`8crO?ko(x>6jhm9Nd5*}Y>2VrWNz1b%#OjuvNi=)|ct5}C2 zD&J!|0$0u0i#a9dmBr83YHug)Uz`wKB`bB+?VXa$lAQwBM#To={n9fyfBAhy+{K?QT_9$KsIHLHQrOv>{C zOCl!lS9z|N>O(@S*=6!}O{J+xz_<($5r%O$a@@m1v(fz>$zsPlq~WSD#Nn#a=RvJ1}ZJrtvR~68(G+#MTbyG-|gb zL;E;6`}8ih#kmxi?Vu1B(hJTGttyfxXfBLni!k@hMJUHr5S-4Rr~O_oJ<=1s3?Nri z$?l1Zz7O_LhOgr*qV38WXfe77x)-mbpbfYz5F>iCJL+gp+YhJ$zYj!?rx(Pq}3^ z4Ba+bb&jYk9EhYg9o+(?k8pEV)02#4sdjzX4*y7fj=a29#ZU(sVuLR$7`wx~j{)so z_266)M7fp@kajaeD*H)%q3#~NhWh|XxBAlgdxkd=Lu`R#dc_V3rL&tkJJVop4iiWx)Dw#fwmJI@2!WYw&cn>dsI_M{PJ|F%A zDjP%Kuo&{NcEt6MxYcN3cj)}!M&*P_*rWw=dtDeMK$!U!TN2-XM++P_MEv~^Wmnjk_n%=}Aw2Se6#Y@f# z^&7{AZ>0jZ^QU^b1m{DxNfy9SDzWFbqRyc4+?f4#eqCy@kjvXx5Lnzwy)?MBo~Q&E z%ze3Yhb%K<4egN22@ayAl7*a=!E)Bf0!Ia$lD9g%9CooC$Uf`?B&iInbxoNof0J>tm0BK`D4L! zaV-M$xq0%Vvcx$>dA5jsWBhtBDn!1`Ulyi|$*Z`RKzPw}uKuMg3JEvC+ktkw-=f^QA37vmC7wS+aYnK>)_#h$H<(&~(v?u&cvQZihMW?H8i06|Pd;sb7 z9zhr4i(L{A>0sT^7fF0RkeSL`kK*-F{e8oXQ^p?@0wFONBibf^jljV4kKp@n$m{-eL#5?PuVI(^`QB; zQw)2>TJY$4P#G0)9Z^XiX?wnsL6LFO__|bqWr9)dacXdX zw9{G>r@q{@0Xx$aE`Ump^QI`@`+}Ghe6^%>?*zn#7~kW%(B2b`*_Q(!O*cp^4@F>+ zvs`{0EUk5nxu;Zm;7(oq@nxX$I>RH>2D3TGYw(eJQ&v!!uUS>cu;gZ_>O^VyW{!Oc zaUC+)NrQEZeu62j%~)-Qq@hE)|Jj%U$bK1m(w}^hL;E>`t5Mji>*r$&;rioMn>s!xf4Ec}UTKcFEG^fhRl5vee$@aGIN>a1z&Y zedH;{ci$s&?QIbxo}D6pzsa= z?{s*$Nxvv*nbVOEk-fRlgNusS(&zN3z7y_<$y^!A3U|XxM82QJ{UCZC3_cVr3eSb& zYC@!0Cx6M&yBwC?3A^5*a>u>JZVKfg@OBmn8EO^h}9JC{|v@L=s|Lf+!yX=SlMKskx)OzZAKj zWr8%a%IiFFa`mmS>u9g*XFt~iV=`b(!_OW^V$)dlf@ZGbVW3* zxh*yO>}$okf$9?AI|MSxV?iYzEXaG`(}+w<%Ej)D_>XSLaJUF}IOa3j{Q?!ZUB&$! zM##X}Xxv8@b_gCF@u}nKFChe#%5#HI35pDfCjAuE*zYj#)6VhYhmWIlnH+$c7(YO{n--o-yu@ql@9GqK^#@p5|_bKKC`BoP#NsO56z0%;}Hj`Kaix%-dk zBSh*`1TvFN;<N%h$HBF!Zv`}85dtpkogm(nbD>B8R77R&_ML>@ z$*l)n70FVE5SBk}NI?HQH8pCgn4cu2Dqt>;IUtbt^pj+IX>yzh` ztCQgTi`}UBSkc*T;xfghesbmW`3}Jg&>T2rMB5Q-hcZWhxeWov zu**%c_v?^wd@OWVLQgHWmUO2G5?Dt}lsVpvEZhiq_vt1mcEMb7fi@j!B* z723vfTrEWb$`)v*4Us3wjz@5F{vKgeVnu661@)A}n1OCPWSm$(eFs_a>+&|SK!0S` zAtaSp|L$0jW_UY>`X53GkJ&{g2L%VH8%%VJj>K&sCe&RE%<;yeA{M0AS z>I3-TEYidAf#$vOwjqp5XV3gCO=wI_7_*r zC=0Wn4X_fI7B-A<2&u%sXn?h8S>;MipzsYgeh2Fb;u0B|Rt*`bk{_uyX8NNHEM$km z-NA^*)>L}-+F35`ov=y#o(oP&qc~l^fn38snzX-668Ff``!H$9rwz_1t|}5}qP+*v zE;crTXDCjdqFLMQ(5jtHa>c9BsNPY!K~Md3Y1c!&F-PeT*OtH-JHVs>u5s3v@YOon zqZ>JM?p=84z!Tikgm=(vVTfGF6$JJ=MoCHax4UP6)ZRk^N6g&@c_-y3dq{vNa9leG z^EY{3L3!^v0h~A}LG=dv(S#H3Y_e1gbj z(Iyhk7Ii|Jy+A!m?fk;weDlo3VPo-$>Zn7jOwsH~WofAO#_L)0UbT2TByOH_#;Bf; zcKMQ??_5?#o+md$r9_{#J*gYmYJ1<+=m);Se*&(vcV7|NH zh<&}JLefQcUMl?i9v5(ztM5;o1Yx~U2BGXe7J5cc=)NBxYx zM_1}UjEJ04BrS;0#gt{T-+X|My@rL~vb{o4b#H5XSa3P5IR`%SOxHb7q$iLZubW-5 z4_!P#br&391qs^s(J{^MPvEP_a9UD7VgpnTnCwt8a($grzcq}NMQc>IH|1+4pFB2Oa z{oP+5FDSma-gf#w@W3df8FiCj7BgD{oJg2qt&4VuZJG%!IcCDKs%yuJxT;}yW{;#j z{Y>Dq@0w_`jt5lWyOMD^>;T{3^WpX35y3#D@A0Vdb_T3UJKTDuw8cfmMa8C3F~gA; z49byBY(un1LhNbDEN-@o&8F9Z1Y{&*j1|I-Cyf^jCFzh4O3N^YA-VIiAP(h6b=8^a z!{fjvRpyBjlf{%2Cdh(?V_ZV=%%o$;AhGb26qFmvyat!!pAx`f_+tKyVy(!&EN5HN zBbW#G;)I`;<)%$H+yuH6V$d-3Y7Q|XvLPut!3}j}r?bop4C2OYWZ$*#ROcwBb|bpd zBxy1#3Pljb^oz5TiHrh+IG{d;>Qz$1{!&SFlq9Mgp@VKP3=v^ooDY2B-zHL`GbBit z4QrO7v&ev3*iX!Bz>Lv57$2@ro=i{H`iO3$=%cfAcyti~$6sl>}Duckr`p0vYJoYq14 zSUYVkjXwlPTX&C0nn>%M9fYS|5@L?Q5{QvAW?w3_J*_37&DwR+n`Na_SY&9M>{DyPwh3ksVlu*ozboY>(|@}dIP16 zT)e5WpM!B_7{}1!Uk$S1oeO9=>U(P$vu*e@V;c|&LEt(-G#5k(t;NdE%Rd=p;5oKk zmDj9>;|Ec5jWzs|ExwBspVUZmt2d)Un9A|&r}u2WGBK?|^&72?+>p6{#0W!&1#ym3 zyM*6LU93;wEsncDeAuV>2EoSLSr7USGN5T+(JDljNCC=j>U=I0Izawp{;;m(GGj>L z%xG-7m`r3$eJGJhn*xySc2nbED3^%EErX_J^vT>#d~=mPyj9lIXT5bk zFi))#_5)>uO6k-?<&v`%GKLdnsr*#ssl24Vqz$I^_q|np674;~=MQ*^BMY|;?RO<{ z=YuDCohE>80h`62uYTHf*4kg9_ILWCoq&-l66W6uN14P)^2(kUl`wX*Y z`*?4`x2BIDe#tDco}VnXnLBNxRJ3A0z4@0FTB6PTcy!f}Z#I~@Q~X_Vn>qYptYjDl zw;@cUp6_fAXCB**3x!Z8mBBm{mkj`{E73D60M_-DTI|$qwpHSQho7-usQbIN@Upg7 z!5^Z1rVo!kz*a-vNsd*iav9*Sv$ox_FPA8Q*F#|~Hhgp_!8B=vW{F-y5Mi!LY!&V$ zj++dyOGbQ45}ENFb%Pd{remDy*K?Qq4O_+5w(!TS*!{5T*9Ykz2eA7M4{$$m_6YdT zND5=<_>T5UzQht7t)UD@i^$@OgBYb|>tnf*-UB1v1H;zU_*gd34;)dZQEoI4*U3xX z+>qK(j&UhlrYu`j5+ym^0JtMeTz>v0@IT|+d_l6(PZjwB+oal2W8GnU%)V&W@;#r6 zqoV*B>`Fd|Ib)3d0bEZB;D!(2^ZK_%pubY=9EA8~%XfF_^-bRJe-l{$f7g8f zgS`3AQw4N%|6uR_?hsd`w59MDtjnwx4~rZ&zYWu~D9%KvTi6&HT81hi1(loovx$mw z6dsvHZGA(Leb3+v%;YuK>t^tK9d;nixfsUlJZGAx_`<~{1=z9VLK4URs`V%v=X)b| zC1dOB{YB-6n_>cMbeZ)1jyS-aes?-A-+2z9t<*V#n5KvvCClzJV;Hq$n2|DN4%mYf zUQ*zFtEx58i6ZiBrt0CIYUo~bAOh1It)hk88uNVl;&i%nnHr$fh`9qxglC{Qaa2Ej{a}|qI2`*kb zTD53wgt1hCmYR+EUDZ&V@rKe8l$0SuMY)_Dl~$%#(YfU*kUFW#gz)AHqsD{OQJ5K5 z{T)ZMftfi$O~y-BaNM^iON@a51(du5f$Llc{==tNwdDOyG&LBMi1b>W^jhFfFo4pZBd>G?}O&@ za{Y~fDOzfDAz=n?^89J8i~MVPT5t^bMJ>P;DLg8xy`3}rJ|#h;am8ny702pQ zoakImXn`=}q}!XU-&$t{v63rk6u`Sf&0;jl^}6A_^t>c0*dwDEJUgQAj1uAC90bYm z4~I8E-o2(b_F@NG?7U)1LgppbK^kiCj1&smLk&F&+G86!vD!n8Joef}-;djJcHF_~ zs!P&}VRnI~>C|xMplG+>I^;TZStIZ+;kkR*cxHf}LPHbY@IsLts;1hry*8_^$O`WQ z$3F29258}&s%~57WgkfdSC1)=@~sF5ci5yq{j1+<@~#t23pj>#Fhu@<-tpaX27m0Y;J)BA!VRjtQ#wR$DTGRon7LhhAljRy@e;GoVwL3`9i!oa zlDDPk=*N~T=^))Hj>b8PV3Zx$7@ZvGbVtD+a1TKUf@tysBpeSJ>1W{YsE8ggcJEZo zBijNl*+#gy$U5Gjgq|~2jMgDxS^j~vz;v>x0%B4^Rhv)j;XG>}vD_e~+a(oCy3vz8 zik7)Gyrj*--XYVs+B;^r-{rk1h;e_wE>dl!_J(8#!bJfB;#}hK!Z^Wf^mo z7Yok`)|?YuueD~tA;CBOihji@&`mNYTU{kJLQtmEdn2KFU$qaYeA~4UYvNQ&vW0ay z3e*aaJhGuB{-nwmG| z!pWToAhiQTd)J;N=GKQ;7!A*5X+01f`-;9QEo-jb{yoI5z9r9R;lAH?p2H~JGCLrp z@a6F4kOoXk%}jG@OpU}J`l+O9&H`l`6G2`=l$*w=tpyov4k>!%ICVT4dZAPrPEmMT zvr<*(%oXXK1)AP^AO!q6)41+7)vBsv!HM zFAV!QKIz~a8_QNdJFz)t15Ue?9R}i(pBxLgVYzM5E?Prv6%wbMHEdGHysBu^aNaYI zl;OD?-j{#sC~Hu)#VV~eTbADhy;soG8K;4yUzj>;+^oA;ZJcQ3Iyd&%UJO76?>8T; zGFeF-L8X8(&2pkl*nS{35$yq-dZxzZj=K8)%F*2K&yHlV)eeqkLwl1oElfu}mMl+`mT)2+U>FxW9&wFEfgD8Wz=n*d zxzjG6)vRLcygc&~eGo;7$Fh`h=PpZb?z5RCOfs4WY=e`ND6zH`>+L$3@T=qB zAu6Qah3qD{k>JI-aX#XzKlcEq-;)W+rF0F$rQ#+WotAmV6%_py==Mr7M&b#-4h(mk zT9)^7V3*=@$4m3BZ%P3crx{-t4Vq&sh%=B{7(~bm5#Ja<|JTx>pSA4x2w*hb`}%Mj zhFcE|pw!c`x@)E;9wj+e+T|2~o4sFk<}^})L_1Oy1%vBQ6Q~v)`^!bCrW4&H?`nO( z%GUFi=AbRf$O2U!85V4NDypO^8zChY=vylMi9vE;tzh0Wi+wlWDa{MjKpmER5~w0k zX(soBBBdO)*Lv`XPjhP4eUOx$o=M2eRFy7fJDxT3w(-fR>P<_U(CRmX5IswI;z*fwx` z6h&c3EY&@)yZw1%*qqp!;i}`Rak^R7Njx=!;i_atVI3J>RDxQ(vlarHP50wE#1H=bwJ3y^!y&N_Rk6;LmKP*z z@1zVJhux(O+g&4Xx1bCfyE_bN&lRWz%ugw6?}&^V)|)l!O4^X_KNCxt&uthFu4z@C z{XtuH2B2GxJ1!J;a9g{FPvzHd&wwPK(@{{aNjje+VLZ-r<2fzYCDQL{2tJp6IxTf* zHEq`^((g)0>NiW&?@Tij;c~d&#&Gu#p1Kba5x!GYv>+qU)5Kh)cfajOMm9ZPn!A|}Dl;TSXoWqc zN+r6uOoiis7aNSHY%k`0oIb|02;MI*aQ}n5(QKKwneDF@uhQhGF0(cZ6-0V_D7wg$ zClqO^J_b6U3O9ltW@w5_Kk=hv?zJ(Q8J@F~I4+#HfvzeA+dX*KK{Up=WTe)Yl}Ps6 zb|gydGz5)TelHD<0G^9PHlw74Cyq|kVbIlC-@liv#Dnw^aj%gMJuE~)z>G`UbR?TZ zf0{Yc1S)C?v=Om|u8aswjd;G3G!aZjibUB=~s?StdaHM~U^Oz!#Z!;!CTO31h*O zB%q(tXAubBA9ndTvUD0A8*E^gt02+~SAS^G&Vf6|`IPBtakP4Ro9EnWk|xpcj#B(R z0poNn#FnCg)sDD=J(H$VJ@?o|wH+;X3HH4g_TPzp3g#=|{<9j6ff?^h9Q}}i&h~Py zLY`&*P@juu4Zb0jhtV8%kv?q1x)zh8LToY}wps#lc>v&gOYY&Sg(FS)=z0d{GB@S= zKFPH*P$G4{zKd@uCb-NB2sGL=s+f)Zv*bC^g$!dx=r&@9`a{#jeRPY8xulutljsEQ z%vcMBhHm~KK#SBALXpX^rDFxPv{~Dsc?__8xT`fDpdyA-+!T#NW)t9yG~Ks_tK}+DmGV-y(s9bR7C5;k<`#4nq<(tEm4-UByMlFr)2k^aCfnTI$y3|rN#+RRn zQnf3rR?l_k$syOrq?8A>SPOP1a_j5_l?HfsDeN(v2;U#&< z*#_n_(uhwY$vgCmc!$s8t#hO;5W*lj%AsM(^RZ#r2g#Kxku89jQHrK>tsyPsxU$99 z3kJ_U^&N3k2GwV3QCB@bl?T~pNNs!g1vXvwJ+|tOxiV_a!y*Wi(nSZr%qlmy!MiZB zfZD!NcCkjKWzNh9V5)oE(i*zJxGpprk1amwZkXPR>(TmIs$cNC60^-^j1t6hfX7S5 z7{BBKbhA&L9qiiOQj}1V#mZHudKY{wLy}j`AB~6!_65XQI>lca%gkmic2(2*XR@S4 zsMAUMVKFlE#gMq`#iZ+O}=mwr$(CZQHhO+qP}{=DJ5~ z-=}@t3MN*;a5AQFAw>(==8`^Y zHN^>f)Zg9#^0yeUnI_1XWq(7Zu-3_b?JZ{UZ{}~3aS>Y;nsXx$*wB>@ z;)~+x@sEeg&F5UjM{JoV-8K*^v4r^0sYxKN4>&1az-UU<$|JT9SSen>I@~WHX_J?& z5I@y-C$H3sPvE;N+NQJQgsr=lt7$urQq(*O)ot!SV1=R$)P|d%-OKMD@O;-Gh2FXZ zGQ~#{&65L4=F`WX9%2-o4Q4B6J)AU@%c_Fk6l!Uk1#whQ78O0H=<#`trf927e(gaw zE){B9RRt)1-4yegpVp1EJ18hsrShusvB=%Y9#fx|+lPg*>k<31iw!=zsoD_m4$aMu z3M9m*30GcIsv_9YqL12n*0%NBofxQfr|0twEgz&$AS!lj=_?5*{3Nm3=TC#ZXa6-+ zh_$XhXAw1E3o@%1B+V%LLI)sO5xBMWWJM0>HDU!sMY~@c#tsxF#Vi!2$t6+o z-fRoORqR?SjW~mJnpf#v>dW|Vft+a!1@+XIKrm?u9nz~Xhld%@utYx^ve1G%0-z6> zw5L}cO1O=(?|`~_p3VL7nuv6+>H~Cy@ z0b1n$W`fT4L#~bW0c6@l=0=&%wvn@c}WyrrF zaO>%VH)OkR>Az{|I~n`}SeO;q7oj zE6ubsf@eM41k)m0m}iHMLyl_14%`IYJe&U=d4`rIT+t5CKuTpRX8uYiy%lH>^}|zP z?@!5~xe1H_XkNqvI}9A+3SkBd2?q)SV~hO49)oA_;DDJ#IOE*oFIE^n_$@)y>DjDW z&FtD|(;&cmEAwo!lU9Iq(+}N_VX*!dK>+m$nvqPp&Z?xGLn+Qi2lcYmycLk@72iia zW34&sT3HLyS^#eUXSGvqGu0~auD;$2jC-rh{>o)QUc9Kh2?XI?82%EZeic%oJB!8D zrn4I^wr`J~t!QBiaNJiYy=-IIr-aHnzdwVTuEymXTv$Z(v>m8^$wV$7 zz2j6s*Rp%|LHG7AI-o95dM?k&0nfN%9q4`J)IrYxe$OPm?>N2hGj%t4a8vp(uW&bG z;k%x71Rc=(_{>4dvJlo;JDkEdS;Q{d8c110yB-MG~Dy334R=1%i3SO7(JogAHb zBAuRqzU3?2@BP)L$CvH;Io0?40LwPbkhR&AWWq2yCzi|G0u9&l<= z5{O(7v6V>CYk5t1i|bI|6De6Le$Q4n>_&>QPm$rCh#}935z~z+ZIo|>1t(m(bnD%X zIE9V=RoX|U72h%rVb1EI77cPA2un+*>XqK756Fo}xe(psF4U3tN_AS3fM-*)GsG4w zIipiVw`XAyZyc;IX@^kGiOA#qJgeimA#*#j4Ov<4H5^6>W#5uW9Hrm@0%xHS5|pfd zKwSy!v`bz&hEj-~_Ou}jmaW9#?SvEZxBH`(2;e~Czf!mn+BqhBAs;kT4zaGh#HII1 ze3EpiaZ+!eJFO?-JH1Of?jKBA%nHN?YJ6$PAX4D}P&c=}ymiGX@q84kx0S_j6+2(2<2n>Y zDI1w^eUt-N_VpS0yZk6nS~dmU5EPjr9^X)zwub`mT_FU5O$M)GounjO7jmZ7*DeT3 z@^|7GOQ8aSIU*#b7{+=+{fQh=t-R=t(_zLXA7Nv5F_}v49s%-()q1Lx7zllf@&%g3 z6xlh*3UKP*dzLX{lMpYDvawE2-nQS@4m}c~D9Ggtt`#`JCoL{-tC>1enLrL$V4Jg} znW$qi5NU}NYYF!&`5Tgtr|LE`tsz*4SZuh~jr0XsN}7p2?i9`{=RSu~ec#}9A;e~} zmhqq!zPi);Dms{$pBhBRaC(TA7zx27xLbj0hq?=-*M$Kt1kqV(7bT3l;B|JB#l^1c z4=kLjU8@{g81ZDo`z6HVZ=yboytY_8#ng^o zW$7yINuPArYUdPZ%zIt`zl&-|RXv&%kCCg1&ga%?4*TP&ulH?jZy=JrNMB(hlp+a; z-CAE$clHXeuepBTp+T=qr$9mbNieI@c!zyLDN49RB zf%{`#gL)D_FHEITtNUPK(B(^pT@~?hdyD&63JzlUbNEi3Xot;NxT~-(K@9Rp0Z*;&CBd*84!bf52!>hY zu#T0hZ%w9QRaiTQ#nV=U|L^qbo7iI%>rJS8E|u^D~CSk+Z4AYMj6;3jHEg(e68TV|p40 z!n4|sno0|=Kf1xR1*_i*ulvF>#Ka|}N;E}GbmZcmjBBB?P1S%1C z2)kM|a+ea2wPY~#_p6R5p7>h#lc_9LNKXy_KyjwwWJI{(h*ZkeFnU&$MjnG5AxzK<7`F^&V(?qL zS!CkgEmWmId%+{Qz$v2{>D;{@J zZdsYLuSd~5whdWY7HiETfjM>Jys*nl&~J!;BYwAOr6X=MkTpV+A1O&Po8%=R!+VA6 zmXX5+weX@0YtTN16{LzIZ=YN{unwQ6VX?=!M5Xf~3nj`kC~azaqxsj(?l2}lILsoY zucd?C+L)K`nv}mTOLy@04U#p@mZT^3$Cv?udl3Vm1UliwFm^v!4AV4YSgA8GEo9Zo zsE|2A2?k!1wywkRms;9uk=+$IUpEG;dz)PBK=6Ht*%&K_bXIw5EoBRdnlWccdH43{ zxknZT&3E?t*wAD|^J+Gt_t6-)a{T(d9O%Nmg^1TQFvRd@Aq=mF=zlko!uUyojA5Nn zy?-K&!V`;gj-{g{$V9386YH7;)Igw?*AsA@tc*X%#?|>>h2i92fM=UdoWP<}P2ckJo7l6r-K6#mz>l z03~}4;8qGUKu=j?2hS<_;FaeD9aO4t3awG(d;=y#FxLMA+ndq8%XoCP3rJWoAwutq z;l-|_>dy(jLp8X>n1cV)4?K5b>sj>7gtvW;ghxOygRf8cKiW?|y&>SoS zTE`*Q%j%CG&?@Aqys5UPDF_Z>f`ad!<$J*k67|{aYYNB0KZgZ}Cp^xLH=rMv@GT9r z-*Sc4!s|HAlXW1jkQex6w-lf8fns5{AnCsv1u6O40W|D3K-zh{n0)3*TtRNG(WXO! z)h;h|!D=WFYRI4`gEVaL|;$6w*2rlR2VJ#6?#DZzXWNu9cwL(6!QG$5I0})7jva zGu4wj!rAb{_vBN?h#PEwShu5irtRQ}b6jyH)o#OrZXY3titt{_&Iyk(Upk5uCCL)8 zB9Hkn^;9s>zqCPK#ErE$Zqijes$E5jDw%Vc4t%s>Uu`rjxjCMAqK;bnGvw6O$}4wI z)iBU=ZQ8C^Drxf2VCsjQt}X@j2W~$wPBPPGm0ojtjHKiq%<@!YYpO*l)+hQn-1S;8 zP_yNP-CQrs|u{Fbv5pv=~Y^iN}|ByCcMA^3HI-41wBGS0ZJzlN9v=#v zx|GP5Vywfomh6UVj1CX_=0kYC6y`W|hYA}Fj(F6LwU+u_&|$8Dy^=OoJ1|5Cjv89Z zkOVY2F)j(|1Yy_cEFlGbTfy3RK+`*`G+uf;KoU1z+$A{(Z{OM+@@_~X;33eE9|+v^ zH=3a*tPp4~tX{f1$uA>4F%;Fi${=2m+axv2O-YV!kP-XMVC~EILj6j13vDJ!7mXSy zFDTh07OmY(1Lxx)T!_`#yKTPcEm%X>14qXoUeW0wUpP8nA>6d4kYPPN$aY`G9(Xm~ z2Jr3;=~Xuu{RlzGEll%TnNzVVMd>^wOjP|(Lz9BJ^2s+P@l`L39ra&fnd7ZfaSlw| z3asBv-ia=OY?XFv6sivFrPj}1Ldo5;k-9;=bz!Q}vyHZ1LqEVG zP?MF{I^N^;w?wQ0n}_qpwxG*$!Ea>x(^`;WxIgd7hIFs6OXK)%77`MFAS;(;N(@v# zyt(UFEf$C7UBa;GKR@)$coopFjb%^uG13dfPh%qmqWRq{jE`9Y`aQhE%V`5# z03C+julXh`^Gp#Zn;TzXyYSy`Oi@;X^D``;18+H^0NjYA5}8~(jPAtKAZ#(hh?QW& zp0|0$Kd97>n=DiXU!c}nOp5bIFdZJ0bvO8q4>UQLm}|m@zirc*p7gliOjd#u1k`@ZcT^5U0^5uaC%r3`bq1p_X*dOP=>}C2bM`G z@BDAO^D4tAnP=g(2bJ*BVGKZdk*vG?OEQK*-P92^>FeexeGcvI&pmyh?VtZXN8cWh z*xzw<6G!Vq`$EF>*azVFJkMA*fT)CELi~c(`<*J_jpr#P;s1s8~mz^`323w^$i5AfNLxY}(%&!V=OK zH5;F|Y7@R;(?Maj$!gu$YrLkYlc^IaNwo%I*+KYcmEl}M zjnN3Prr2jRwV@x3Zzo;8uk9<0$H&#r*(;r4)&*(WCy3vQ9IwDn591BZVVsS(rQN#L z^hR6ea?M}w*10i%v!4c^O^*%`I|H{E!yHk3KgqgW!P({boVsH=x!No9)rJu1sP+}< z&W7FNT0y=E`VWf#&~IcD*3(Z6x(cyH*SkcPgL`yGF~5lKOP*;L6ashjFDe?`a8Y;! zR2-RyTwL=(#Ip!Ob2iwgNsx`bp~@#Dt*TD$HlkI7$(v)GP2n1wagtWL>C3XyeDw3& zYUG&2xq;TJrjkOimjHfL7yK8m+4Fsa_alk+El+Bp%3=;-Xjc z{HM$ zp#4SR+YD#`hZWzvcYHr7Rl=kDP71nfOX zQ;Y2^i|wwfb8D%t_H3{gCtjCk;R-R!_;Vk?pc=`o+9kFiTbZ+gUU#4$n%C@~ei5{D zfCNvOuko)(s~WlCB16N<>6O7euA|l9ChOcPSZNqYG7i*i)5ZqBKG*Kr{WcsY&f4C2 z--sp3sUC{RQXxTT(r38HVvsq#M|2BRAc3r-pR<u?*+{s^7tnQmCetg%UX2`3W{X_tiN8 zQGYofg(MN0Cf3v61LQjQgSFr|zj!ghr7$2PA4o%t#52sU?wOrrdMptL0fdB$0y^hP z>(fV+wG>OI?k$u(926~CwAuWDN|{8fFuzLBbBxy9#gEk^+VzYGXq>_}(ZRpI zCIYIBMkh|N?t!3XQ=-t zzzOw7xAxz#J^8IIZFKejGm1NI(rTXPr=lh0)**d^h<=k4a)Xz}{otc2cs3QvLJ)X? z6?M#;J9~6t_4a z=5nF?&18TtIgZ*TN3;bn+eZZga2>AZ&YIaIX?80ktH!-uM@D4BYHj`HJDED}w9PQI z>U^h2mnOLuD}KvGNmal!dxrm79X_tJfW*a%Z4==y5L|h$#^!UW9q~3uXk7lu2>4)M z8G_3uZ%yKX^K(o!ekZy8<>zD!@iwIhs<>2k&a|>QKv|^*k8IX*Ndj=C6NuVZ=B|Wn zh{dyVRS_+l7FapT>ReM9Y6%9;DN)w0V%V&Me!pU@pI}^z9p#zgbv_?W+mD7Z7~{VSWs_POY)N z>UA}Lo7rsB(V;e`618hu{0B2BuJmk~!`(AhF8i>U>t-*D+@irdr5;*$2Rk*s3B%u2 zE*$qEHl_>zsBnzvVW+!4o8MsT=x}*hj z^xJ1U?y(|gIp}i+4DC`xYhTi9d*RYW>7iB|EM7smloW(0o!WLm-m#R5TbF z3D~sedJkG>3mZzWvOrnT1stAUYEhlJEkSC(z{u3RARkr~h==PL)U#?B)GM=KeUzgs zxS8u;q>Ikh_hpE=yILEAWD0JrQQ{c1_-hjVWTk~LK%H2BTK77=jZMk4R`9H>27&-h zreAzPCFI;FU(*^|)`$pe*7ucGa+!IG7-dtfZDT>?w+8JzyRYalVnUB95S+j(D$JQJ z>hVX5v1ukPWzLyede6r9x?as`t?(ghG=)U)I3}>Egw1;?(As=k3k<>hEos{>NxNZ{N3L)J%_(ZDa~JU>yjSpMoaCLLT5Lb2-v7R_gC01hDr zfaG7p-%F<@W$mr(XqdPviQetNkUFw^AUKK{OAa#6nR@2yXUVY#g2Y_cd)X2d1vFV% zrd#RcaEG7IP$7=EU>>o>G?!X<-j>%!QIaWJ^y94e@;%e<>WS8qx+E);H!@*=oKE#X zp<@N)UmqvHcYiR!BV_HDp`a?9z_>UwLL!~v~~W*!X*PAG&U8m{P59HaZ@DAb>SDc*JQ{W z&eN?cc5;&Y7~mF0464N)P45+j;GJH@$(LG{i;~tnty|lo!ia607 ztBy1)Eie;`hCe0Oq4m@~#1A(O6I1PIEVN2o8&4o&tj${(u#(Hhf2U7@7g}99WPo4UQ+&4d>7Xcwr>h6+b~yf%yD0M3}0KZ!+~ zNp;O9@_;#+g%}D=R6`=4CGXd&UCh)|Vtn*|@EZABOuEfDWn|?qZ7B%PI@%S#sivHI zLY*KA+6c)ch!g9vS_t>9)DcCZiam1bG8D6CC@Ft5pI{_L-!hewu)s1E0CJ_Cu+T9V z<7K`j^c_n7724}}p%6oGd?T+bmJaJpf?iCVx(S|G^)=Uh}RI1O3A zDjY;B%-+GMzsuOVQK+~;ng)QAg{~O(NP~l-6cT|ae&G^y0=2X=ej{}_brT^gH_a0P zl!W~kalsJJdjVk#MbpHdym8N1;|;@fm$>u1tZVc*s>tcI1iXlfFiO}#1$>%(Zu79Y zZ}5gbXrXUSpmQRQQQMXS^TD~LD9N%|RMKM!>wPxrC|2|sO&+19s)6!v3OrZrSI!M< zcHzj)YoZDTs<-7KcU4kg1wDYIH9TMyJYWY>On|EfeU$l?gI9=eW6*r}P*~YU{NFJa zA0(tDeBjkHedGxwLNeR5vPm*B99-OtB@E&9fj{^rIH9h!lkXrg!_9r zJkfflW%%oD99*zSQY3*aP}~<;6SS^HjdM0_SL&e2dsuep=f~WUWk}{38 zBKQY~jiA&PPEu^gq@#Q` z3M>J{CtWZsv9W%I@#4~k^+*nhLeA;c#{1`9pNlzGQpw3He1ymR;1Mcrfrtw&OSMgp z1SM?z@@VYBMToBm+6p5Mag+umJ?=xR3y1XxSV8sy^+S9&S*Nhh98wi|ih>vBx zBf1N2U0t26>^uR-lSGS zvm0qmn5U3^p@kJKnU`v+r9zp3VVG=bQsS+Upl#UsnnBHc~iRMj|E?~RpgSS*v0!7pa$#GV5 zdb&wA`W)X&z8UU@>t_}xl}MR|SdBLX<~L>9S7(64RPYp2Tw)gF^>$8Gt<2OR3&isbVP98tUT>7ykn7U3AKGb>0~%(EhKIc zm40p+m6mth7iOJk;y5-s=Ptl^P|7WDO~OF@Y4;>!*4_H*dGm17`8xgk<9Vt0*WOEVh;R(_ zZe9r6LHZ3%lAs#`p9(CjKo+s~@i4Q>O*+RL5_i`A@I9^vd%$&wNk2G;ckC@S<6b)+ z)vi0P2X_EA!(K2R+bzD=w>~WOJ~77|X|xwoA32As;((_MWx%rQT~Ns1t%KR=)JsZO z>wQeDPe0sird`gDI@s&`17$o(uSxRm-P1o1ZFm@{6YBx>LJP8@(#74pY)3VgB8}~D`KErN1Td8!U2rQ0iH9v#@c{`K z<0sSm?dBFD5dofwr^b;F{Rj_rjD+Fwu~7ROPF&}~-E#0uHpm4^c4Qgz(}sU92)j@H z{hRS~hwy0%NRu79I|Uw0iA82m10{YasK|_kOgx^_>(P+22Yf4QW3n6zo)aT#-qX5K~W; zt3xxTr)WoqG$z`)rHuW{qOdvj*dQ(%N0&${C{+twoTtP_Gp5BhSC9Khs+embMOE5x zKEG53ls`~pa#fz9(X=CjTWTPwI2~ib3HsOM`5cKxt!a2nAHB^n|7;<`=Ms?>n8Ca) zLu}>P{*qykk+mL$yL7a5BgG2p{8eJiyam3iKFI8?&zRbBP415nZm#_qWaztIMMXbX zp?XB9_=;+3bi(@7ZK=k1^y&!+yPEtEjg5})k%BtWUD}bAlsrbY5B??n5Fg+>@I{oNj%y@{A+{atRORQ$%*8G&L&Z$xt79&XtVBvV0k|$Wj^aM za5L=U2qvci_3Yw|;2J24moffoGt}I+*p;lkJR%r1Bhp#G`e=ukHIQt%0dp(iI;R_a zUF<%CO9kIy8E$TtN_EeI4`T6SN324SqLrQH;nCu>3aGG+0#CzIXY36N*K|%iAl4=y zqwz^i00SKdS}aXuK3rW3&aU_i-Qz17S*_1jB*S}w>NK`0@TnIRC1oSuN((~>}tBYqyjfrFAflrY_xoxxHQ&DcIKr=_)SLvirtyNX}fJ?@8U zpSF!)pK|QMtYTa7qMdSaqAqRM*F0;xtJsi}Y%wIuJLJCnAz+hK_ zrp<&K)@QGJc;&EddGlu!71fO7Y%IAbe z^OUQS;`S*D)Hgb9#7cD0bZW-m0aK?S>^+P_K>42d(;4|^05+yo1i~BcWk@7_YmS4; z1=l1rR-0A1;uu=Zn#;eolv>_%z*$uIN2@(#JxuA5*UAuW#*?SSzp?3;(%wIkAVU?* z9T#XysUi&QiZXV&7G$N$;oGW6=@xT(CKgU{*UASpuQQA|bx%|WX+kZ$6F)GuS*i&n zzqaJ44h$)e#|@4dna6^5eFq+5HmAowpp|y2eYowNlh)P4I3E_@{(6T0!LgGpmc@J~ zJkLIhev~c@{%YpmffAl3Hgy7gWB^>#C;VHhxGefm z&k%0`k@XXYL%$6ge9a=dJnK!eq^`}!pDNUlgv}QNVHhT*K9Rcvn@+A`KzxcBKN%;d zgcbEzg(s2}C}t9INs%{dy~Rs+3d1%c_yckzNoK#Wxi^XNlMlu<&vb-j50aiE%TLqy zBn+wD0;6S#0?9)NZKx<%Rh+vZGaZ^|5fmxHwmk{XXlbYzY)RI*6+Sk-+e;v3qoi^T z7aW~^1?)PJ$s!hG%1v*oVnsTqopF(Ci6pwvzCzX6DtTVt_2 z4mcM>Pm9TMTw1?8yBtCpU3DW~T3nZn-w5is-?hW4l}Tky zochLi?n!KkpS=rQz5#lGb}q)&7L@=llN0ji;~;s7l#8h~nNF~`86U2B0|0HsfqQp6 z%kL-MYm&7Y2Mga+3F#pb;eDW+FGZP?2v{@T&x*5vJgc42F)7Q^U}Vc%KCvy-les3@ z*s%Tr!o}aiEq=)Q2l#Z9ChWWqmhf&l_QzU>d-@~c8t%}Y!K)jOaMKlYtlymS5G^mG zaW@O^r283P`+%!tMeKxqWEa)hscxKT^_D3u_PFcU^ITJi2>G?JF~pSTf5r5Bu%4?s2D2=K2S8$Q3U%gK52~S`E9+K{lN;J)Z0^)n>oOuD1R~ zkw6!co5G7B2!Bq*gtBM$L4u-^iA#GRCGyUfKOMYb*RtN2HkNGFJQl+dU!`yiQEOKy z*pRlIyP(0}w#SCi5a>O<9!2ENRRhYF zA@r-i_uG_27J0BV7a|Rm02UISG!iA2<1H3-(`G?Mc4`Vd!WeTZPSUK#Pql8f`uBvc zRZhbu+Qv?LMh~9u!^0YVP2MHhT?3K{azC1#Lpxw4&l&uGj@1od z(KIT5;!=Qqo-Esc5u5VA@TdQJs{fOnlo%li_LKY{xc#E6uGwOL-q*-`3yAl(3W1Y1 z!rxL7T|~~i>ZlLMg@pEOF45YB2D{%Q`uGxxCkGujECwd7vb17PuqbsV`!b_h?$xpI zG3YSsk|dc}G^BZX?tg=m{{9P`6l;k415OG=>dxCu`Nij~nq+aT#x@)^<9;5PbjVxb z#7Zum@^L+clVbi-gazV@X5z&HCE1rb1E&7|FBR24M_ae0E>HG{|0)9g>le%auOH!m z9O^=4b9;1SL@y;R@w&QO%4RkyQ~SZB%@WZKhDdo6GxkVzRjQ`66-dI0!^lFHLd5b! z{a`+Euukn9$_7($brSzSXhA&#O!D-F^b-v9H;LapH?iD4u2b#is*V{!0o2Ey)9$Rt zuG#jgr`F%E2lBr_Jz)B=GD3Cmf?(<#S0Xb)>hXy55t>3gFq!gj=!K^c4WBaqZlEmX z6NC|u8^X%l-DgY`;itrQ-qUJ*RZV0e+;Y}Fexf+-mHy3&%0=XcvE?10mu(Qd=|{O5 zh#nZIhvgu4&Whd%{QEQ5AcUOJc|ZnBTGvl6j8mMGS!Xsxd9++118;xLy=1zo3* zAPC}QR!)KWZAUYC-Vx6z4ph)ZoL)byS)OANyI``FTIZH&{{@IjM`xJ)u2rr0PzMKa z#jQkuOsAXk*Nub6K0wPlD^>HXi9<@lb`ol0QSHm+<(sxld}t=g{KugXCZ*!#B~F6~ zJ82GESg+QCj76T!ihtX7nZ^%YhKXgFH<*vLJT#U?ctOw0L_J@9*S1}+F>ilx!-geA zyZ=GLm;@eRHa(LOttR(6PRfy$PstoVNy{3%Xhztn*Dtj?sWNOASE^oBXi$wqXTz;R zo5?I6Wp``{^t>12`!0ZiWD7?M#E-&s1I7j!5%NZcMRx;Pz+j=dYhI#pW9M3K&DIYw z#tKY3Tt7T(y~Fsi(j$G-=4*vPdjk?zu%nc3i9=~~HJlC-1sWGTI4Es9)-!zrlV9fq zaX6$7vNa?KbnSE4a6SIZ19xFO77_j$%>}xezNEYp<%M-?x#s&Q+Y#soO0z48@XZcx%>qaj~8YOqt0WoM7D%f3IN%s9`cuEbmy8UyFuqh%>USrdfEM2xKLpM6Z zyybcb)15M*%y3!i^%1?PvM->aK+iwMFM~L({T9Vz#ZbQ)gea<=MF5qjA9I(~WG>R)3hcFt50bWkNkgqI0Hgg( zBAo2~TAAw$^wb7pats@M0ES_@7z)ZZwv2L2L%i7?wU77~gn0U@pNDhZ zNVQ%L0FU0PyN2X_3EKh)(mFt0fs`zfm@iD5#!EXyVoxB7e;NBUKy1i<&9tHQP{Y9g zsu%y(vR#=_1~fJ?^Mk7YZPPR+Yd$y|)bk^(aorgyB%;75!+X1846%a$RnV%76-jJd zJ2gD-VCTqo@EX6En~ZnAVn~%#p2CHI13EfPc=K(x!!7DRiCmk^?}CL+r3Y`^*tH~( zovpiX*jVQyNnYmNz{OI8)avc3h$JCDl>>S#`WP>Iae)J*ek8NZThxc0r}eOYG(#5-Sy$j4;#jxPQy8^Kl4ac3&4WN4H=mpm zPaR*VtkPSpIC!SxlNa^)fl{v!w`V}8qzRzB+rkxmgm|QXc7=ZMJz0hvNbbrhS4#t@ zvVyCiWCHcB77ung$Gy*}U2|o;tp0Gv)IQ0+66IXpaZ%!eYKTitt;XpZuW{2*z*M6# zP}=S>b#=I6r(!+JE$j|1Z*u;=vSo|tNa<#Wq|R2|ry_7pvOaqWlv($UXr$h`5$WMm zLy)zSrrCx^xc$nSmwCV9lnRnJ={&(#t;ad&@rNt#iM(rPdE#63OZ**@X}7r|GW*?<`B(7bkaqb2tl2=hED!>WwO<7Bt;CWPV^b5%j0Qz9&`hhpPC$#>tC zk$(6m@_+U!Y79~mmp|R-*^hPMzm78c_wv6{Y11`;86S6(rP zr&qI9M2g0zCQ8b(KW=0%*-WrHW#m8DEoR(+>M*n$`sbTu*xs6HJgowOZGU|7C&%sH z^XGGE_4W4t`~x*~Dbd5q&g^B~P%?eh;FT4Ga2_}U2R0{5*gX>0^(3r#WI3wAO^WlI zWQijIe@^<*d;J5#?O!djd}8l7w?Zv4XP-u)QnD;AWWJm_^X+=Q?#JtYz$`a!HHYAU z4_UW~sA|>rkThCsU~g-;epY|Kif+0uD8_!&2u8=;tb5FtQup34wPr=SW?G-dy6JDy zwJT29)DKC#ASz}nS4v)f%LH+DiWExcI4)~4ZFq(lhI5}rwSTU}>c0zhNLMgCjMZ-y z;5Uu3Y=^V^5Q7+l&YzlK(b9!rmUhGray$AyncX{=5#%AXP$@QK#|9+&n2k_TjHl7i zikDX(Q-F>r4%%XBqwKt5Q)*V60MS^F1hQ(=`=yzWZ_EZO1+-&HMKwT!jY9>U>44>U z$&V%#-R>^bK5gh5U%@9v#f^tBX~MLuX~+CVC8!M^3N;u17gZ0Cs)?L}h9ol^)90$&*MtzxWTX3@43K0v0oHqd13N` z#MZwdfX?XQ_Xq84r7&;UdN9U2d^mJ>K0a?5y`h*)7%>`-JXO>(L#+sOi$0QHYM8OK zGQQ#DoRU_-#seevw&Bw=Wk>a$vILR(0LUBjO1Ia zOS^s-je&Qc2C7-o_$5QV5Rr2*T46%@HT^P~ES~hyS`S^H6LKWQBaK4o#W;f&x`=yJ zBLb@Uq@GBT4QS2{y4|o30jlpmdfSjRj6Dx5E&zP5fF8Oi7yiTs>L~#qBmNt=Vv=AY zfjGu}U|P8wi#)xe*z~8(1gIo0Wx-m52@}$s&Y~{K=E2L_ zYtS5Je#|6xqUk3eY5&kX93IOPVJ0#(pU!D=UH_LLz)M!LZ zbGY+ciJ-1VX%tRyZhdjT1(!8&BbxRd(7sxYf%5Z_=U!N@__;8m?eYIJFK@EmvjYE- zll{X+{jb8utu6mOE^quNd|U{DGu-lbA1{OKgbMMIb|Jkbhx{~y_FE};S$unWBaIi#nN+t(`%mup^G3U~^4ohh_t$To9b(9P zHk7P0ltFq(@E;M0f$T6!lACD*#V>L+rNCEnOtvM43iB5sVeX%Vxw#r#oOHA%2MD}M zUG-raCx#2N75y0~aVK13SBPafsZo-4LH*h030ep4TFmrm`T)IK&!C&Q^m>%4B8%ZQ z3Pfm1>uC;(7(<*xqshLm(^b8y2;Hn^X_UB93fsF5b+)m4<*MiLP+6|sEJGy7b;hwl zKieIoWX|`(2o@A`1zbSxsLt#H6_rPe@lix6=Zby5RK+UJtTbAVlaK)2N>TY?vj_Ze z>LoBPm~iG~jx<6nt4o!l0hx>J$>gG)M@jozaR2JnBxASL4$1f0A1+%YS*(41Vcwxl z(0OCa_?W!49%8c* zy2UQ7+D~EI`;-yB#RBi=9iUsPUOky>4V{_h;)8C!Mi*IkBHbjX_E3cQ^4r~d3oPM| zxSww{<=ohYguevMN>s_P5B_uOz8OkiuIa! zpkQU_a^+J-D~1{L^p66TB07@P@#xBg=N0Ac_c+Nqmlh$%;K`77L;n5CsVg3vIa8O& z?kOkFh|dyv+Ne{h*?YqDNdh54y!29kV~UeW>tMTaQye0bc-&_S_K!*~aZTo`f*V(L}@I~sWmYckv2 z=KRhAvKC0hd{Jh?*wjQ2Qfsafj@tWy(P+w#&3{J(-|WxJ_N&n z3nBF69Xs=FP)9X5BS(TDM-t{`ei2Z>TZyodZs)odKyfo>xdn7X<=2=m<=`)>ZZ~6y zPwSWWA-`nzGQY^|w9nCn;dt;AZTgCog5JuCloBh{NtGfK)loc7Camcgh#RDHiJHHo zFSbV585qrwk&EU`SWJTirS)-p;m^nH`(#9deTGCT6q*FcWfVF`$eGVINS9*IwY}jo zrstW!p>r3S+%RgCI=dqWq!s3j%I%BbHkyx&{85;lq-bZh0P({>a8iabEgcYDtL-i| z#D-D}33ZmK=ZX7Mv-P*E$iJWipgwfcJ3voD2lc=0;r>cy`8RjPL`%nYAwbBebmpjv z5hp4u2vpG_0v4$fv2}luwb>aHQJMHWQQ)^jg7t_3JV|VI|6bcY;NN^4hrsjG?_|LZ za~|;Z48{!E>N(t=Pphue>}x%rpZl`kNYXiq?KDTAc#xK`VJkqT_Nt??&J5Hr2e>OE zb_wY>XUv@y)ie!SX@i4)FTjj8|vN`oe7rR(Y$ylvYY(q9lo}a6V2MDz$9DY!3qd1=a1{HOQ(a)PD zkg_`n$|~3apZ=;g&3*vN(bS%Q`khd1XjA3BscqBLCQIPZeH_<&8W_l2gG>SY(ws>z zWgJLnWgO~T9XL?kaJ9Z+&B=RpHxj)_Ks{^Tok>rX1>JAQdroqU!X(Y#mAz?yUKXw} z84d7_nXlW3e#v$Jt!dxQr0yYK==UvHAOxIK1xv1M$~fqNywJyp)7pO2#AGz|viSuP zc-@HXY2aLktaM?kl^ewJW3`m?<$Y793?wcRL7tZao7WYG#nJME!$wWD%xU)!hy zclZ9P8B8r2{5{HVn51CosoBU9b2Q%7<&eVKj5x_vky~8PsC3mFD%gOSMfN*|_SZ>d zux3M+i|kmr*P4*E_$RrJhl`xj^z@Ud($T}2!>;7V)OkR1Naf{y0^TBNy=;WIF0INl zT_e_;W=0F>H`SB4?EL2}eX+!xN`%#UH@{)@^r~3j&`(jzd)ZzeVoM0xxl+-s6gvM1 zCVv+pc_vTv&`QRda}JKf|~N`#g${nzgr);_zC z!Sl7O;saJ79atgcsU%I1=ggflvp{dbgDgZUF-j(JsA5y=koDE0?TO@-shNb>4FS)- z!5i0T;sG_YAKUEvpSF1tsaQvH39Un9xP0ADm?ARtuMzoCBA-Q}MuYV6i340?G0)pc z4idLMmwSo_A+g09;wR+f+{6;Si()b2<%U}w3bOKd+4;RUj!-ShaLS2nA}KnFv4^D? zNb(WnujIpX@hk{1g7nptA{6u@9=?Qx^f0Vs`nR9!A9(37n$+}#%TeVZnF6- zMCAyQ1D7M8Ka}G1%aLD z#I_=19q2>bui*ba(>V7}kdXuW5?(<4_+R>x{}b$_{r~kPmY7yn-+$-{hzX90_UY~r zF)_hH{=nyxj5PNXi1&%2va~8{K8!o$`;yQF@V;D%!$?o1N@U$nV$L46lIWu0^9CM_ zyeThH(W}Xn=Qpfmv8c2t15o8ZOsf zB675fyLD8FC6@QpEb6-+Al-uhz<&h}0$I9BebKVH*KDd$BJG2nT9K(DP4w#3zn4$l z+A6KMOJO!k>Q*ZEIa{9bLf8-5{@OcC+po7?eE}5AQAB#0wE}c=O&%Iq1ARO#U1L?5 zI^g)qpqB;{)=x=>5UazAMbg-FyV1wW=m$n~QN?1UzR8br_24Q^BAW|u57h#r z7`3c?!)$k;7sQ90@;&jUdJA-qDzz7L$r@Fqs0TXhQ3q3?mT3@zTzAw*UTD~}kgioW zzw63T{iu2?ZdzGiifqs7ZaGHeCKZ5DSh74NH4#TL3-q*elq`XqV#OTh$Q-CgW4$~% z)F0~xn%vT%y?E(qDCrCrDNi~#yZG8{REr{UP661>E$9B!6t1W0DqK0ssS!j{G}2CM z7HVl-=9La$YuPD=^xh40j}kpBcbw|`SO^2fzLeDCF{Yoo`D$D#_#Ks-;A-6274S|)Vcj}V zV>^o5+L}#h#Ne_Hr)i@R2Ty*a+hE5 zdU%rMFP#&4tG{AjuSbI1nL6 z=I);_Pl}#G4>=mz7Zlie_kEO)^}yIalk58(MRi;3vi7L7{{v^N?TjF9h7)wxW~?Fz zJ2gIO)`1}f`)lf*7lPLsXbTx9Uk~Egf)sS0(JQjRSmS|vh~5q{(5LDNrvYaCD&xrz z6@gO#?QXDB--z=i*iGctC_~n$ zqB7Rs72+N0eC;hKNPJ836>8w!frmn(jG#YW(p=d_zAtj@3~Wh8DynQxqa7J(U=coefP;RY4(4*s5koD*R^R9YPUpTb6KSSqj9@yP$$_$1qJn&yy+UHX zPPZC{-Eac6ZJP|Orz1}d6#6)^8KuCla%Li0GYM~(!rIIa{ptB5r}YnJ;^dnlLe5!X zcFuj@DIeOCVh!=`5r;s-a(6qzhqq9 z_47X#9(sslK01Irl2m}8;(w_+YIb)2*0cboAw*Lo9~1z4YFLO#siLV-878b&7+zj} zyeWTIfj_W$jb;p}B4g930kV#DU3Xq4|1Uac2jWIl$g7;n^konLXt> zv*G>zI>-0B+-*ao6dFQt|4FYC8m?ZjYC{#17s_fyNp05C+d+=#WYe4bwyZBZ1Sqglj!UYTB1mF zCaQrh>Rlm*Z!i7Tppbd;oF$T>#xRmOG>0k9raGD|r-jsprp%7~jxbwqA^5J7WD;Vg z^)5Qj%NKKJ=^ZwlvJnKYsvEcUHf;zP z3EBw=2>cKvrsdL+^d1`v_kmeUcL!VI3i!3fCROE*)rM*n7tp}RVaZk+i<|l>AQQwX zG)^SX`{xRQRC&2o*;H|vm7XPIwGJLZK(ahoHA|cpDJvark7>uh@&Un1!}cR}*b+J2 z2j_x0O;z<*t?i0RpznExt)G&j4_&~JUADjZi%q3FN&(b~?wd?)hx*sRzBF&D(G{F0 z_5P%m(I22$sRwx>;F^8N599#Ci?~^hZf;~p=?)joC>hzGVAdaG^{CN_vr6IMY3!sb z-_w)i|H!H;9#aPCI9tr_EAQmza0q7&D#`UbgBs&3(U<1>n{vUBqw)9n%jZ~rASSD4ps|-@pITv*{RH-r} z9zgn{D^6`@B95AUK{-gM;#O(2NERCJ-(@5FsNoq=N!hTKh75UziGseEoID{f%9B0> z{V;Z!i#zj+g$7BZ$)0(pawa4#JYbmUau}Wf22Q%j6_46FPaispc5sLWV?e+yn?{>2 zT;&o6&0Gs;@QkZHES%iaYg{*sLFk_EYz{@BY=I*6;6Kzk*yIWkS4g7ru(8KD+Yvk)L={cGnM5ke`G)07k4Os16vRN3i8i=$6!0; zk1cOcNUX8usl zR#7WOCK*JJ;Lo0Pn579cq-|7`v&s9SNr`FTDwLa_vPEEDKqr($VGH()6SOtlPVeP4{#2R z>5f$^0X#v^KKGs}&+Plm7}tTAugw=QK8Wk}+jM9cMj9-k-;lH>ZK?YPTf%!lsL)ze zYxc9CsH%^9@z^QYXm)w2u}IN zVbLjnXf+XD_A8FA#5D=(uXMm=WQ7HmR7(lLmajPy99B2OFODg+nVkYA9EWJe7en%BZ10 zo0p_i(BkZ?<6dt;7jco>%3@?)KC3XEaE-BD_vW&cb{Eh1eFUZPJJdMFR??$<%E`M$ zt7=18HH9BJjfxd zSWn(K6@1sLu@SLEGhOL0%358rf-*9PX* z(e&9A$~xPux??BE%Snif9pfn+P^ADNlc3Hsec`W09Mr@^PHNI93<@e0b6A6#K>29- zuayh>YRW^*IMP1VYjLQ#d3ZY*D(GM?mer|how?&4z3VQKEx!o*ftFemN)*$RF=2y7 zPvn|r^Xlb&7)vOG6f~jJ+{Ixqj$JybcR04(6(oyD&E#e|-D;I2vmWCqceFc4c6{GW zgZd^0)E8Qqm46?lATuknXf3gKXH1AdCq4*HC@l|m9St#L+kP}XNT1mbETIN*h)5Bg zbvmM+J|^GCNy%u=Z)<6AmZeNbP%Mge5dr@$sWdkEqX&tJsCFax`I zw)Lm39;lB7<9)+Wp?R{??=*QbA35?^W>$Kj%X!@} zqoJH=FNmO-XDUFn3s0&~Z@h^INW6N!Pn&Wrp=`#*krrH67JczY{lty`iMv>Y%XGr~ zW%Q86Irr5H_KN8LnRv2YD#@!R_yrn?5uI7c?7CbBiTbkJZE3Ljz^SVw?~uxZ&Bo8l zUW95tUh6boD->NLSo-H;&Xu*4AU`Wq{_QMkCJbdL)W}hm*P({SMLog0Ik(Tx)3G05pp`;8M{icuNUk|-OkU{MN|Gm zq_zj~LeT#`p#GKA__2mVJ?cbwlYb2{Q5UC%(L`PnOxtz`2L#BI*o)HQcR5PT5tC*;#>qd(di!(`l2B=!Uwz z*dO!6WQJ8k(sAt&oE4XwD#zI?7$6PR2Y#d8xr)bkZ4+tn;F019VD25SyrIKvPX+G! z4aw`Mp9q<%7ZqBELPhtJrcPy0oio020LGG*c>q8z7xsl6$5M1trj>;Lve&nJ-+(x0 zqaE^OlOD+Sytzp#387`N%l*z&m*ndCBCy>h{zY{IBB%O%i?l(I;nI&$%#`AW6`bJa zG%)2cGx%fY+xY|=(X#LDE{gUa-QtrYHKiaZoa*{hEPgNxN%X2qt(Zx5$i zSLh%2*SNkwVtb;XKl}C2eimRO>O1Y|bBpVS>nmJvhwDL+gU&;l^g|e`R37)cMY`it zhw972=!WTw!%Xzs6#b|$xOE1Ry^%)S-s^zK-b-7VN2(+jV_fKBYNEKp6bl!VEnryM}fC*M3^47$K*L2Y6VaKTVi(O^tw(nPhiWjwGt za}Ul&RHtIo7%Taj{~CW4s!Xb+*FWF*jaGByJ~cC^Q|jE@V$k}+j|T(W=CA+zCZ18} zpm+c-(pi>)Zv6M6VQ5Us9M|zlvN(jiADzt&)oMg4db;7}9E-Wx5g75*(j=@xWt{TR zjQn>hmpk^oy`zZ6Gms4ecmp}sR>rf~7mYsr4$HcL(hv@)HXn?ioR(qII5IMISFWA+5fB@C3lt@>)lN5e^8xZb^R`hoH;5}`(PjooTtYK+x8g20>Yql!kI-Ky0 z(-Qdw*fOGi$$gHRU|h##GH9GdeWS68+J0V~D=2)WYBNG70%tL(ZeGXM#*~YolwNS+ zSo^`~0_{d{U6#%;k@Y9H*IERvMFeVEpORgNWR=eJZYSEBrT2jh#}4sV1=|z*W_;3#S(Q z6xH7q5Kg2dfOzp{JGh(zmhjUv_PaPCh7fJ#5U*8Z?0a^oI{0nbPqX1)`{3I9x= zq5K%q_T1KOxUN~fCoM!%2N!3QS*kwnF{hqVxZRfPh~Nm;E&Ray2z1VR9{_!D_xyP1 zI307~RjMXmPEK;D&Gd-4u`mFS>mi!P-w@^2<{NP64xl~oLM3!4J{O*{F-j@S;o0c_ zrVbPT1ZVyuA-NW#4^3Rv2n>j5S#hH)UVA)(HSm0JILa*CNk~ZAMu;MzZjq>Y_QrDY zI6e0z@23oRQEBt;o|fM$yE zJ$gx73nIV$BRd~Y3?DHxc_2?!SOv1VDWqTq($C18_}A0L0t>mRBh3=45PRWNaj6 zZtS4%U}$D;sBiU;_`<)lTY_S{ethQ#Se|HKyqb4{Wz1 zSCMdf1;f-~VZ%Kg937@oGCX~?Y`>vtz@Ncmz^4ZWJ8!fW$q?nOYhL^bYsf?;kI0f2 z=6JOuVQ+C+&_ztIsA z|DDyes_9Z!gQS@LVFjd)O59XX$ z_-z?*FbF{Zoss;159IGl`z)Cb8vw^VGYEP_ar|c?sr1IoEP)UaLZMdNS}L+B8=Zz1 z(Y8q3&rwm~4N1HpsOB5B2F8Z_H`n*?xiiqSkh8>2QMFI+eI9)RsShQT-ZSGI$_fL= zW%ihdhAA|LUx!9rs@tA9X)JAK2I`HeD;QZqpqi@?wkf5{mo$%uub-XerzL7%HRj@* znOdt5*D0myXV*0zKdeM)kOvGi=yp#v*bqGR+{a=Nz*?}$y8=h@9r9ZwnKNou{($+( z3G(psl@gBfu=60T@TuuDD#B^3Y6`xA{Oh>>%DrS8IQ7g29F;X-M*MG3-al@Os)N3r zow36|dH4zIvWWah!#(EEMVA8Kh2`Y<^B#aI@$ew%>7xcizzpebxGtle^gAS<`Y&td zgbZ)`{#@W1b1`<169fE7S-3rqo;bH(ir45} zGIS>DD+e>9FB!Wf4U1r8z??Fs^Vo6h*G-TJXH==gzE!N&+~8Rdk2J>(X0X~)5H_rU z38FFOFeyiQ<^nynRC~VzSe!OX_&~2i5EDf>)C|M!SIO3T?93m$UovwflEe&wCUG39 z@EwD3?OunNkE0&*RCzT6)szjg;Yj}kZ^qX;_n!(Grn5qlbnUvo$VP01turjAY~Ou| zPpr^KlVyg%&l$Fa-A~n9>8@JpaLmbs7pX~)r!U(LE0i%58K5FzLOK8hs1ZoO6n%Yi z#^Nql`;_8_fvGoppfV~jJ{-dOd#UoCrFM_Q7!RQ3rO9Jl;_?5CrT+RxsoG6=nqL9=;XB`KyhE zPBaKdxOWWVPh6lFxjW>0l#=l-l=m2#Q*a}f;>@X?CuVv~E<;9sKjipnJHdM}z_=Rk z9r;x~l1uah6-gc1Rm6zonlt}Ggn)UGnOtfFIk~jUAw;06N{;X_PXKnBJORqolY;}! z)hTXEk{c^40*m^=f*sM;JxxRBbnVWIR)R%Fop9Vk70Me4-uRJ(c;u!?`c#!NLmSe# zsp9T$aL8ZRU2013jSx^WsQ_30zi|NnQ6h!i42|ua%x!J{iHFE_$PDnoWy1Ca!y$|& zBuB&bdGpC(fFubgkmYx!CV0cW#a?pxL_mf4|J*5n^8^Ql67NHH?C@l4D0uth9P^{EW3G%QI544MN1moIb&LsNpN&zHJ*$l0R)9=516;TioI~05-l)93 z&YO@42yuK>$Ykw_cfbMuJkt(7kOW@X>PTLTO8O}=LRrU1fcY2AXjUE6AuKi99aH~IKslw)`nIB@bQmILnLEs z^iLQnOHtYu5uo>(5^YgWE{2rr#xOI7It{LcSA|nRhJ-{)5|oScaAYB|KUAPN=7H%Jwcq3A-@_% zrZEeGQjx%&qN#Bj4Xmn2jb^+pSN}Q|;MEYip!%i|5%6L~R=@03`pzXazKB0v7%?4B zToSs|s~fIkM$IryO!nrM_L&~-Ul7?*nKQk+XeTjYK-RoLwI*pNf6OHgdGD{y$2G6o5t7q@&C-83PXRx83i`2rI zBd?=(Na!us3$_YN0q#}cza91p4*xMo;&U!eSANywS(Gj|5-1hL}NXNv0IS5*ikMP3tuq0Uu2Dy?drEmgtO1#;ai{hILW z$o=}4Se&qnF59!uJ#Z7FbRLSSKX|X7)fJ53M}0m|xpSV|YNm5O_X}`=XNs4=W@8fg zxgr(6Xa3M*fcRPLf3pYQ_EPF6YRrQ;Xy~S;f(yOJ!3E!&!2i3yN9FEd8|aT49P^(* zD<1Lzb@c4`T}8lmpbzuk-$OFFtaliJKBS0`b{oKWNJDZ`c6mXcpdH?I8N2|*4;Zi2 zURD1MZ)H2L$zEURgJszFm~Xy1>=ry zHu&#}f@N0>e(in1aM9L(08|x5pJgxrZ(K)UT8NAux*JL09;m(LKT%pADmY(Ly%G8K z+Y>k7>@Nj=DQuKz61Q^7AW5R`V-0ucx`!EW@07s z%59&ktABt?MN=TXhcH5}kCQdJj?5QWKZ$X$av9*tnEo(Xk2boDM8>p^C}C95oRT40 zuO1`b1Ajh4Js%56Y80tT+%z5814q`-g$<^zs|2RKP6$g}Ou`_7+RZi44e_^~!DtXg zDu1!LIZ1XZ9^u%Krju~a5}1jGbv5P`9l0og@>_UNE`8&>kgKFdmxOJ3Tul?QNL}eF z&`@`_pH(dQ#stMz0Gvx#auT;hysh+vExk&ZoE1vBkiv6;7G`WSH6)iC5K+!>6Omfey$gnq8${3pyO&6RX(>P}N)~JRIQv`PvAqy}W3tQ_f$*Eta zHFD>1lJgb2+3clP2$oe72lxSe8xuzc4HIEviE>%p^%9I{@SJ%x;S&5XqoEZ2p0fY< z*hYl`geMaMO)Lq=3=@k)^IQsJ^?+4N2XoCk-ChY;4vR-7_TjmVaeOdk7bDlmIvw%Y zEqqe-Kf&>B7ojYY924Hs(dc9eToOLd?QM3}^W*mzCuf04Va9uekRlp6Jd-1$bSN>J zk@rteE>f83Jg&0DynIHI~BLgom`3qP8=&_EQTu6Koq@k zLANP-45(+rkaLtqR&lO(Z-99wW6~94-^Fx}3&WpTt3o|$5xAlz0n<-I6@aVUry2#zkZ%FZpWQeN>D#8 zFB)0(D?Ghiy(zUk3E08kpqd14$(s5APO&Ktc(Ga~jg3gI0ZOj2m*fYkTLzEQczqd- zas`k@QyGn7N`?hsto8tQZ#^}kv0=IWPQUGqHM)*Wa)k;kMB6K^6~G~Jfz8GjjLeex zlm8e#BkVVZSKIr*H<~axlM(zUIhjX{<_qlK(slZh4Cmtx(u&fj=m}L>D4y28jSMQ$ zw~CYIirq7uE+3-Rm--ZpqRE7g=F@V-y~*^6!C6V1B}-EE9$rCvlgez#%V~6 z)9y!xhfAe`K&7!6m3Q43`_gssmy>^Cx_D^VHVJE?aEM-CeP&tBek{SZsWE8I*-PDf zX3-dH$KMIxHy7AexolcZl5?FJTys%{nip485zY?|1k##rk6YQ`o%b&g)nhiS4%$h0 z3{s~(kYxplMrVoZLRk}ZFeac$uY?IU8ctMt0;Br!*?~-O5A0PyB%#zX`#^l5 zoe1Q%ie~RwK?(PGX%y-ADEjZSnzFS1i}}){;$mKoAoddYaHbrR)8zS7Oh`{zLap33 zwC~X&VaBvaaMuJL6AA`8ed{O=_+DB^a-;XN=>Q1z8m6k6!0fv!9rfbbd9`Wyjc{XE+k(XaVdF zwvoG5JxTyli z?7Ky#-CRMpxZqYHyw=cm$5MHe{yC-><9W8w4YOT?JP0SS``6PmMKzumWQdORcc!N2KWhqTQ`>?=)Co6=x)P-SvMwD)OTu)*p3v>s#|XL#p%dBuu& z_`ba0o_FxG-=SshuI0HRWA>4Fg2cI^$h~lIhg{uXxu$lG-73kvbVoCeL6^De4J;+9 z%WtSYF?s**}hMr8ULnh}+zM0UU&5JXZK>ZG)Y zrTe4#o>dXtU{j7o@wD3TJ8iAYg`QSxjW=kKxh7-K_~7DU^Yr9Zd;)kOmqfQl$g8oEN%pm=ayR2IlMDL@46N`b5d)G=v!qVf86w1&Ht5{#lz`&>~I1N%6CJ1te&knDT(pd zZp)r2t;A0{C2BAdbu)R6u!1F=<>xC7GLj>8MCJ3<@>=ZzdD?5IDvn)7SofKgcb$Zk|gKaw7@NEBtB|Z*Dn9PjC-wNygy1D%|fyi@fbe{F)R)mf23Hmi1%= za|AA<>sbssfh#2C%e23wThtSzkHv4f#(nv9ve74kqbRQEH{Bm2=aTjhaH6*AScq11 zSXh%Z(cz;Zk^-ixvlCFyMSUm-0X7A#Q_5Mq{hw+{AUF*seZ4+jqfubI8EJddmEfxj zY%3lcsj;tWx4T!2H&2WZ-ikN8dAH&LSL`AEjP6iA4lmy{3E5%elD&X9kSKP<9^r#q z%!F?Zt8>z{KK=&$A^}E63AF=%C;%1u2_Vt>Zw4d(7##r)&*lKILHaK|(+H4i^LOyK z>Ys`&OB^6!&^;sp#B>trO$V+F*#?#3e_?R$}Rck+bW_4Uwjat;AQ7>7%i6Hj-{Y4KK%12cfUJ z5@VBYiUMmuUc;X#{XEUr$I9Bh^$wcqD{wHfP1~D`P?{9R*yI>}?imucs6316TZ&J! zFW*~#&yom}c0}s5d?HhwH#-}tWt(dPL2v3=nF$Y2o441kg%V}eQY(>@r+`=~Jex zK1S1!XSRNfP2z$k4mw4Gmc_aswG-=&J@nuTva2rq*+eK!?PM-NM(Y`7+Z< zEK0^%i%W(v2&WMTVx0*g!-U<;%(ueykp$zr{N_zcSa=Nn@WiN{|5~aop@eS{YE*F| zxjd7TRc3&fP^wSIsTt(tkAL>lQJ1HW_>6MHcOQhXN5Kii-ec>R&@{V%(&?Ua$dxiK z{4*ENpf(jjnE9&*qn;oT;{pYfXL9$vOMEeVc!b>7k0H=AD}{-B+eNzcD*ea>ZJGCA zNyZxZs=aaAG>l>Ok-;3KZ&EuHTQEbBfBc}C>cy7ZiojloHXn|}srNE#*&@W|$2oUH zvw}!v!NXZXgzBUJ6!@Owgksla`F+~lC_=1-6Ur@A*86+RyM@R5-vH#l60@+#MJ87P zyoNPEVix=V1ZV!U%KSxe`1`tTQsvYYASVCnVi_wu%;enRR?G;M#g7k#<~5BzOqW-P&+H zrs;8QdH(!7P8s=zDT0HewnrY0^hj@s^5mX$neQ?5OE$1v*kWXN%OROq8LSLl+ z)BPL9Z9jOT_Bf1=wDsQ57-=9|gDNK)-)rp7urJo_wUvHh9W+LNqW`;*nsbn%ce2S^ zwZ5^ZbyaM^K0_`1tGTqOpFs)64@j8M{g5mNDpZbjFY;WAOG*om?2*MJJ;n{4i*dJT zqHQfDs_B5jzDK1I$%x#RMwLe#_gpKd$y1SPBqZa3+G;3G;shQC2|lvx6GM?W)hnz9 zB>~WpTxW$I3FV6nXa!4I>A3vuJ(zWiZx$8wxM$&FzG(}jHQMM)Vd&l)5%bq@ zduEivPG^En@@cwRda3B4_>^u?7{rTOmC;aACaUlRZa*(qU#m2;u27Dov_!^0evSGX zuemiACJdkl}=>W^e_+nI>sov@NL zio27pF~`oC)f$X6a+V;qP3FI$C%R8gvkLFue-`da z2g@dgSRu|P;rn`=kOfF#-I}oRBWCMgH*6vt2p1T-zuNPZ#c;obr=}=&oI~u?%3Pz* zr_M2M`lyt-s>-sG=ctA66vHeNMjbM*AnAIfc$Dk6HDI{gIr)R-m!_3U`bY_8%}vVx76sOhl1l0B!-6g z1U~@VpU;S#E7ZdfoxpctPt3?5*$ple$aK_V2!eBrF_a)(;7Q9|4$|ad4%p-a`FlWm zLI97e39d*w{bJHZX?;qvcPB#3w_O-{gxeM3QUhM3VT!#Z0bo1W56%>&`N&GMP~~Qz z%8mXM6ty6x`m4Ib4t|AgiBf7f`S`Q)z#~3)nS~I}kXVqq-Ts2rJF%2(gNx$ri#!R1 z)2*`28E*Qoj=b^$M4O+aS5EJK!yT=U-|lqH!l~T@i;jH*-?0S-&1v&aaWru7#=ofV zzl4W+O223Ya#pmlh#e;o*Co~D`^Sy&aLDwP8Af?467mLRWB2;pLT#55;bbMSdkX3T zo9xR1ouBdUsY`TsP?n|v(bqqw0&oZMp$_$7^1)G0kEU{eCY+2gcZxh;$$JHS-w@OY zGz*P(jhplSRx=~dn3xz)h)whYqRu9?+ZoJ!LK2R;_8~!by|27S&;KZ=z8p8zLQwi> z6sH4ySXg9E8%}o%aq+fLQ_3rwTNdlz19|!FbTR2R1mw83w<+8WUqXgg|7qd{;zh8{ z9WBd0=XIs$U;FjHcyM|+2;3NeWn&4TGZp-w-WPz5^#Ae_{{H4Dir2P9;0I`acP;f% zs0AW)mHDfR^g2|}gf*l3(0D^x7g%6b6;pdvR+t9}UK={&2GM+f@s7KhxNNfUNg=u> zys*6igfquRz8{~Th`$2Bu~3#8T8HBL01T~-*%E;1dr${V8uzkeKnYAn(^A}@%FPi5|^yGkk6!tmoiv60u{6_BKXVrCU=LzmIGOk|*Yk$2)sB5)Dy&O><80(S=BP9Lg$-;4REg2lH8a)(v6x><6B|;BK6hUz zs&umNSap*+XowIaX8O6jFK!$uS+*tiC5B51o%B3Hu95uf$qeHSOzDTBfgCwd&=cea z-TCCr=YMEJ>Fi4j{-Sm?1E?MUKd#>2r=p_7bwGMAfbL;Uo>vEi!XMs(H(JHli6qqa zCzoy%iGvWdBnE%eJb?JL5OT*ih!&9FJKEu!xW7siC_@hMr#>T-`}q0r!e@2c*XI)` z*Faq4Ckc_1i@t;ih&kjugF$K>-8!gpa3Cr}`>jGhC1i~;QEVI?slHA>X7Cj808=J% z@X6o-jo=7)#VEQ*eehVzMgX_XF(A@fI9^?HnW7`zI`kQDWj8SjW8kgQ2D?;d)j`tu zc(lG}X<Ubdn&#pn!kUdb>m?7963p01 zFZrCQ1%<{c%kn_$_^B(1Peha(g~9cAx@MI|^FTyJu?;e8L!(FKeYv3;3GvTHRMXfN z>gA=Ebo@+4uOxgEP<%g6F@{Lb#&DD5^dLv&awPve20;?tqj6<5;bo~I2FmS3!r8R? zx~z2s3TT*9OZ1g(IQhF|{Zj1=(-Exov6@M$(BH0*Tz!hcv*%XZygY-;5DlQ&PtGqr zK0FRHFF%f-p4w!J$2WeHnHGNby5U45mo^F8mpy1RaSP9 zNm?XVnF1n0cNSJGFpE^h{VX)n8H4o&{jcha45+?MxJ*BP0j@vw|Db*WH0VyoCeHtn zZENm|2vENiOQ$oX%>@a&_=}}9!oiafL?kxz6*cp`$!ID4~xXe1S_ab)T=I~GSGsAL$2;oOZZ(hiLia?lvM8p|qHsGtl zQwg#}VokfCxo403ao`FJBU{?hLOXWv?p2`)whudg9%%h7kPzt}BwOtE=U0oWyEAp* zx&B6IE<7Q=7h1n40>M~z^8e%P8>2Msl5DFgZQHghZQFLfX`7X*v~AnA%}U$0ZQlH* zyYF<*y=(Q%td;A{|L2JlXGg@|J2D>>*F{&_h{bRaOVj--FB%^d>$w()2u`r?8yp`R zCDrzjOfSvj@HxRMGS>e%uYfu<>RTWR_(_N`C}{{IuQuNGv{&pCTV5!QPy1)E-1eEd zuhom#hlHeCnT?nVFw@Y)G~G+>{En@QYs`&2i3b^ZbdBASY8(cShUeWafE@VI(Ck2Osn&xd5v#k}8mqGMLwa zD(8Wnqcd(HJa!Z!Iy+TxLg-xbnJ$ZF$a>*)|8Jc*?V> z95W+n@!8@a*ag9bk!I{nOd^PqCs-c&tzeU;rS!F$Q}<4Xcg*SeI+4K^dLIGjf90ey@b(}R8d7@qCxBf$|+XqZ(iWJ)v^r|FSS z!a*F27*@%n!D_E0t#zsV+ff+EjmeBcmHmT%hEqF0+T8t6%vvvIgtKk7xVc##4pe%&>Jb&<;pF_BDdM2 zUAMNW%WXD_eK_>T?MH1c)PZB0=E`Kn1EUB_v0!TEVTAmN)ZMdr$eiY zcI`36wcq+1+Y@uDKUMj5NDJ&(&m(6=tNjlWt_OeQKM}=q@tb*o`uLQV{_vHRdx*A{ ztPUE)j0IsfhPRnveWq8DD>*NSGlKn*aRJm{3i1k}yYu06j*X9z7}^g7UQ=O<;DR7w zc1C(f)c;Wo$Fu_wnUX<=J>W;XB|ok)p6jus%=X|hh4Xocwa@w%!M=lQItQ{pPv8h1 zdUw%$rMO4Fc~0~s_QoKANAQA^IL3#Y%s;?4p8JCms`w?tS7n?Z%QZZ;`a!9r zpGV>(bYjdvl6fNUK&Z$|mAZJJVtJ~Ocz&k-J)YWZL&-H-IZe+yh~wh;v{8T>#EWqF zBHDXNf#Y`y{el=?K_yp{;Ct`^dcV5i9qfoC07TagtP9;koX#29G|7ko-n)|`MEuOL ze3h-`$d4p}S?sDXb=Q{U0CE!_2@AoPZHZ8fXtGs8uMO; zrmK(>?7{OD4k{LxBUa&4|;^T_+I&{ zH)ME91yCr3gWPBQ;<<*2i86V_^bsdpKXZ*{i(#bmwsY`1M3vN{2O|udV&PvXRU1Uld+=uf_me?nqS-;7vKIL@IkFVV%(6-(nU}5;;rcsd*jsVEd74+6Z1@ zT|IE5_=F+XX(7BLZ0=U35FYrILW0KDRGPd9Si zLR6Q2TG z^C*Qy>Bu3RI0a;6beez!p^2`;TMF3R>XJt}@uV$gRh+GcX69&wSreSrr<$qny0A^<&|i|Gq|iw z<^%;A9E+oa9GO4-(8p=b*fTbk45D)bbJUqY<{Ozg(kf|^`9NZC$|uceGjMtk!$9VT zDfTL{TEuwewYu_9L#?AtA~Co))-5YILedP;=tsYSwy89lk5Qe?oGs(*NG1cyjj?yQ z%}^`CS&D8o95b9S_t+(mMBsEYC69!X{GGM*P0Jj2+szM4h)A?Vf_}3@(9us$d8E?8 z!Y9D@Nq)Br+=c?~u(UQ8`5m3NY{aBY8Ld zWkE;ABTK|BO16iLw(N`Y%uXfj-Eh#=a1M~G(dYM*J%hO-xNXkgR|CSWA{I=~KdA01 zs$$h{3EBfdSsuFfV${CpuII@F7srR7LRHK zgCQ2pw!kBF%45&C1LJX@LJOw|QoC{j!m?z49Q#BqG$HqMN?60VT;l>fx~Y{|i#KNa z_OqLj@$phMg{Fest$Wv_%?^DgW+vV}8My~3k6+g2R7&AJ$%1+OwIo`8{(g1L6RHIB zyC|K4!7WM(Wei9&gqVT-2@gQv^7*9uS2(%zOB3`jw{wUuJ}dYC`U3vl@H``;1G1M7 z-rwXsEQI3BlBS%Sx?hLCx>gL}2_b6F(Bjt?ma1BJ_1%N~I=mpGj(V*6jCFGH{rhhM zSa{%IaQR%UxR8!=U_fI+Xc~*1$kmHsK9aHe4HTKbc$pSK`q&RC@HDB#F_hLnP%iTa zmdoSLvQp-W&hQVT8s*^l{a^+D%gSpS0Ek&xpt9zXWd<7I1Mt(Xt7LaqINkgA?xOF3 z+OY2;A2R4}tX@F>dJe~ucp}eV4GpC)Sk3vrJ%_(%A5|+=BvE89(r9XRR1jdH@&-C3 zLB1agO^}q3y9|vl zHeR_VH(FerZx%PZKELA!=sLCsk>H?3FI1Q3LFf*esZU=eM552w*A#AB;MjQ(p>3K! z$+W&__jN}xuFO?e=HaNrBu2_unhqZy31|#*&0c8<>WI=o+MkOlsrD5HX8m-<4E+I5 zZ;Uf^LwajmV>+EXX`ECJ({|*}skOu$26l_l6n*1hZANrx)3R}^Z=NPgT^C)uKG%Al zydiVqgE=$OezM%Tf3Ny|2sm{umTrpmbIb!UQcW?-iYEDC{HLmaYCryxrzt(CQkC9w z5USteU=b6chWh(UAG!YEpw-aBC1kp!|D3ximDl0%_r*#@OaO)`SsyDvw$-^nKmI3irZKxA9Ilm zLUPxw=p*T*Z%%D~h$8kgj#anwYbJFSuRm`2&^ftvA1j+XDr&Gm9@a^JOCnN_Oyga^ zX!THGh3aF>zC5DIOcH-M>rs-71b@TbXE;VHV`EY-z3H66Kr&5p<`sfh#Cc_;wyZ zczL>l;#()z?#taq(BOBt&R$}H{6JY-Gj?0E^RQt-Uu@TElIunok5G%Dp0eY3SGFWM zE|DNC5r`F%QV|Sk7$O)^*{)Msnq-V-I@W8cj0r?^F36_Xl_^aLH#0p*q*^vF)Ml^T zRy{OT+3H)P3p`RvX3wcTrDW;B`>Y!MOylLEf zNc2OB%nW1*?uZWea620-&HL$x)_*ROe>w8XAG&*#6M^F0u-N-Fg*>|P9>>E>P{|Zo z3NqK4us7bYx5ae{YN5aj`|tAAhKt?Mq%Oqfh977PwFFlr#)yeS*jCa_1V+!gul!NixD^R;PCEjGC5(SYO+XK^)8v1@=@%{R#j>usiA zP-}x~zgs2B?k)>A9^@|NFmRlJ;iy8CV=tofIf;)4*-T>hWRl~}3Ka*NV)7La-lTA@ z%A!pG%ve?gu2>hK%gsR{-)>ky#5nw-wb!OEID%Q#P+3uO<*#Aj1Gp-FV8^i`+<#O} zzkqUg5y}#qU(dB$1vQ%S)T(qdcsUg z&pbpgQ1r^iT}*dPNzb+ku;$kemJ@qJIUp$}wxqTT`3?ua;ey4aAyYOrM+s==t0fM& zm3mUo!z#~XvUSLw6Iw~ud-d?b$=bpmSL>|+H86hn+`f1KB$~U1^&OsNidDBE>WaLA6k?W2Mz%;=*ZKB8$zRXKX?Fil3ddFjKeeezc>Uwm7Sf_%~h|thnyoZA~UeF z?9X;gi9Y_zSW$8wot^kAqeg%2Wczn3B>oQVlx!@FtcgWz?5zNfj{neOC4A8qu$0lg zSPa!`fgzG?Ddb8D(7{O(8r39oet^K_XOjp|m#!02S^8)jI}lzKeC9-IT;^p=oAa`L zO`=yZ-Y+(^*Nev6AG@CKMj*aBX z+1y}q%qDf4{Hr}-w)0O{KK4=*CRfurl16@=Le%V_B&zlo9#$P7X}WE%F8u1fM#LCu zcsmzb(QH`Hw2wxBc`3XECq<7cuvY(Cz48!BQvU3_L>?RyY7i+VF)u^g(b1!~0<8WE zBq!&&x_FE-KQ8cN1j!VfjXf}PT2IEx=p1I-)q0~FOADLB_T(lGIks|a-lZP8yyQ5V z9MfFOT~f*tssSz3P{}Ns;SlD|`zuBhd;?yrS$x`&` znQ+1hX6H4d4Fa~Fv_?toKm4Y(2v27!O{|((#gCW#uPFk*3;7y;JriW^GHLzn7QaJe zW|0b4nR%uIEhC+PJtL&I%f(Q}^91=4s+DgJQIxhS5Gh#Yn3Fe1mx|=Ot3}PyAkW+I z_+xbQag|=?K6D|1%8wonNqL|-Jt2=jeOb+$VCdpU(lPi~F@)RDhuARqxtGpa6mJjZ zL3$n)>AI*(#FL^l5I#l5+SkcTx?7NNFc8va#LV5m}t$fWktAH|m_B+K6yv6CB`5k_L7l?rvB35u+ zKk1ILemtA3B}r%G6z_jxxxWYvWi6Cwc3)G1rLXMs-^6l%%RFDSDRDz38x?@1(?3L7 z3Yve3K|cyrTg&AnLFAE@;+?6=(cq;c;6TJzl-#n9{cHr=a){1l>elyf>ZE{?@I0vm-0<>0W*|3Iu2vc@vE__h zW;;OFj|!lABZJOMQFtcV+;NU;!+J=)gm59ss$djKG+YOu(?Tt};npwURP`>V#fv8x zMX;8wA)TyAio69L(I-#3wy9MOQ`&&WGlx~4x=KoK9J48DQ!g5hK438}nLe$~te!1# z;%qv&j-t-!pwT`$pNFnFt{v}kxdlcSGgTuBI+l&5b8!C@WXl7MvT^Tqp^V+uFAO8R zF}k>&@3sN+>dfW?U_3z|dpR+R&QY~lDF8q~caLSp&0YmsGuSKxzo#~J?)*XRTN3}s zbr-`!r0o;SqP(v7(_O|+C9rIKRF$E~h6H+%jLyH(4-%f*9Oh1XVX)Ev12 zlQEj$w#xJ8eb3aud>>uWyD_Bb2C5mxu4f00*<7}W(_(M*dDxlvvHpmbuywQ z`&Q;L*l6a#Aam;*M6oV#zYl*XX@(BI6b8PT@aAvzICpUMI(P7{TrKcJ@H|5*5+%lZXdVj+dH&mz;WLxY1 zQr!ia#{_RgBkADn7KsetHhe6%!W-@94MF4i9hFU*YMLtxNO#~fhxrm7VH+Q&ZH{?d zeH^a3eEYF>y`@hQrPzFMZMTkH#=bVZP1@5zM^u6bUpug}f~%WWii22q$_UvstHTtI zmAkx8#^f}QxXz6ri3Epd>?BI+|5k}wv(cE~#T?q}T1OR2yf^o&qu`g%Me&`PC|~6`k%3@F%6b1~JGTwRMl4a!%qU9W%V_}BnMFx1age4zMP^Y4N*ONTg18Ga;wmy6 z{BX!HrKxPD8O2(BH^ii=#ln%tp8SO^%z>I`iPM z0-ICa$OUbXL%oi25nW#h>8uzK@F_$)Mg>)^^m!U!c&!+wAb?kAICXk;2Dvhp)=N{VT@)os#umFq*Kn z;Xg%}{HO#F12T70MFz)$s%IBpkFe8raI+$^hmV{iz%Hw?M`Trq5d$x4U&3}9?1>4| zSMpkhIybwxPE6*4`*1IFtnYN4`!_ffL2WWPJ%-*F;#AdWfe~nIx0M>UN(&^uQ;kmq z6K^B6Ql8V$qEMF7u8#~*K5kJQYbgwc=&AhL&7f_kYhl);Nf=4OszT{B8>ux*OeXDO zcBYQ4Juo3L9T^{DE&=6^qdcB6cZ(Co?A%sA@~4y_Jc+7kM<9ORKIgMP0fxa=mn&6Lwq z@-WFsLqLDbt=g?V=Dt=>f7~;nOZT*K_NO=*`hAH6Du1&G2Y6zwOTrryp??{m_G75R z7LAhS=Wz+XVExz67_R%gWc>9BC%+!N|52LYcXYHj(|2p=29C5r*n&ZR8 zSc-%3p?!us97<9ctCqkPPT7>fP4U%I5k;~fLJ?9X7nZa?6bsuox{PsD4`TSbh#70bk zK$t6@4N2g2R4+*5ZKNgevr0q;7et_yIm?!6Q;^}dkSOC^4%ff7zLHO#H{O4(m}8YN zwIL2jCCAD4db@cWS8UsTo!C+!G|0*t#4Cv2A*JgK=9s9L$WT-%#byZ3FR+ay9uW93 zhZ4X9*eVI3wkNgLU+HHmPj!uCMxwi#>8ENZE&u3p_kZhRxgPcl8C~t0JZLyrqzk9H zB{des)SND6h&Va-mqQQ1_FP09Q5W`(sA~5T@&T)3gg)n!BLVH={*{tRH7Xt`u%1eUTj_Tg-S!w})iaXT)7DgyaHfDA&=Aqiu9b?R8HPfOxD9^n|iD_Z#zoYmS_yn@) z-z$d*S`b}uryF+=7(D%!@%Yj?cI)lafk{625~>ojk2r!=<{G$1;{7Ys z!^tcig{)HE<9E;^xkzVWNNMPpH&5%2}0ihBI9j5WG()uK;q#MIQxVTUd zq5U9m-GT(h=Rb>y6S}FYI_j7<$KKj_y*)p_cMniOv0Lsl1bsak{Sdz+mQL<=Y zz;ZGgO}~ifmz?xabLrl*&F7ypbg&o^iPpfbo!f7TJ)FOD6tQ|y(U!AKbiE?M`W4!mro z6U7FF178lOierN;z8^&T0Dh~b`$#S)DDX`CxsH$aH8RNDS>_9Ov(ej*bpeK7w%ZKJt-GMpj8QztpjjxJ7?kSv~1vVVZ7spo6* zajzpTl>yTavjM=q{PCTHzvVh~yGH

vl$U*yNKrrwX5JXVJTUgU9$SF+9x(sU+fK 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

a0yv4Xj;E{sVURZ;QC-xOUjypU9$@PZ9F9 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

`65UQe83N};U%1@l zs*zs447zi6SaQ)}2k9~G40ftY?d%U-D@<+o8pT`~(@lf2S0j+EIZ{KBVQVs4X)T~U zV2<2$)%v`i%jaty|9)&ZAghcmIQqz(Y={ z3mqL&>1c?;vxkyA*j^u?zgjtou{P*eE`AOp7qlz*XP{AgrNuIv{ z+FbQ9^cI8*{*~3I*DccIsvh0h`;PB=O2XALBWTzhh%ya{h43}K$67&=QmWpR8UX3f z)A5>}pP$Gk<@Le<^ab})z{&#n9vN+P8U#^WAt3P)k~Zfr!-c8yU35Wyg|vEL=joW@ ziThn3lWV+CL^HGaW)C#XY)%bJ1?0K5hympu$(#jpl$s>3g?uN&&~xEX+@c9!YN;;k zM>}zlXCI}B8qS>EILWQf=CP7QNdSq6tU+oO(G`RrL)8TwsutL+G0uy0G`tSZl=oAz z^_=-_d(Tnn+a?0Quad(q_KDkGR7b&I4zf(N`v}(j0tuwBfZ?6^>0f9^_1XY(*K$JW zuyN-vJ9?HL&sH-WtXQ1QeF8@WI18W$50_ntp8Yg&&?Lag=4PcJKHF)Oh4-m&E=Qhk z?@upbG)NfToDL)(zQrgAq`uT)w1N|f=XcO}usM0^7bt~UNC~Dtt3z?`4?P5hu{WbR zi6#)7Qae;Bi1zT83o*?e;C}iN%{4Rx;2Pn?tn$}1;=&%a#-6y@8;F_@G8Bw4$pK^! z@6={b_Lf8g+kK>MEB_Hoas=qL|19jRK|Mq(p^E_>&MV^o=rY*EW(8J>Wmi7nPGyvhwBTm!^ znu>&ha&pN6mtd-*HGYERE-b&*!$TYh%B(ANm@}l=wZ(jJDD1aj!*+Y=VJXE`wq~gB z@5BdHW(ZK`?E;6w7}L9dL-?Wz?bQmXLDX5P_H zRewe)hLNeG z*Gl&IZq~Itgb!z9v0O(;VmDX={$Qeya2PK(B*bbmsd{!Zi&|OoGD@CI~aTSHdo*<)3Ub+jZOfRT_@_%`mP8Oe6NdQb9ikOR|B#FBUXm_8Yg4o|l=F@~mH9*bEWSSKdCN7~0uOsOnOzvs* z0r=7sT%2Y^4lMu+NaLg!AA{iVT7S$%fXY@o8~5ZykyGrq`VKy8gEE4V#X18Lug*hE z`4q~o@i30l@hmfy7AAwpf)}4^`@L~ZKV&v^uf9%vD6b)4$M;HdjW8Ed;H~{(CO&ax z3?c-Byr(L2f1%nNE++^i@zpADzXA$jTEI`0d{h{06YUOtzB*bK0h1U^wI;;np`yw> z?8f9x!evffee}NwY3)}8Gwx;dm8Kjp4wXSf#74zM><_^&PEK>K!02z!Je2u?R98b} zP8K$K7V#2`*wMFuUI8`?5?^~PH!*MM`)H;Hv)u&Rtv@d#F)jU^HYe|ni=9ep08lY; zsaM!9QTy=*t|Oi49pkeINYDY^l-T8i^>eTlC$Yax%j^kri1J%_)HGpfir^SZL>P?< z1`oN$qDjWB!F(er8|}Pd1})-Ir!UMmm*$o&3jQ%7hq;bb zBXuh!`~jC79Q`3sbISS5XSULof?n~Gn}=Aw9=w3qIL~NRc-jLvkCl1^YrGtUeO)9% zI9dxy2^9m;`eU|gq9=A?bwMyFpQ-NRj&I~%Ai6|?H=CPLLo|NCvLkBbR=Ia^qavk) z++)Iiss+TXS~(Ueq#c;WcU6Nx9(~Py+~`gw$cXbSDM1MWuIJR$E{h(dPKlZPn`}p) z`;1{TXqE7#T3j~tqJ5dDn+s0#VR{Y5{O8^+#zqz^Ap)hYvuXa+SkSb_t{?F{qdaD? zLR2BV^vr5b9USq{VWib(C&x&f82EDoG=1NiX(1k}E-4)7%ooRRm4RMIEt^%rnmoK= zF?wh9d!d`!0TjyNR9t0LLc6^O8srtmBM!NTnO#Ix+EJuNdMi@X4A zhcwR+TgPy2+R^U_r9rs^&eE81V9Io@Znm08WE^*F8GGuX%~Han-T4I05D{yVeFG7V z8SPg}kxrj7E*+E_o3c*pq^nVSGxx=1eR#ZOX_%qDFyYlTJej}&LR&%!nkyBQDooEj zTqY;fXVDbA<;ZZ;II=(aIxN_N;aE$LG!{GVS$7`*l;=f29y_HE9ZG?zS%#}4WU#55 zn|W%-TNbqLVL44aCXO@YzhEQpS40-adn^1Gz{}@n2c#|~THo`ME`~uv+kRs8*@*)A zCzTkt*>c$Rb)6J$v0z=`uqJY1jXa4Rt6HS&0KfVvy|OD&EX%aJ#8%_DKimTpW9a|_ z3)c&-HOsa}dZ>W@JmR=gI9?_T8g!R3%1=nFBN7Ac^fGy)9>@I+Y8>N0^?B2))(yG! zc4n6&f3sd38s5Ke42JN`s#dH!G^W?CY*TaxcYTbTj^nQIqmE$_a4qV*^Biz24RQ{H@U3pz^S_>0sd*ND=)GF z>x`_c+GEg6Y+}ITwg;~dicx$Jt&#yNa_h2yts~&A0k^OOpNk$dJ&mHxZjVsK=q+Wf zEWx1_UfL)gLhB^U8>6szctXh&0K}BV=A0cOKB!5_oqyOU{Su zkOsIMA5cN3ZEom0Vu$kfVO^)C66`_rC2A2l7H`3cA?#-k+HLGZgNM=$&6$Ob%n0oF zb4I(VlUf+DgAj~8WZs4ndudP<60PZekhY;_ zcO~k503!r{ukBF_c+_ugua)$Cg0UHSz3~4RXG0J)GM*W+=g#NpQ&N#w71!UqjSC@T zv%LmUh$twbXUK6sNmA&614k;b7uvs0Ik9NST-r6`+9-qho1=r2iP8o1X76CCI_o0C zaYX4-Zzz4Dd+E-4B0AzfHXmgaWm#6bah~t)<;+5icNUHo&IXI}9Up8Yh+aj4b2^1h zQ+~SR+SQ)Ey*spv{^J=oTXYUUaK6w}65nec=0{9=#tL4xe!`qLw>5<{v>$M~0JSJ0 zw6^_DD2j&tsu)?x0CNF!)IRb-yCVVxF)<;>F9)=ii{nm6P^{(PqzK)FITJ&h1Mt{fIA)%E0Ew}C*SW4e zKNG=$X{(ca>V0#CAtr(uw)T;CM`|;ca|i3&IXEwGL#~+pjI&efUk09=fFg;^B7-+m zYWMmC-F*Q6*J9O8&u7;^`)9n6cU6#v{#AN*rdJ$Yw%Q*OXP5?547jN4-oK0K)^CB8 z@D@8E4o`OO=csAkZ~}f2-tBJF^3qIF+&)E+^iYf7G=OcPL}<2tGUabS<3qf_K1^oh|Hao#+J(jOBmLr`_xvjYa;y-T#-$<&9;O0}?<8*~PI(M@ZH;50A-_9AC7e z0Dy*xARE3U-#TeL*sRl<0AtFW=AJEbjlNA?`yO$f6;(liqRp8>rS# zEDXRRN7HbMXU1H1kRro`9UlmET=bMz4{zYT;IhY!@A@T zm#;qZ4lokFU=TdZ3(4@NPze)ae5-_CgPns#4(>JlfISCnegESURJJz2;( z?*9u~64urxW(L;s#->Uhw$29b{{fkZ9Iq6x0D_MbnHvT&DrroPs%2zLgCYa`G(qBw2OjXEB z)HKzuz^O?vzmzh_E6C1-dOOBMp(-q65$2Hibm06z(z6uBrRyy8$tsynne6+&{DY zl}U@z_q=DzYx0p}Cw;v$?=c@+BVVk}2 z3)`s`VmF;w^mhI&Bc}wfBmAxV_NG!-K7-g?pt}T^R z-aS7%dmskHiWWYgkZ9*@epu6N(G;ydjQt<%8T8mY@c)U`#d8JIbp_-5mGd4f7fugn*Dn_yOn-ID%c1|;z|)I@>7IUd zA0!TUC)N*VFDk2Yo`&FhN;=74V6Iy;Ju*pMVPFcgdN(3XAw4@GJuW^6NkuX}F4nLP zVPL9fKPoADU~pizV_-%nJvu!*Jxn1lF)KYwDN;*5DN!dXK}-6xp|3`hYCX$^qBLV;@k^unF|97zcTIf65IsT5I(EryEjp+Z} z_^&aV8m?bg%axVWZsU{fZXN<22!=l_jppvmg#P}L3>bnyMH|wBhW0tex`_c3(&-+6 zfjZ@XdshC6NNH(RwVacQY|757w`euDTB`kS*wm+@;>t6dHmb?1k{f~THM1FMn#215r&1Xk5|JB(2eO2WET-}mY=51QELL3UA2cx zWiYP&6Ljj~&6KBB(yf_)AP9ScEQS>cLU*uHwr{9C$RP!q3dtiA^myltH|fDqWPdpX z;N2}fble{JUVU_(0W`N*52SWKs=QDq0P0k$&j`$;2Boc|?gglTtchAwV{oU5x@K|5 zl3O#trA==SJckXMJ5-rdb>PvxTWr_@w&LBJary|lde<$o2gxrQEF?ME#aJ<=(5khsvWzc}JBi1mxv@gNkvoaS&iVKjzfe5130#^JE*~r5p`~ zv#d`)svK>l-*o+QfB^61A!RCgm%XeHVuKgz(G{om35qB05S#|?(ViK`&iE4qv^$;E zcK1iri+U~$q&Mc&3PgA6(S@fwC(I4Pn|$sT>CHBGm-w!Sr%!I=waUE*jQtQ6h(CWn z#=WH<9_lN;A0GM(0{E;l3uK4pu80b6bQ7>%8x&9B0IzU>-e?iftzq0Y?Hx5x zAJv@|kP^_?+f{nMmwT_;UVHzi`@2iP>*JSyKe)$tXusXV7j3{U+8b^FG7vt}TYdj+ zR_z;#Dz*s&;3B9xwl_AzoE*;DqxqSqB1cGqRZtU zqGS?TE4iF4LWgrJqaNVjn36MGq{6lLZ+W8SJP24=g6g~g2n(tMMQLp;VhL_@tsn@q zJgy`b#Cv%iJO~x$A~%c6YIEmbNw56%TOIK-a*OE^zl6XtbYkkZ>GR(Lb-(3I5`lGj z#uSPm^_)|@NGh37CG+vt@uDmBWr*Y#L-c=#9fEA5jNSvS!G#^6yLppLNj;R!i^ z2L6ownFI#&g=2~H&y1bL^EUzxjElSscoNVm4Zr*~tOM#qs&5d3)aeNIEjZ3hyL1WN z;)zO^H`cFEoNR6vm9L6exxG2(FHXLQy@r4y&!L4W1?I(hPh%-uy^(e2Z}4Abu|I=; zO-DZp_kCR7@Oo?au${7i-e?B0a^-GvenfmY(66IK_ra2|p@kHnor>k|2xuo2LdpIL z)F@;V&LdUj#Y!wlO;q63;y?a1)Pj^mMpT)#DAb;Gbh50A`<(8%h-L`|hA0Z1Oj--& z!=yBetC7!0`mu_E@{WbP&L(ukbhCOz<3fuVorVl2+2SfZbvVrrGis9fDZC_TCpQB)CjOlG+BZo{wY z4dVisZ`nDMSiv4i;w=%v=D{QF>$xy?FA+^@|DUAx8VrsK0 zvrfbKc+sRw-6rWKP|>y4hMATkD=9OR@5XWF6c)GfTrDH7my)p58e39iBqd%Z*0u?l z1NjB=>k^637)LR$&kBeuDVirIrv}v6CaE(-FCteYYS20rM)`CaNb>f7C_7kCYhpD55ALGS!M~o7Okpl?N)Lz|WdS6&5#-|B=V&S$vK!2aSW-ZfBD69SlRdsn~^= z=V?!ta(z<+n@e*%&c{TfXvs6gJ_+W^YFHbgQ>A|3h=0QT2KrP=B-Aof&^i|KX zPdp5WGfDXB)==4WF4j87<6@blY(&&0#M;E}cgrN$r*Fmzau0|umS1Q_oIxlg7FI_m zVS_=dBSa$klvRfnCOL(WQKd z7J(me5V`OZh-rFVh0g#f$_`sI!4D=Tb*EpgOu4sbQ*`)-c{qWdi@`Oy`;fw`5msjo zme4O-DfKiYs@PVuiT95?jP(A>AYG8ohogt90%%=$T?@7?dCjt&rT=_pyKA|<57#WA+nJ|mXMWC8-uJCW99iJ zl$O^O)i&FEN`jCE#$D=UC)q|T2JPZD@4eej|M3>JtgyE@FLQsL$|{0U`hRd@j>uCa zGzVHwFKSl@DFc|u@nW>miUm*NxDOM@0PSgq#bnr0+(1%J2f_W=(oZ_>-dXN#rJ=7lULAdxM#~c(U}oIx6`=Hcj%zv8} z3hQ}l31?)~r%+x*2NbK42I&te1^0^vIZ6^sSp@-k#pa?-b5qSRn6133OHk{;#A=&D z@9kqOcxT+|GM*RtN>{kjxuhp}^$suYQ)UYZmY_ncieIi_7B>UuY}R&ahE1>3U+s^9 z^R%VoiR)Bc_%%~clM9x`%o4zzodEg5Ra4sm6_+s=mt`uFGmm%`%0%Z{{cbKa5&N0b z@4p3C(>joH4_NiaTd}QExmitYdgY8SINzMKj6t<~UnT}(rQmZ9Xg?1(&Rusj4A5I6 zx4p<6F0$x1)_=3{vX!O>C2TA`Oe< zK@tWMna+>PqMg}w{$RuX)1Q5#k%X2@&yAEasb#dTvWCNLXLJ-Uc7NWn=M^ApUJV(GB&%ZuDH0}?>8cQ7!v|^IjMQj0_BdW6Gs{k zm`+R0yPC8)9a=23J~Z`2vzV!XOnH|S9*|m5AKfYbwgt>)Z%K6Fir~?>)mDCabhXUF zCbBLQdFPwEi<`CQXwvYpy!}1`FWAV~+8&K*0UoC!=eTfpQl*M!osokM&+KuofgcKME7zkFeTH@0ngSD$h>Fa4)!*O^XEHKbx9jVM5!P%q?YDiF<6Tmp(A`-{7y+{`|{){;91?( zJ(cZ6qtI;9c5J~;HPz_}c&l{+{Q8T7nU(HU)BPx{sm~2O*3#Am0Z|mc_j4%E=Tt3@ zGRX|xE~Xu)@abcv&@IyV^{e~9RFW{*oS^kY<8xE^2H61`KEc>5M=b5kzd?t`io zK1vhj|oZ(=O7o8Enc__^Ne=7*cG z^RU9f4tsNV46HlA1X8xgtD;Y!4rLxyW~kCSu1Hoz9aqk<{MA960tTf#E2rcJzz(f(>w?ovAs5NIRzlm_&ARzEK`#J8ka#=0r6~wEYQ{^9N^N zRjR1(mMQhcvq=yFs$1f~(+gjsyGs=xKcpr{DwT8ZV(*lC^OF8i=F(2_jFzr!)Qc6u ztz<#v%B}2)knwSB!^`O*P7+K&0d}7Sb_Q@#M+f8boN_+vi*C;Tw_kBzRb=eS4y4+2 zW3g=G{twTJXAiBP(;(yABO)a=HW{ev2`}J8?@vEnqD~@u?+)8OEB&$$;KXl*r0?L4 znY8V7kHpfv5$>a_#t^oiFwD#=OP`RaXJ2UT5^Q;lbNMR7`H@)LPqSWNxQP%6pWJ0{ zSC1Q#&@V9gQKA#VK1}rVd;;jy3G*U|_}zEcL-Y_579{T6=HK{{YhczZ=#2>kyZ^}v zOXDibBeI>qk(icN)ZrfeA0=W3fnWA~5!P}tTMDmnI%ljWoC0$#6AruMtYI^vOfwf= z(4h;wAUm)e)ev~%L*pd=@oWafuP!B5e}UU0Hc@4-y}b-1(hj!_YO>;1-%1Dy2#;8i zs9&4{vax4qP7w##ZdWu1@7x~J8Ug!y-v8!X?!TxYN5r z{a+2jHg>(0&((LjP8=;doJ`^S=?Yp(vQ$5zK3G*UF|@qRbHMaR@lc~t!Fhp#x*L^?rlD&va_+M&kAa*ypqP3-#(!}Wrtmu+?R5W%3euU zxG4TcyW%~^550huF8KlMja7)0B~5(unomDR3ezy~t8v1dPl6uyN8V9Sge@3J zmtVrId{xp9-&as(3LVOXS&G5Xs}4BgZcVWgU{*Y(Bu!fYWgF^R}sW0MStQCBQ zeRW-fT}598t5+~dS!GA*pW^LV<46_a)tqsJfS6T7T)}xF`nix%k$+;Ca4Rp=3)KrV zRn_u?A5NadI~R{tGa9wJQjDVu@jOi@Ol&Wz`7eAXKo=e#78mtwHwuGngT*_>SItfW zr=*)qv%E!LW6<^2=v_DhmZOr;fU8P{oWQUxML_fWno>B9WGpGpQYqu%*Z;=9L;&K; z6~EmW2fl@(|DP1!|KeXHoz2W_gl!!yjf~A){{stSr!4D$s)Wst#lR{gNl>U_6u52? z_LfDmNBd612aVC#NVJ~MZx7p4>!#qxS$hb6mK(s$2 zo5K?G&UNAYmw*1>-Nm)XkC;xvadh)x=#yg2VJ=T69#MQ93O4 zw4Gq05^{sL`!35Ug?%|ZkyNYK6PQyTs{nTglA0L>< z`c+t{Ae1l;V=OwxtM~~SxWU68ijIKawp5bv;l-X`(k-!qM_AP6M^?8K*DJC1;vVnr zJ@DYljwR&>$Cs!~sA&7{4MSZ9vD*3GKC2*G{RRUoSj)H+C(zuV>YJcA8n7FLem8&< zD6$o%iW%h2u=p#Ftd!wYIF4AqhojahA8Ba9BaeZS^s^u$(oceE>y~PjqIBh*9~=Mk z|0R8_{+2#E)q5bRd_%P1{|-^*|I!%#KY{3i0-7-TC!~8%E1l*W*l&B<7{Nkuvn4Pn z2viX=Vq$ByL?WzkmUQwSUH~t>BXE6SFb4~*%TXN3c=U4bYb56rZau4Ab!q;{&td<$ z@7a8Rw!@&H|3~IfA9i>WvmwG@d=ZisSQoadZk!Rc$+Sxs&RsD$sJSVe};j&OZ z5z9qbz9!M-0@gZAD|!D2bTK(aepED8`nT~y+VIuSI+cwIqba)xLS(X1^R(NRY1F!A zmnPWyv>B|BlGn5gepyS9N0Bjy&jrkNfUZcc;SJJbC8ll5G)n`xDjy$Jb2G4W)?oLL zy+Ue4`X~|>p+*2>wn%J{Pm1Z zBVa}nR2rqzX-87l%a#oJCo?nL#&CR8FYOxB>+sFDAf4|V)}3ee>a^j3#t*`E>^Ic44 z4U83cGSoDIDM(43S8%lRgL_1g7PNR@Y#XHuFG-5*N~MD6Ry#NrS1khZbR$NpG~GS4 zi1opa>`kG_&#tiQyR?|7gP_gW^NtY_9G2Ix+j}ZN?Tha7b8xuXLSHei*v1>1u7ej~omb>a3U?hy#xC2ZZ zM~ut4I2=chjN(e*3QP!gN0>*5GA+yV2p3SJ1?<@(jkhu6IHmp(T+n`bbz4B9~)MFqDqU zVg+KgDkN{>x#o%X+g@|H94+M|L=|*1RAesNO_u059}quHq;_R3ZhZMH7Ob^aB6-Ji z(F#^s;`Nx~jCTP{Jb497u%rxJ2mM*BL&(@n^efymhcWK4%+S(0oY*2-BVA|cang6C_m70oe$nvGTU<%sN}732SE>C)41iD7xfNvxb{T-tPibG|0TB9 zw1dKmAiLKuIbQ#e`MW)qRz5S^N>J8FmE9RF-`8pf38L)MJlqj~?*QCi08_=+Z)er1 zax-EaVn(^_q$iL1;69LmC!jcW*nmi2!9#`HYHY)BhI&B>L%C~%P-h7b47+a66K)>! z848rK_2x5u2jmwlsE17EmGOg5A*FA~46=^5g%X5-1g2pvi9KZvgLopinEI))i5P66$LV}f!a?MwJ}=96?I~PI;xm<@7t!s)@Z9gY*?1%Z-4fJG-N(~0Z!AeieL=vh8*evw&%t%$KM zrU_g)e!^4rok9(kM?ywfd30K9T9Y#|=Yk?T%E%dWq_+OC$%J^WeXn3qp zeMKjf+Zs(VX-zXH-@(RFAn^!!xLG*th*>x-JT1HihOUXG*-PY+$&yK2(X?aU5n4DN z{53o$#;!833VawzQhA1Uoj``b5NeHShqFv247fWu_1<1iZ~u zCXP%^>y2x5*%6BuT~Wjp-2TA~REcJlVV1F`vZ8Q1nB~+;Q|d~a#-^%5V$k?-0$b}B znbZu8S{`AURG6%_WMl)E8%RB>jGYd!icfka*S&+X(3<(Dc3LT#SK&iW7`v%nI~4uy z5O6G!MYTGi#gVCY0G~){EwAba>SPA9x%0H-#v19U}I1M(vot^eK*KPIG#C z(j`A~KMh>|pvYT}N6h^eYW*No!h8w%>rBV#`u5An(2_d=f1fE>VW-s`PXN@;{4&i*8Ti-CN^_p4O@vXe&v!!|k8?=>Os` zy`ipZ^RX5ze6WxlRaYq`31hFIN~(q|tp#~}eu(71{1V>0{M(rQN*t{xd^;gEpFEqA zOG%xqOGceUmqZuCJ1;7Ldv8Ll5aCOA${6->mNCTp8u%$aniHjudJrYVozLH)Jo~U- zQ+)ZSC~HJ&K0HemfM`kc_f=9@uTxTtK+bB_FqtS6!mF9^C%M}g7JUGvZ9f*%l`=FGF83rWgaqrMnfAdY$Rr) zvaHVay;4V;b_sR~H3j>zB$?Ip31q$NT(fL?*)ijNR}^&=+1sB4mVGU%#YN2QKO=cv zysQ_wydLgfpYM-&gOK^tonc|zlTy-}sYhe{II>c*n(2)sqQljp@2KmhNzFntV9~Uv zW@M&jp@}8rj7E9HKoL&23-S<+sT<}O_gY*F;3|Fig-n$-yXweW`I=ijPwz>kc#Zb5 z4kBll9+j56-fuSewlcTX4)d1ZsdepoXAq$Goa{a1iS6Y`r?#L6`#SruGEl)59mbG9cWh$&1D)A>^ z!+6Q*2NS!`*CEfLX}9BGQYuy%eu1mViMt$@?uNVVdVcA}#BVOpGL=?57l#9F~L-$fP%4FtdL&7#|ETn z-bU()X;Rb*?m+N5qharD6X}K$3K*r`D0trUd(w6>_)Y-7gl7YUD0Wdtpu}CN>#}$Vd9IGL^zmDJDeK|a04J6l=ux zL@SeTN%*dhOh73Px7Uh-(GJZ(XR%r#& zD~f$1k^VpH2Jyd;X!bvF=%ym8f+mdo8E)G0EwW^e`u;^=99xISa6v@4E=kpan(9IN zwYZbm9BntsQ)0(^2FGJH>RLsMGzs{8uQ99nXT)RmKAHZr8+$7T&z~RvenSP~@Bxld zC6cknEeXRNxnU4Yc-jX&+yPc-eVzLWc%4=8I@0%YG_dw)Hf_z>QF9&GW{cVCgW8=u zf(`q-_G3uV?EmzZQW3k{G$EriITFVqz&ecZR<8-d<R+(T&(-q}h1`5GI~PMi&I zLL6v)yf*c?=p};vR%Y<{EY>otBPKIG8zEi75i7w7 zL4;hY{}u7~qW~(cIP7B2CHay^q$+csYBp>;A~RvmT64BrpnrHmBdoeQZ{QNx^ugGm zwPCq;BQm3W!e|fn?n_~lLV!PpAe7r3)_+7H>rHJO@poNw3jcqb4^@pU07j1gZ7ETw z=HZJjj{f=NoZ%yl7&;VOS*S@Al^GdLg-KK>CR_}n+W33V?hodZdjdU-@J-({Cft+0 zQgCozOyBdq&+XYo&K8-3!<51Pt;g+L@AKUIelI6$&waz02Uz7qK^oQJAsHeuz6@6_ zDl^j0N&MS*|!&59r0A z?y#4$Fw~LnFhnRE3>FF|8Uux{NN1`e&XMylMkpXe6|s#C$TI zv5m<$~4HTtI}bPQ*XiZG&?Sh+p5R*VB=`J zuwfUFZVw?*d>6=z*&qiH)E0epFSmQ+wWPw+;+GZe9h$b=WXLXiZs>kp~6V`ACfIT?ojn|v)>7F2S zYN*_aoj(Pe`sv_g+f^yPfKBb2&_Fh6kppl|Djt)}1#s6Ev<9x#Jz= zhf%*|+!>yiwDgzHNJYuxF}DWmZ!F!t^B#-KtaduPPRa{$7~x$?_~zvsx_^3V)7*p% zvqUs~88*E*|3r&i!b%Lcu1<4^NOn|bw9^4XCjD6()^fbrww9OWc>G=LvkN`S$vgdHoV7ou zA!wcDblzGu3^6EB64e0VKdea+JGO4iE-HkJ&hrmiyxrW{SZ zH-!xqXJkv}=6>cn^mP{JXPMjc?rDNq^KNm~%keY5d+zJPLr<#Vm^Ib0Mq1+hIqYZh ztFiC-FcwG449WM7<1pRwc$CLIEYK%sTzKJ#33ACGN0qzo+nrsxM}qH{SB?YfBad@( z3%$K&t^s}ewFW~8K-5RBCuvWs}(vX zw#KzL?l-mOjNVdz1aWwQuZhQCt+JnhktKKyBQ;<@bM54d&~7Vh5{dVq!5OYQW$*qKavK6WFm3sBmS!h5+Lqu6{W4UTd!*1Pm*>;^HhHBCk5z~bJRg6G=i=wz zn0z^rp;?nuY+25seAVz=+D~v1J~)iP{4?P`ey=crbKtLw=Z`TFj+*#GXh913 zQlr|6e`IHyEvgf>cTl0-nMujjRs9y@{z~zop^b`$wkfMjUe{J4SI)cCpnZ#3OZ`a% z+4za%U5HHVorqnkSQEo8qhu4^CbDYC%r)KPZm>^|t<1p#{(yDuYP<(6)C<+9&qlNa zhK-9rbqfL?14-ud<607|5~@*{+OTtz>A{|i!`z{6lgyfSWGvEtbyBUQS{z`?X*1H6 z6RlKcBlYbO-%-D#LwL5=t8ja1e~YQKPv4`kqOP>h+}Bq#YkzGY-c+_P(-e2lFw}0W zo9ff^^ZBXl55Z_WN*g}octkAPD7afSWi(_NWt6mx0wynYU(2S}FKXlHN1&;yZ2c2wh`Nj=QZ~MmW zB6BD%srwZ%b_PubRs>I2P#-;r9YUWprxujH!%UHcOmS|?qc%K61_uzD$RJYBkgbwG zSo%QVNPleY2ZE9QkZ>3*h8B`_7!>9YtkaYga+~`->1K#s;|m4Z!otgxxVDR^+MMn2 zGx@FtnGsI(@PAuCGqY{1AATp9C4~Q^@zwtA(aWvte#3I{ zKrZf+0J9;%*k5ZoOsgRi&g;OP-Cu0Uqw&=1Y(;yoCTEu8vY$RsZaLj{9Gu+HqKdF=- zPqyQ}%oSfT%^#6=hFt+5*(Ru`;vDI8M=NV4bnJ!{+8BI9XRT?qdwnrx7J0#~EG3b5eSM~9o z7kXEDa~ss#c!Cllqi}O0yH)$l^6$u6AJb_)d2nLng4c?zj1N^7yN{2@1XLe{HepU; zP`FQK#RUwMSO*uOaDS5t0B*~lskZ$-ER3_yEq_7b?*`i=AI6NlcwCf6@vKf;N0$wm*0O%zsZpVcqcWp#ZD3?eQ z2#-sKE~HoN%yQ#|qcuuMvI!%daSyEjBp7d;Nq_nrc7T31kLa!`@#!UG=U8I7-9%n2 zDOGTI=SG(N$v&_NBe>Dzk3O-qi%I!yNWMR;%4l0>Puqt|uEmjjU$*XNT9SCH89Ek= z@Uo1Ea#akNFo5$6>oW}FeM6Y9#|z7Qx$*aeVA_w|?#*p7M9>q_SJ;i=p)ZUltkpzd zf{{tm?a}>X`skmhA&BX6&^eW{MpnVmEyo`0-gC{FLyVMKdGLrA)x2AJZ9=f6-^%Pe z?OGg{pU}kWrpkSI$2m-alv&py0V9uK5XbhXV+3;}cm|vTLgedFi7#xLV#EnBzk#A{cz%FmNI~u3?ggPl6B*4&(=Ku`tQdD z=b?g1<1vyaP?c48qHtua?CyyQmm;EhNzzNX??(>XegdagrEBljnV$5f0RrgH!X3Cv z*W-hCv6$9`ax19*9Cs0uR=9ooUZ{MOeYgT5UlQMB;1rO0_#ODAdZaVdf!UAXn+>!( z+JPxRJkWnZ1QLYZf*)wTFaU9eEru;%4lw$2fLp-5FpDFX(1oxCw0)!kMqd!$A|U^v z59|S4e+N(;2y*m3hy`Z=dZ4ix=rZipNn|_x0y*+mfF`;Vf)Sc9)b0rN20G&?8u-sp zqZ8I=nB7y!6Q*C)6Gwo|7sof?2x<@sT>xHCYBS<`7@?CIe~@;V-cyY$Gy$40Y-iZU zQIadTXBa8mXV{Mm^XK68Fdp!1I0uL^j1)vj^TG6TG@KAfNc}vaN(lxvgQo#5D`VuzG7;HfI zf%;N5%ot+8@B#ahHrxvaJ(l*=>V!-$T`4Ttm5PU%Qf%)Af#v$Z@!I#}P4%i0d z4LyJvkbU9#p!&=K+qg#A68(54Tzb*kNb1ghDJXxoALtKNmbU%+GmF6HPG44Eq-sr} zH%8CTI^S`Z1%JT8s?~31!FKR4E9S<9{SWCsF2e#8E%(j7yT`46@9q4bX(MU9J>M= z;9kN5X`z7tkOPusjcP}XT*(p#6&E++9gqzwAOXlmbuDOp$?GHRF43Vxn%YR>G()(Z z*dYZ7r^=U}bvvzN3~0wP&@}&#EpvK!1Ok;$Q&ZbGuj6T2vp<< z6wE*3U_QD-qQ?kuK9PSVp#E~fpJHJnOeBZQ#($l(y+j66Rt3oqD^|bc2ET=*jFqqC z1pjC;{1FCZ1Z#s&3su z0x*HFTF+`A0ZNArqcb+6_t&8N$Ux5QuRL34V(!_TQ>rh;!vfQo4)m9d>H5%)DzAua z4~P$)u;)X+Y+s=Wf2u>$D?v;kA%uX^7P2qRA?pxM(Qdt?;+Fe7goo0tgsfx2p}uJ( zEi^Gnr;H6mnC@BFswHfJ&|wrTqw<#ge3cWNek?!tsJuXw1mR+((2+peZ{l43-cVfl zK;9Shp$b?5gp1Jjh{bZ!oLw@2qJ=w5*X{F<{r`%KS(x zi-MWLT?s@1;|nM*gDYWgB=b;0k#yH#Ok)H}_DfY2a&Ph*%}_#Fzcz5J($OCukPhw7 z_ecrtPh#gI2~4r{ZywHo{p3#T8@8#`DhHmyHmGe~_sSntRNk=rS0B<=HdK@g1JhO& zFng2UD26nY2C}omR#Qzxb^9bp*lKP_{j(1%R1S)P>S=z{JKzQ-_igC7Sbte7tt!ez zfo`p_r5kYl!a(`#JZev@M?8oFv40n8Psm@O>;`m)7I%zGm4UOkRHu7)ANdRB5ES?U%}e3og))%=<%?JF z_t!(f4j^Z$A9PlC)foY7Y)p1|41HDjncAA{%pi~LYi>2+W;dMO4P^^?P$QqzJ+Px3 zTRm_ZVGx=um!ZYt5Q3y+pwzMD$WgslFQdc}3{z(5sY&sN=z|W;cZ*QGsS=^Hs8+Ot zn?A3kY>5`})@u;_YLxau;UYDW{~$eF-32Z|&7w^h;W1f4p8s9}BjyLOmH%8{bFQMs zWPJcn20l%qAijY`%~f$VR&nFk0Y;C#hoP^fMf85ghsW_4Ql?&{=;6SXzbRFlo&RyH z^#)8wR=}%<{Jb=1w*;f9BE}?n^>HiFvL=gcdHh1se&v0O{gisNw&g)HQehykMyeH$ z`{9ztxE*OngbvEFbJRK>$$&&k*XCrSn1E;0ihUo`EP3W{x{nq+nk)q%C#Y>-rKJR< zgTg^w+WJ_9k4V>bqaue@OzC6LK|^5vT^M>cYKFWGuW2 zRiW$~+b*dPe_kaigYjMsXf|d=W?lVS3^5hA@U>YQHQ>vyoHr8Ei3Y%trC|CZZ!#m= z^6rS!AxW6xTPY$TSXMCKDIBUJ$Ooq=;l$@!HKGet2qWYc4zXy~3)2%dsr(>yX+~SX z&4s09`!w@U8XhRVYq*bL_lFr!Ju+A+%rOX$mp>}Gn|a-U0V04FMg^vA9&PkepkWQh z&uF{%^=9_W;A{olS2 z)Yx$cq8#toMwBIXf6@W^> zXBa%ogy?;A83;Gsk-!YkNf9c;OK>il0+e3aheQku+<~+Jg_DlE?{}fT`p0iiM>3-) zwpz>IZFeQ|k;Qn8sept)8y7@9D*_(o>nm`Pir?{JknEqL{a~+gm;8|WmVHKi{}}pH zCLgUnBwN)pp`V}3FmEXogHU320)3zh-6r6{SZg7AGH#V$?Bfn5o)71i_wZuHjbWC5 z>Bm(>@jB3Lqr!!<^(UBt>8Tjc3(0 zY#PCZKaBhpPa&rJg!ikuwu}eN1{B|oG-{uaelVvt z)-}2Oj#i6<4bVMN08+AlqJLFE;u)b$r^G@Po7$kuTx%K}H2K>}iu(NBc5}~8i{%tI z22ovHm|UzUOXJ&g=N@1fg{kbKrRJ z7mE$eyJWvaAp5NkQ1FcqP?q%D@in%z3#=tC#^~$_bZ$(KVeZV`3q3=_g&LcVAqZwfZO}nv>GDWr z4eb(15|TY5dLyw$@!SeVA$(ztJww9&gqdKR9pv|E_9cz7?pU@B>d|{7S}!Wer2}EN zOk!GNP=5!iMDyg<3d_oip(qb^anN|;tl z#N6utx=c$XVqAjz1}?2s(ytxR%QoJN&$<8NIThUq!;@*~e4Ki+1%! z_nGEgLwkGB4ULVMSy5{d-~@#UafVm^d(ncA^cZ_wLYy9*ecOFcI+n(GjLyFWv>(iH zZXW8zSprc^=kUsqXD~Q@Fn+$eCi~S*mUTnp{Ewkfo-i{Sb@yU zblSKBJh6KB1inHa@`%1H!oS&V3zgG3i`WA^TA zXNJO^MiHbQp1KTIK`!{^lxQEjrwJojL5Z4IBfrh3;peIEN>{OY=x%T(AhgB)f=eX( zS=mwouk<^&K+>_&dTySo$~kE5VX2fhfo$l4cnAaux2`-#N&*UEJSY~a=CXEDYf7CL z?P3Z%5~x5z%!+Z> zE5vG(Fmsurm}t0jqSdbimC9z${>v9-xyeK;&@wyRIoTpIwXCtB;+1E(<|c zh9A(J+V&GjmL(TA%*Muzhrm0#+@iRTF1X+uQo)uV6X=XA*i>pHa13Lf zE*K_JOU@C9NLa`+bvI+fnlocA#BL&IR`#$up+wzxYZkzlJNQF>l-YujmD8_vv?-@w zVY(l3qsjns#>@cDtyysFN+AqmQ(;1hpN*(2jjJc6D--YC<^v<`9s31|X}>L@>xqRE zk)P|~k6AR~6U&jLAxNC6HLR1?$Qg{!me|)%^;3lwV?l&vThwDUOhyG(gR%xw!JJ%k z6`Gi9OYPd}cA<8P;Z@yGBaWiqKXUff+7i-!?uId5bGXCw!~#S=VGB{R>GCT`CURX} z1LrR9HEv8;Z_OUSG$Cr}bKO&89Irn5wX8UHZh2|u&R_h@n)7IPy!uO4Z2J#70?mCk zMU0QIO^d=bD~T|7d6S^VtG7_6z!p15$D;%cVjuXSy>UI#k(d)~C=oFcnyN6KSp^&I zY==SAm(E1<)Ct5En+E?R(;+6&&3?Ec|M=pRieYhw_|#LsZTIF2>5B?rEXFiyIQ*ji zU>tgN!idmxt8s8L%O=P$mknQ};^OnqoV(9s!gW7p+D3X$3D4?T>qC2{w@Y(*mLH&; z6S#O@OH8&Uf9V4!t!2|`FQBJ{Fk7^CS^!axXcrvwu+FZV6xT^If3#Xp3~9O#FlLL7 zP`ZP*!8Nux)K+#=`6!F@!R$gade62=!zIED8d=ooJaBgpn$xT1F8=>zeN2&Jw%UbM2A4G1OoEq-F3} z_+1f7r20!25=W}o>5jqk-{lGBX4c&_bI{qYU%|4x3O{zfEws>k=->F*Nu~DJj zc43@r`5$=o|1}E$5n;g3*nflXduMt_=`)Ji&mixM@ukd+XJ(%3Z_Xn)2-nk)DKY0J}M^-@8fnyHSp%JJ`4ZW}k3w<*>qTd1S?kZ##8$jfl)Qs^>6H zLteIuRS5}8p~Dfr4yCNzT)VF0yLfZUPbB}~LhGhOy4ND>{erw<2o{jG@#5r&P_XDqp0g50{+K?{YpounNvxV#^(xKb$S zpVgxIem^hSYcNK0Yw`vqZ|p>080Vj?PB+-ki^DGom)Qmmr(d^2$J0I-p9hn}*zOjDup$K%d}Zpkd-IL4H(7SfXa`Np#nKSfNr!`XU> z1?Mjlzdsi5j96{`5*bgX#m?2t(*FP;Wsf~0aWGeM1xNCx*V0HtGKWJ_A(eY(^=k|+ zrsj+~-t=PAw51JiN{L9kl3dNM!AXbR8ZXad202IPtYwiM!}>`E%vw^hpue*UZ*NaFj) ze_lH<@%Q5aMv{Qv==ySslnr=d0{@{JZ|+ZH_L5bXRglnj#OOOP+R8k2`<|AYRYrmk zz%R0RFj=HUu?)0=`JFyO_mJg;AGGeD)A7_ZyM0^sEJz!HdCC1u?>bC)>M7{64?18N z{6#gP1uWR@KpkT_i0M)TtLr5@^Vd4ha|Zo*jl{Q4owl}1lWrL>wpzROSzGGUrSz)s zwE8lzH~A~Grvd~#X_OwQg?Jg1^fDrKkHU=<@Mn;dNe`%pWcj(rK}9rFY~iudR^Khx zX_Y(>)+c()O2<5!u9PqJa;@T%eLOxhK`=NzfI36+^iL$PI zHRJ>T;%<&c!IkuoNy}ggu}kqAcY!H~8*@&77>uvIA!Nhl$Xz`&njS=a{pK&(YF-d5 z%-U(^;C5(221%(h)x27bMAyqn(R-9}bj_f1lh&MmQ9+<>%fVKoW{QjAsDkI}Ma(IkW2L8^ zlDaG_N^D5O%mPMwb2dk}KGf-!uFZQGt4S}Hp!;xS74hc@;|{wj?KuX*$jyk#G=F!bMR5%FQ&I54T`>KEZPdRY1?!7%{a5NzgF< zdCK=wdlxbOm2#2AJf9S*+l0bkd7!;B08PuHJkUf19nRuh!l#BZAtzUCD**H-=qZCv zOb?x%gGK!N-_D_&j8;*L!2b9liTUFP$$zS!1sFNoxcv{UScaD`-WbNj!Di38cDf6d zQ>;luqT`lKC>RKub6Q$!JEy*mM6#V+kvVzYS=@$pllBBmpN{tu*tYWaVn~UQ_I9_G z6@iSlcLt`n!QwkZpMy8n^W2|FoUP)5k0n7i-h+eQEU&-&J6i8a6+eBUf4C?96TS>h z5q@Fv4dpMdgz#D8Ml01d{@CAKlk+>d_C8 z27g@6=b`e^OlGM3`-|!uwC$I~VE{XvaYPI9V*R5ZGt`|6C$K>l7)N9q?67>!yv@fj z)Is*b(e{PN{>JdzkMYL=(jXEvTQ$zv^sJb~A5!FX#H)x0ds#-z?v;8IOgJBCwu#@y zTWc|YD(&ZRQ9qE&K4%LhD&$6!qnu#;#fVzT$XAtM{Acm3t`-Bq1&_)e8u`eE6kuxa z$hcFa0S~m+1_2Vm1t^+hRn%n~!37!=KH4%%WS+r;S1QUpto78WAH~-8=Dyf%2B?|? zvrKypRGljg)#=zOXj%R+{s6;0YUX@-g;93yy!1m(wf$ufcH$uim{!lL%Gx+8G^kT0 zZUTj>kn)w$|r|!vHCs`ghA)JE9$FUS`7V;rN%hasNQbA{T7;2f*ikG|i;xVlO0u|=Scr{*6O3S(;VpP7k1tgt+^PAOeWnaeqH)Tmacs3MF% zv{c^1$xu&si=0KGC{>�LPkWSj|f0X-X%}Xe%v8a2sL>(ze+9iwVZ_&%vw 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�%RCFOEKEqBXS zULUc#DEB6rTPGiFjnKzMDTbdg+fO(QJ8Gyj2hXk3`LMx`36ytdn0~efk)3yGB zu=7M{d!y1jvlt3$d78VRLuAx|y<;r<@>mJWr*;o_KmFasHcuiG>`J2`)$J9D>Ai3l zgj^$c2=C!E3SkVy0rP`SrLhS1A)I1g)ta3gthNvSB!XTbvmAtaH$pi~$WI}?lt8f5 z>R=Fxvbxp~H0EB{onjACRV1F49{gC#z*ba73(dZAgyB{=F1v$C9j!ZjeqbChQ<}K5 zNFJNmncgW&G{~@*sZy3!6g8wwuJl@0a2G`K>XsIQc znpSns@fDD%=kyMIxj#YqYaZCGrVYXT4PNjmlP_1zHsXsOpSxZMySgh(_|LSf% z`hq`?_t?yBmzBRnRcLfm6=z}D7CO{xk2IOt5-r+I<@ODL=&F?}M1Miz`9NU(-3E!F zpLF-LL*b?k^V2u^bFYJCRf|Gk-HcdDOXZ$A+u{sPHo%O46Yu3v?@V)WdrIn9wuNLh z>%x6Y2$&y^;};wluU|TwCXzz&Nw>MUg+zuf09kTY%%hkfak=$_P?cjERo+U10Z#!k zXZVSX`!FO&F;+jSIG}#cOo?>74)FQl>|GJ2ZRA0pCzWHKpJe7%C@aR$skwASU&x32 zpzxO%|JmX`3;MIyFt}HlEcj+OoYtFr!78Uu1U5M&783~hN_6XBPnRUmjUA1RSTu-! zAD7DP(e4nalB>|mv9`*xd~DFz=w%4HeUJ6-l_6=?VwyU2K(I#DR)tefgA zdsY4+(`qlh2Qo}L+mt}eF-a+Tl%$RruVzbm!8Y;L1i9nJ-?7G&`-S%K#53h3vQS07 zBkKg{PrNl}_Ew^Hq?Kz3-BJh0L+;a=q{`RtrYCoK{F1=TupwuS^E|gbJkOKwV!t5m~%+@3ug$zx^;-%xLzb5 zW!MrrQpn0B_Spvo=+MheX>!C)b$>gaUTdf1@G_?`saMLSrv)&f+9{p0q4CKJRpuVM ze|9YKVbPH2aA!zT`5k9-#m_v!XL?8RkN7Hv*ep^z;b8iwYfP7DFq)uz;0fGaugVXp zM3(@3P&CKa3Okc=Afu{C2Hz_qup@eOFR1M%xeK?MIU`x4aSK zIHOVV42b!Mw@72oyoDeJ{X!hed}mbg4hBCFf?&K~hbrGaeDj$;-LIniij{YZl}3D$ z64NuRMAA_Zmh0P>EDCdY)Dr5bYV;EL)Di$1!LDNC(3I~KDnu8wypq}SmM;`4MMf}O z&ZayTwy9~ zDfZHVUO6rl59)ym@UnORn$o?s0|_-Wv;XiL*ex6!jw&24qI!#GF=EDA1k4IU;7BJ;;#?-kRts^Q zvP$VQ>FE<~3jOYDP0C*|9;+P7;Y^yb+ZdRVg?%War(D&N*WUo%k1$f++#cao79VAk zr9E^vAKlU>PGXNYX6I<7IUUWX9S8vEOS`2y#y)m6(DT)DWUEMS{DDn}Zv?J}BGJ6< zb#SaOY`O4<@f&|Lp9&;Qs zO%r5%I+E`Ws#5?yfwQ5c(%gW3EP;@X8z$(-_D-G4P^0m*&=3;l{>U|IW5lyv?m}pT zc{+lW-O-^mvaJK-gnb)n~yr&acNZ>n{eIED3iS+k|4VP>WIHhEwAlgX( zd}#`yKZHI2Gi%GZLS@AFkGG{jj4p{p?50Hele^O)GR25Z5ke=Qzw<^o=Hf>yUjD&! zh6gzl%VjChdN6n6j5?}B9$V!A@2_j7XKr?P#9etc^CpSJO16sG3`g0IryB`G*kN~dqkGZprvt1 zcpGIFk_@6vqn0`ByU}uo1T!QQTo>4*HpMF(dL-tJV|%D5-23weDcqI>PncvVa?5BP z=L2~Q0tGs<7(cmzLlY6s7FRQK7XMPj8SC(wiK0zz%j5dY`aJu;g8`qSTJyp&_{<35 zw&Kkm;P1`a>(EVx1NE~UU&D)<15>Y_sV_Q6=$X1QGSU{DL=AOX3~4hijO$%K98)QVZBRoC0thMxFbC zoE7#t1Z!++glMx^{Av@xxF(9yqcxXm-&~p2A_cHd*~62eFyI{7gsq!;A>nqIM|7Q8 zmsS{af)HdOadz1Gvaza}EwT1`N3X`*p$B9em8#TtXKBXO1!uv)Y8hyY&rl0+_G`5C zpVnG2hDl@};L)qFCSX7$1n~FGG#BmbV%Md;1G_Ouh&`e?$9rycsStUfk?|I{mnjYo zF?}eQD-JZhMCBp+HJ??GOJa~Ub)>(tTQVYA_V!Z}L%b{I3PV9+)) zJlnTj5xS&RW~EFbNw~JlWGpszc1g~d6`K0FrRr;-VXeTV_YOJW8x9)Mrf=gh-(j}5 zm>#5Vp$x7Dt}bIiw6zugWCqc4ODF8}U6zL*#Cdc56Ocra->z>>&wc|!EFy``qC>t5IPb?goivk#mDJuYgaj3^SH1=yu) zSjWgljxr!r$I&?Rt5wvwmZP#Kd$^@s*gf{CMKX^a-|L(es5PMW42?+t`l@JLd`6!Cn6Iw=Z7!3lL9z}xUOrS~tfPLm{v(EnuyBN(< z;ICJpZ_IseRzuR$9s7csfeZnb{e^HRgO)z+BpOlmsFrxyW~*N7x%ADk@MhP-FP_f{ zGl6EAn`jKHZBrdn&b7&eni-j+&4v3btJjv3J@=s|k%K`({xfu6G?`V~W&VTV+Y zA5~K4Sv1R5-zV~fe(OD46RI~3yYwyW$KS3rbj2vwc`c#Rs{xMJsXzXB<3@4fCF2=R z-3KLXa+qCP@BHsHJ@YfQjA?Fnw&%e2pAhu+>Q)^ZbpJpfg)p`hd#B5xco~`uWuCUB zJPJ*X8%BfHnPIJ2c?q>dBYY>0FebdgHp$7`DU4p~Otf6;qa4;+g4MLNQ? zSbx9q5sjo*uVFELJS~D}X^gL4`n$v<`r)Pc!GNnDGT+bSxGx0atWuE&G2}6i4BGMs z$?75OOyAZ%{Sd>9xlo2I z)Z!I(67Q|R1j&SYu_mkcOg*-*JJBEf8kt}(Xm;|_9dHcMq8b=9>Hg$E>EQCeIvVK+MIv!U28u}smDX% z{tTmct)UAZ`(`9>%ANE2O}E{>ZM)WL!QVX;v76{B+i97SaY91M;*KDjiR;(J9OjQR z7Y0c((cHqRKBPp>W&vbqE=aU_1X zDRXs{T!nkpA7ecm$^#LZ8srF1q?QUqGjt$)2xK#hT%@~#=77f9*{_U=Q2i#G8~%sB7uI>As;nD{sY6@ejmehK|P#`39!MOum>SSvT+#5(sHjk>agaQXE_YuXHj= z@-w|m%dXF7^H9C2zqowE{!z4rHe-C3J6BsEzp#v_yuXZY6x1O0G>78uRk2N)i7+Swtj~}pJlD>j{4>9o| zjGVm@uW!~X97D@@+e;#3TM!1QyyHUqszAI@`sDKcB%VzQc51S3cpmd;v|R z6>lcy4C2$Zo77E`yUywtg7%#(HhyZ}`#p3ogWD=}eoQ!N11C_?V;W&hP=2n1%tH^> zR<%GZ`gceGe7zfX!lg28sHJIuN`&tfCy#*tZ=z~`7t^jq=z6ukxH|JE9UMb%^?+IE z>()W=o!X_gD_@Nn%8{LG4-fVZ-u5U#{{3|FCiSae|E|32iuUC#er$Hs?LV^P8DDit zUB|2{5>6U?`HPBJ0uEaSpFqUU>eUSIgXS@8#~Ega#`K#fL|VPr_ia&|097@!v`RK9 z&Ercs)K{3c_@o*8?NNLC=UF1Tr}ZVMeGl6pa5uraepm^PF#$bWbXVdCm6x}MBvMAe z0)p<Li?UFVYE_sh;)(qAAhvI|K}#;?qu26&ghR|wXNtM<%A z{Q2|AC354nThWYVUyp+3{!aD?QaR?xorWr!58FQt;E&Kp_CtNsexJ>{&TAaJ8*%Sj zW;~!&5w~aZ`fxGA|JkHauYU5i$NQ8KM%2RcS-CImMt7Hi`u2#2vt0(p=dC#q%+H@c z1o{j7@27Df;(;)%5w{v26(q&H?-)Od(c)!9cRSWEKS>l)djVYe+c2NE+@&Dr@o0+P zyhGkJe8%3zSBBT&Cp)!P?)N-jd9fFP{fS+5v#!N`+Y^q57BbK^=Ihs=%qrp^&+9#x zvXqB;5rVsc^BvrxNowJy|!ciU*s`|(3b6X)aA(Ow3nr+?-nW&w=Sd`&Gr3qZ|t z5qsiy8Lzld#Lpik<#hdqV`cIm%pNF;;Tjp^EFP6sDPjCK?fId=ihCuAi{c1$?xv^L zKW6e(apb#q3W*3%Dr}>eA1q$h!F=o)e&anSIaAMId$W>j2Mho*@b^YoFB0(0ivbks zwQ^Wonf_d7BZU&fcipu`>NQq|%XPF%Zp>BzaIc*ZA9C>bO4xU8m?sxZS0Zqp(}A9Z z!0tZ-JsE*MGERoO6m?E4-}05mU3SyY6f3_^SAMfK9KYL5Pc|MyR%8-(vI``#*A-j) zUaowY8c$c*O)Hp9+ccKWJ;3QK)+YWU`2)p+1fY~)#sNG>Gie9%5A@&yD9s+FZzsLm zio9NDjjGf8{YDHRyKecve)%N@-?_f^h#AE6^b#d#OYa&aF1EngPj7ERBFp z&OjHF|5yDp{vS<)AX@16V)1l|(nXD(UbrQv$uo(hI(UE1yVS2zl_aT*jOO7sAaNip zVP6;uWdUp&0hjm5{opM3u0Wo_4?72p!BHVF#G)S(Kjoo~MqsJKp$YVDNA`t+}76SLHTOWiUopsL5GHeMnfTk6vxC0drO2Qrch&})Xiv^3)^XEz(5#uXqSfr* z`(bdoQNCY;e=He>$^uJJoIqA^us>|!6vqslbIl<6ms1R~2LQpyw zOg{&RWI&R@p@M&CLH%UMP7DAOrZA_dhADS6=x0}DqjM1riUd#-UE}_Nux?piskCir zscC81oF9Mwn&m@f_yqL&PCsmYciedS-f*AfI_KARq%LXT)7_%Wu&oot%CaD9Qo znk3j0k)%#R8kf659tw?#l)vyC)-iPv@$_Fsni2HiHbUNu2>0kgR0O>crHNP*FA~=Y znG4Db|BhFQ2N|;(lOJOkvl|1A$B&03wji<~z7ezw-2(9dy{9;&AKQ$-!&)AUub&}| zC^51ht$!9K2;qe|TY2SYiW_tXxhI?YZ1|w|B}yec4Ew`_HyL+J@UM&Ep&lH_euy*H z5|1$E5`RI=DQFkG1=cS}ie-7IK4u%gN$e(g9SjHo1Z{zL-~tg3^~ZeT--&bLuaG(b z>G@C;RDsZuW5efxh9sovV^9<0n+#C3xDA%?S}^?D?0 z)X0Fuu?r+R4=@>m{zQrTL*&ais3!@qchY-?L%y*%;u{fu{|~Txm9en+I3j_d54?Nk zL(F&uqC8>#pbwOL+Oay~Jdqy%4~To6v9$PIAz#E-&_i03pPG^{aq)G;et{p@=&(ev z#FNCdL^1IcPz#boF<{CvL@lD+#URSi6@hetsv;O7)Pi_>Dgsk%8ogG-DKF=1|HaMC@Q3y?w`+lJEgbNRpTV&d8D|0c6OM zPyxY6|M6&vtB9uKm*X)ce=NXsfCQqUND>G9$1G!N`UL#PG^0q;2K>kT_oynWBzwSr z%zuym#~VVH#0&V3`R_;m<4u#-cYwJT_Q|8I<$!dl7%ISAN(IzV)<1%Al=h9F?F#n< zi4t`q0b~PWsOy=*IZ6f3VTx-7&m%v72~<9qWDl=!zHI~+v_8EdS;Qu$V)*G8H8EoS zh2&oRT{6tdeGrm8j1Hk4NNgZunNZh(k2}JV*@U$;`!u5ysItkC-SpEZHgJF8bD1K{FGksTC-5~YQb`N@ z@vn=@a7Oor&i3jCRHIF##q)YmId|pg6=3EKmo!u7e-QSK!JP$hw*T0+ZQGtC6Wg|J z+nU(POfs=;+qV9(IWb?hc0cUCs`vKGt?H^`JJPr#%Lo`nr68<{iio` z`z{*QEdOXyorRD0IgEX;Z5x)%8U%-}E486WNkSsgW1HVnr z0;buo%nAk?y0S`!p|*ju?w0A8AyXZ0ywbDr7`o^QEDWr^EpfU(oBuj7Ty|eG2=&{o z>1;63Rc3M!1ZS!l^mVm#)yeUGQ)yh{Hd%(|*=VcCs8Hvd(+ZfN*zNTTgUMxYqw9ux zkw|(Q4Wn|D^hp@dscA33$*?k4%vU2dwuHjRbB5<0jbd3lkl8AG8_~#_ySo@xIfy3< z@f{dojoaI4=3UzTW3VY_;^-|#_-sZwuD7Pe#Ze@()H5K0hZv};l z;x-jMML`Yd(oq3Tqmd6SmCzjHgM}1Lf1qk)$uo6XL;^|`+bT~f!kib9YE;ER20+6> zF=(YAi@vV6i}Rj-DAfm06KC7o{Hv0b!O0+HYZ1i0+b{Da{uP^JmX$o1kyS>qv(Nen ze3JJNQ4#w_G$CahOu~dz7Z)W^S9iPIf|XUCZOl$9zejW`p>nD*fM4>#4FY zXiOD2))q#m+16f66}Z;eMjx{-KtsD19i`8e|`B>t$pg@#~MXE|lw!GcQ={ zkFzfzOqtl%4ox*OE~M)#WFJZEE94%H>uqEoQR~yQE@Z~KCru6H-K)l`$u>Nu&2iTz zWZmi49w_<3FCdfcNU{+j+ZFccJWUKb{-@8>UHEEF-%)BFNoJj zlDFg^ag)2!hU=zHYf4@bD1FG*G(H!et6A5wN4I_R2qd3euM+je^1xrv#xgkmLGQoa z#tREQxMG)|&9P&Y%1g=DPHl}DmzA!Q#Vj)x+ZcWS+^8Yvn$VW!n$Jj^p&1Rh*E`cr zUzxiwcq!ERQ#FSBdYsv-AIVoWaQZZw-nBK}rfo8E_O{B+ojG^BZFXn|q)V{uZZD`V zABOoD$hvF0*Mp47+i^8el`Ptw%f}-I#anTNF0q5hN$7^ z2n{sv>JeEt+|8R@3wPuN)j}k%O%ZXY`y(=zveMs6eHri~u_QYSlUO!u*V0|XPVN+A z{rF-g3Npkd3C;7h+vjdfo(ajGXuGUT^7mxmQ^{cPy&~5ty^NNV4`Y>D-bVE(_B|vE zadf28<%Sf7Vwh47JvWN(oIB6T?;4fHA1#!`2Gj~;8glB++zHzxOMRHO5|p3NPP>&K zv)!rIC`^EM0XBuY%gf)qymAWVZ55LaO2^ED0-wsa=}l*xN0*r-gdIy*%umpi^rK zAuWF);7=KQYcLO+;E1&SR`D`AGUBYIWZK!AV^3HzliM;owYXhXzL(4WW>3=HGlnL3 ze4)RpuyvC3q*e%inzx6WwpS_@2cF5?GR0@@`L?qzrpdZcdfFNtx$`Qu=0s6Lazp)@ z&1FPSj{B}g^r)+Y6dXU0<`hMfVmX6FaW$3ti~U zBN#HK5-u*tGS7a8lZuxc!gA&`4X0?z%k+a~Gt*R7qMqeD7R`-yVs_ii|8Rt|aLHu6G7rT2X3g3JrL74GK z+bW6#uLPmS$ZWDIqFX#C&=tL^n98&=gHi5*L*ju$*ESxlz$X|S>WqlMY3iu`Yq>(K5ZO{CN91%CyUH>6J5aD#AA(B;lh~9qTQB& zGcP7qrv9n+_N8oN%{o055m_OYE*!A~TY8i^H;|A)>e>j6H#2VdY(D8?(Tk4fvbCYD zkuWW$kV?wqsWwW=T}4649V=IXllJ7onSAXHamMjltxQ|vy4}&C!tL-f!uahx?i!*AjuL@#ASy~-7a;~C)Z5Dmuf*(?k#z*tnB1^H( ztV6S;jGQ5n3ZKEyv1er&OpaX=9_hmU#xMFONDAfPs%aC1hEJI08bxi>(mFgOoa{t| zBD$Dr9M`2X8z?=UllAlZ;bZpM+xPgqrHqWEyv5qxjT4(oq?mNA#^ZF&b zinCd-)+ayM=(3HYx}oFNN(4dy2>##_6Ytu4M!aAXU3DDW5<`MMcW?{sO~#6%h&iTd zVXvAo9~oDUlP`fL+?Ls!OYS~ptJsY@77le@Q(ew!}NGb!k<&^_o}!I2vM9Ktxwe_y}X6jX^%{f%qlNR zzNZVe-f=_To7yISp6beRr+5m>3nUtF;@P=7)i~5GK)kBP`S73~bkqv@WXc2u*Hsx6r>cS7Q9y(kPdoM6UYK!1assG)CRZ# z@L{pxdZ7$)0=)qUfIW0a7JyLTAwV5q3C=7WCx9o67MSXYq2yu{p8sS=GfAIshX=0_y*g$G3$k#8v!7vCB_ow3*-PSgK9z<{sN^0)kHD`3ycF) zg9DWVp?cK-oFJ?4hH!y>uo>V$YrqPi6;l{05DwiDCh#1fiv)xOaDlcef+T}%f&cf1~xf1B3uKfIt#hYS3D+-VgvG=qv<~6apP=6~+)Na0~DVz%CEW z1o%S(jQ~b~1ORq%pcdc})Dyke1keuhx2%d4uU8O|Fd(2il-m0NzNtWJFSM5j$}9@v z0>B42BKML2B0yqQ5ez_p(1C=ll4Y$Aj$hDMg^_&Wt@{88y6@qafaCyf-~%l{{?Zwe z1s((Vk$?~YCeTsEUP=HHh$l`j9Y7!AS6Sc`Kp)HzwU-7^0%A(@JxMDdoghFtfCC72 zVW162Cjt;YumP|Q!mJKL0N94OAq*q}^CapWf^8-2g#!440!sjb;J>N@@c_QyKns9B zBG3fDV;$@Oegg-{?-h`5a|nA=X%!0b>2%(Kd}7-D#Mnejd2??KKzKTKJf?k8Z|wyC3bXlX89h67K^O<-#^A_<=hl>;S{@UuXDHw$Z zvyu~kO2BB9W_3`D+)|0bC&f+f(;lRYD&JLAkRM1Y3N84&8s;D^yKCtQgaF1-L z(0AD#-8lJzHhdxdPkd+iQ+cfk3;+m+{{MMpx>y<6OE}oO${9I2n*EmxS8ke}2CgLf z$X6kzy6(A(ZFUyBoDHf7HK)~l@zEbqRdg207}TaJ0uQJR=nnKW@(=Y#d=ux_0;abD zqVf_CfD^T)GpxncU5Cr@bS|HV`O90r&?h)^1Qto`?kBOtt#DKX$$MZJ@`p4$X_TZi zzpAlP6a__E>d&y+U^R+)k;}B)sM`!9R;`rkQW%*uI*QEneyuy*d?VjWo`Al6 ziYv^$G=o%oqdX(-(>9L$j!#UcrLZ7`@UrULnCeR&)1GwJn*-et1~3H$gnG5Bp9bEH zOl8QAtTZGDn(*n0mX*d z0^W)~TiVW_aNpR>U8nwCcD7xlI+GYM&$Z|)aCcbN1H#p&Kcy|`?=iGNqui>aEHrw^ zFUq`%Jg^kmlvKyv%+g-CJq>lIK==g#FwN32b6U1eWfZmW zbAc(sT*~vo*~WUzBEe=#IPt8tP1i$b(&o%Y`(fqWpE$V6P52YglFJj(s=Ily_>>C= z?MsB~edUZ+mU5%)LZwVTb(?n1+lz`E!{4@BVCovY1dW;avF`WBDPsX@aaPUQ;>(CG z{7qZcHOTMcxuaZkGqHEdkL-S6_s($HY7O6(r+t{Z63+y(fgwtDB6p z(9izO`U2t3mdo_?qde%#|nb%Ml9c1swLzv6!Mi1}e3In|i8#t9GH_?tdrgN-~BqkX_> z6i7lV!YQ+rA}GTt;d#UTV|M;A9X~7deKtpAp0G%)l1xEre-XTzAQ!JLs>rDj;}lpV zJu)Zs1^i#e%!xChbLZcnF7r2D&iwxZcSVg%6-~`09GvZpT*W<2%p6_6%_{#B;I&ie z`v%I9{gT^iF_6?D#1)ZUh_dW7r95Qntv~1$K#=?ci74c2J)I4Y zrY3y`CVl+^d_lQ~OJfk-*K4y4e;NM7UTkO8HE%DEYe-nZ0&gd|x0qhetD0%`U7qvz zwA{JM3PjGwwRy)O$&qCfwK#H?Tg~1SyoIYsvin2mYi8@jI^}(0+=1XH%IhJc)~>-A ztFB+urF{tJHvQt)-RiuQ^l|82t)U-J9Q%b4bEgo(BI*T3j87~|pYapJPzL`}|MZ?5 z4>rj#h4Z(^dzNnFA4yUNsJ;7Ak=osW|K)R7G+oKt>|i*O@Y5ziLKgK>n;&m&vfnS@wnwK|Cs3zQo7aDz&^GlYSA z&%SkEzjbe%&SpaLUdq081*n#EB;^$XB^Q`XhdZvHwm-M8HuMB&0>1veNXtKp{ z37i%8qQnU-o~nL~I}WeQDSDXIJ}GCjI8C=?(ol7tYm#XyVYzjgATPY4! za$$su59H>S4*9IFr!{HjUm6Z(4$S<&G*e_lXtylEyu)3QJ?x+K@K(jPJgBw=)9J^? zMR&nU>{^pXG4hql8BrAQ*+p|e0Pgyc7p2HQcKK9UxCn*?i3e)7n1)dY3h7Q$%qkv< zH#hXmq4My7qz3wc;kKvXGcY0}&Rzt{7j}>dLl}ildg{wRsMHqgfW~&Ij7GgPWr^Yt-|AzR6FI&)dRmik`wVGNaWs}gIqk_JYy@i>hNw+v4aGR1NJkcY%qw`k>o z1qLoSGdciAKtPQjJ745_C%=k^m-y+o$~yM&c8w_w8?sPCS|aZSALdS@%)gmAL<5p= zPAbP`6@a!P3b*O)DTDE2ohWZa;M0_%h{>{0^}7E5mKo=<|s1qc+nQn{PPENzWV7$pr@4wE9>?+oPN3NHt#|-5%1+g^^Rl%G( z{_-c3tHk!i*O;TN*EjqHe=44A7zV#AhvoWwO4B^yg|GUUA{l+Z+(odfL+pDqPQgH$ zNv>dkmysUeHxH2x&_Mk`E=WgkCj)>a$`jO${9p&@Gv#0%U^~uJ0f0ojjn~UXwvE-> z5-2+*N5rzYQ$397@$f4F>GkzjP2HAW9KrQjXiajr;DwE^udd(Vh@_wX@Xm2Y$97B| z5G>-3kt-j88}uYnAChK$trk2^$qwegAn=nMJ4k8A8Ns?9UOXUdcIML=^Xf63gd z6*T5bGZ?uf0p?ULCl75Qo7)ec65RE$pvM=V^8Dmmpzinz^XJL@>f`UK4_k=>%qc^T ze?rD~|LGI#DQ(FPRdGd*zfcb9Y*YUGAyjW^p@SA^+(HQn)9>>feE?;_d5$32-xg1B?;gsj8yJ?bRPNnEELJ$1}_apD4<=rzISTZr*BL5@BK zraeN*#$JDw)9G`59N53=VXkzW1SWrFS9WyJ7)XKq)R zY)V5IA-5Q@#S_s0QxLpuY|!N`oQs^jeSx$gUt0U^_I9 zwtPf3yPACVS&U#f|J@K`r5iR#M*R14@ISV5bvH}r`)`tS?3>}F_+Pej7FO>6+R-&( zJn=@{{Ke?qMGRpWNvbSwkpE1OiYPA{4WLuZ?U86V{!qrW8cWHEB(4P~NhXF1=ACDk zoG6w|;%v_T%S$@eh)*8BvF`k%EYY?^uJUhu?qA7u?zjauITfn1WPPiPNIwTm%?o3V zw5^)MC!?n>uj6;Nf7|p1t)FccAcg|xH~k{qWSeboL+R4HfSiY39wh#~FfY%P=YOJ5 z0)jNQJJk(Z-oDX<`Ds8W7{PrAh`gKr>%ME58z_BEPzBU~=t@{8x9kGbv#S=T zPKktYrU6l<6Z+3$&pB9+0~qriXX1Tqj_cHq`e*EN@`P;5%AW&v8&d@j(w$ zUymnHjp-u%yBAA_=vj<**pvt?S+HZbwBRFE(tv)#A< ztVtf;d#RHbToy6G1#?gcSP2*F`q<*TDokX7oChk7Y?J7b7}ai$wD!59WDlB-<(yzK z?_UvgM7;+Kc1E2ro!v_m_yejAIEA>?3ZH0&M;}X3~=j~^9 zW*oP^$YAqlOSh2&fGX~MQ2 z03XrJ%ZnUt%s~jz?D{u;5tXoeHDy^Qdwd()ERIAZkY#n6m6h>L_GE)UjLd7Z7rNn3 z-OEd$VY{1rObOtEZ9;baWYd<|K`lokY&GH6F+uZ%8@sW&IcI&xdPh$Wy{zl=-f{WV%0jc%BW@hhGg8DLAf%IWAuiYpS*$DW^mHJQw}SZXcx)oMT~V4KJ@x6nuMUFzRIv&Fqk5*D$t7z?vTv=oD8`(wR$#q`WCdAn zM(&`CQ84=|PMiWh)dgjfCp4U#Wq6H~4s^rm34&R1u_)WV%BieQDWM66bw)f#UK)YrG5lj`Rc*+u6KB$&9g10d8CxIlF2zY|&z#cZu{vTOBGg zl*4n~v9i3BNm1ww*z%=VYF7SYBPB`?m@e(Z&Uc~(=oWEPQU>tbIkO3hJ2KIvxw-MN z(87FOILY33qFHAVqDG51Co-Q zD>afTg+06yxx}?r2xCu;1*%@u6d5K5ayNbf? z0Av&@PM6qn8wRtdG0vM*$)3xbDYi9kVevDjjZ!%_?78uT3375o7Ra0t1lR(xYUVOE z1IPwHtlJv@v^QmH^77KJA>o`+rM{GFte0Ebc~vp%E^Q}*S#7i+vOR3X+DZ7 z39Xj!`1aG%_-9zt4J+7{a$paAF4wS7!HIPtr7&b+lC}TQn?8FD^?K?qH)C!Hq5p}r zC$1VsYpwZHO{u2e16hJNy2}~;6g85Bi0c;j&V*7h=)E;cf%H4jQ7G^|G%EjxpxIu@ zuYAtiodpL?QFN1hOwiw6B=ao{hmT)Vph%y&apqorw20xpyYA zFFHzpM5lfmsCm}-T|LLJ1CL2l!Uyuh z=3{_|*MZkJ;=cy^#i`-wxX)%p*RJS(!*l5eM<3^j_JB6_aZ(@WH+klciLb*jI_~?} zc!GfH)bu9pp2^fU&MfKc2q4+?H^Kdu09R8KO%R6Y-u_4JnXPIBl6INzQg^Y}l8yQM zP6}}KAQrx|!jctveVsTU<2Z2z>$%Gc{?=cr?-qQg8+fL-Hk9AGu7}b`;8bBh!*BZ= zU-gMUQcKeX#JZnxsSD7QZuA1Wh|rP`s5y&=)}qdJF*&Iz>zA6JWT$<|K%y;FndJJ* zuIO!)I#MbCwyUic*^+#{E;;tQg5{$8&|l;Cqkk6JAuHxEIhG*>g-h0bIi3rQBf}Cy z>`C-SJ@GwPxXV!-KA_XOmkXGUuaC5~?JO)y)(QS2r@uvGWqQDH3I`ingRC0+3V%9m zSGW7Rx(&X9RJ4gUb}k3cXCf-V5wAeBG8NGoQMQDWlGng+LWc^*?CIp z7czR^1GoVsk{+JRoKWl>g>R2gZF>(dso{YpiL;%(T^39|ODH_m{7l2kvhLV}ud10J z{~jk>!5BQ-ZG6Svs2I<;W9(WEIu&Y((md-Wa_673GMEv^2+tb<6wR%Xx-tP6Jm+D# zl)2WchMHG!)vOVh%tsD^D83Q#-^8UG1C5HW@_yG|mZ}grds>=q5X4mQCafsn3AJA3JsT8UtKxk9k`UybzVHm!iw8Rhn0kfb3ZPMGlpzY|s`d zHv+noK~Ue8K_TDNV1f?zZh~AEzOxh1aB6Vunw-F%|uiQil?*X4_Hl z#%-V2*4GE`ZQp^zA>-ZPxa-u8>1yUJ`%VqI$Ik`gj{Z^b%pWNNOmjrTzDh9caxqM$ zY-=c{pYu;wTKNJ$eOcMzl%uaHo`Y}AGIi9cU7MwQEho_0z&9TajT`(#${gr+oe65Z1>*MuhT2ITRv@wQ5Oapg>z#K%`{ zzixG{{2Phx4Z%m4?mYG*0-Mx2rHrSoMD@0$7zrIekuM_CBvcv5Au}0eRFK~LBO8TmMHCpaPP6-rD!QY zmNTs?8_MHW8_xaJ=Hbl(L&nRv)NN^3XA2W#k8Sr9cOcKjq(cgtBdbTP^(`f8uLnfA zYm-Tq9?CAP>;BmG+~ZecU1H5Y)J$?^DE1G1nHwCjthCe_-0;d&%LzXg0vWr@U2)H> z!Xb<-SK}N|0#HBsum1EI{ULTg9t@VcXpZ@}3>q!2M}P3$qA$>_j}cFHQ4pcW)JoQ* zxywUhJm{oL(qlY2*z6wdS<9P{sY*tR{_weUjtMXjVZ>Z>Y155#2-lySn7DX>GjH4R z`ZPxLE!sRYpdVJKTaWoxO{uOP9u291F2BSSzc{_1@(HHBr}OUH9MovH6l=!ru=@D+ z(bp^)ezzkF*>Zm^67{9UItuxAp9W+JjGBY24h~ zET@@FxAM(>7!8cJgpT&dK582C6=dGk+}kKVt=~SerjBjmK73)#U#h=I}ghrR>=;I z!!x4}g>3%ezR4f&+BaQOj4eQ)j)tyXA!DH)Oy8^Thdno99t^#uPjKc5Ehn z4KZ~&f%sI!dtF;8^n&jjeqm2Z;PIN*-QuQxkX++ z$$gp-3G0WLZy7FMtamYd#}-%YRFUA{9cA7Mq3!G3HjDf0tg(>ho{PEjJ-Gh zf5FAalOr;iiRoYulxY;o!Yj-m)iO(HflZ(<`=BokpfBD* zz5|Z6IVu>=Q)%U}0p^5hK*Q9%qCTGA0rarMf4>1b0&j!A^2DZ;0b#;D#Rck=`^ ziHTT&Wrj%S_N!8^1Jj2lG-;X`7ruSZb)YX&;_N53M$an6y9(JSBXF)9{twvqAOc}$ zWEr9lZ#fpqD}TW6Al-5$D%-0;*Yv*gUkshvCAG|FJup<=F-N;7>7llppU zBkwPU30A|JDOybJjXMnS;c62QROmsY(7t}T5abwS6x393LGQm%ZVC6Y*^TlpjrQ8> zly;Zofq3{-U7MV8-a8&|FZV5<2y(}lu;BBshYNQvmfLkZT>t#o{+W9|2r+F#28!J% zfQ14DU$;kXYR*ZZ9mw|lF(tGj@eJWnO$FqkkY&tKQPA#B7sgqo2FX!qNQ)yq10&hN z7T`_cYZ2<zO5o;eP0v0#V`8$3{GAZ{)!)!aY#rt~q-{ zZU`~AC;HzsJ%!e?xPCtaj6A|71%EyY{zxM#R_FmW3{2=1gZEtoMC_V?-#CH!f(lA0 z=94x=L_M>k|6&uO&|90C4==eG~^*%gG$V-^PFk;jx^KZAl9m;!OX ziBUsh>7b+c7j@W1yWG2R%*^PSp{`R;%F{SZ=Q7zlaERh&TS|jS3s|w+`^q06c>G-0 z7j{U^D!=(M$N$2XD8_YoLAy1Zji4AxONT9cGAgJ`CaBbI>6JBSW^j-yfH@E}4mgItl%l)f<`=Z+yE$B~|Skyt=T2pt)JM19$xY+

`WYDb@k)N=?NhbyZtkUM+z>g+x7r&YywfoPH2f&>2UMJ;EC)5Rq zZiE}<>NDT%0u#U71DGJqPPiM0WE9;&XGG+Py#*K(kNH%d^nl3_=HT&q#BEh5LNHMe z!qiOOKoEdZY7Y6%gr3Z72j0dSb9l?)VERD?7;#JvF?nIdAfuWvEeb+AN!*TjgDd=j z_IrCSPz^F6l)1-u9`!hwKz+D%JH!XixzK6iA9!AMpjr{K6t0SLyR_dMf<^+%mPDu+ z*WtvN(!_FkFoekoCdK4kATJ8`H88mM1fpscCKM<41ZFPs5x4kVqWl2Ayof#(mYib= zh()0_yNDw$N|f8uC#yy4<=3JO5n9P{glz2G@5ocM$u^5Q49*F6N)VQwg}c;#K{e}> z>af8lvMR%uS{^hepjVTzaz)Gv7$TL%N4NqM6tjq{XAIeB;hkz!Bav%FiEv9@@TQfa zP~IQjrJcixHzfXa28%k7UuWgy5`Aghz$NbT2%Z@TE{Z^e(XaXh#x=-+yiB50qmWv( z?PC^IUKx>}#l-e;LG8Nik4mL+w@N7T<*$n=oHQClnsaS8hD`*K4K=4${oap1U2G3v z2m9}eGEP_1d1PON3XLym36cK+3MXjc{D0=Q;xBE9zk?=OS|)<%g7SP(%7S55?Lt*x zuu2r=*qzsGdaCHnX-(!Bv^-($us@@_#zAOIEL96y@~=HGEXC~BbrC*C za|bz2)B$doh3MB)j38jvn6mN>hU(l~xcR2DA$>N8C9H>LE=*pDaA@bs9otw1aN)XXdos)9JOefzl~A04tt1DKr!P|e%+!&! ze{q{v7rWt+`9Otw+vF)tr=C#*-X6tgR~j{?FHu_$lR zSDQPr)ww6^&ASP$ynV(f`_)wSj5ogi)oa!qBjf)k$HWqiUSh0L{^d6Tsk3^fa`n zSnS#CkJawnzuzf58nrb!tIy6h!4`tHAz~h`=Q`jy?`hauTa$aRP3{+Fng26 z`qk`1dzbH1c~9H_^n>kUkz}!%oO>jewbEv;q5_o(*Vr6C|D`-^9^h5@rGyhmZqZ=V z*f7dw#gJhJ)vLN9Rq#HY*N#RV9vGZ3s92gRxs{R6D+g;Gt%*Y@ zW8B@$da#ZHIe2#kkh7kLPJKi#8;i42TZDY)xDbBQVlC+@V8nAykwC^ZKg{Prq3^qBtvKSU-i=Ui&e zL;WXDo($UJ4Jrxml)xX&T&2jKPq#>=5*W$Mk_>~LOF#fG9 z^A+-3hn!eL^x@3~SF31rWP)P1(EU6KsJwUn>g_Yrny~3>dq~KKvI7Y&g1Y;?MGMUdTe0m*(Cdp!un!Rem8Nr3GMiMgEnAnf5E3(s*2x(z};leVj zNYw}LT6eq(NGWFuf~LTW+8LQJ!gnp^5W(R#e*=mbg$}*K?uBLmQNsLb?|;tx|L#q{ zn=f={d_~~1uQ%7f8HxV`q){|6vv6{D^!QhA!S!gj$_oYt<^v|{3g+qx1}h5IU$FEr zb&#+`c=F!WutbO-6yL8tNXEgZ)=Ny(%gj?)#NA8Ysoq=ARz%LipvH$$Ql*YpGq|C| z6dfNx#opUQ&aq6xM3x*c0HDPHVeKtbq@${*j*st8B2F~Oz`y|E-*|LF{I&4-k=US^ zD7A);fsT=e&hH-|5+9Hr06Ju-51Jqiu>Nnf)4n|m!Tm4Vsl=DF$-kR?lq_t`tW8u6 ztX=-o`&Z4;z~0`(@n3(wIN3^Rksmp9SH?Fb&vWOs3J9B5diuG9%8Wx*=BRz8@a~_#nQR`@E!Z;()ubo<6ol1q5_8q0 zH2mi0n#aJ3SD9LP9A+3+Yq&T`m|95m0ZLctdDUkyw1du_vFHbnnm_Vq$(HQPl1+rP ztXS~uo}6J#h%cFqV*7GESYn{u8DEkZ8^GOo*n);DwXVIT)@}Pe~&EzZflW42j z!}vhe7|D+W28yXC-Kh)U%Auov{%T-!#+gPPG^d*L7cO3?f$T7$(CtIIQl{!A(;h_P z58bJ=^6|WH&?CV)_TNf`^4Qgfc;_Mz$fpDDCVA1AKOqwRpmmOds1u$gd6hHv4K!)s z!}lqS4~AaK5enYm6`qe{2b&WrjEY%5Eyfj&Q^NQtgYf_ASS704l+ph+jaCw_G7@m#;E-NX4o*Xb+K`x z6Z!i5KWn#aH48PY6O8Uc8)AkvbU+JsLL{p`qyTc_kOauuFnXj>G?q|a%OZ2o!}mjR zA{WymlI?|&?dR_6gce(@jy9Vtk+inv?GhQU*K)nL@;^mqK4MWOKRAL14Swq6p6r<6 zd|de1?Euxm*@eaPlLqTTpg;?zG|8Nssg=#Cjk>y_u(Mq++d6WYIT& zKn_M3BF!9Rd1t9P2+;E3iDL1Ris7Zk$(6kr!{kY3S9bQoOAPlh$u0^3KdrJ+ss(6bDjJ38ZWeuTvDO($&{E0vGRNePJXVoYbq%`}dNjyg zgcF?A;BQ=dO$#;SEBX7^9BM&rT4T|6Vty)*{zTHb_;58?$3WV5;8GC3BOAgvfn#s8HCGN5e z(~U6GKt5g}A(i8RbHPH>{JS6ux{&=vcffuVs}k~q-A=R#LMV^n=12jB)=FFQEJe5- z{s7`}8D=d=wcO9Vz@Ylhk?U7$+q6BN%!>gi*ZHXq8mk-7O@#J%%d6t>wO4Fwb@|rK z0ZK0_rHHp{Fq`K2>9E#?BxG|>QYCO_JK#K+yhdG+^)O16+HM3c+_UguEVa*-$I8oC zsSciFS20xL-~0L+Rb zZ^Fem=1~LXjjrKd>!QB4{>88J$n?KT*n8?oORgcJS@b~rhcikwS1RM zwZYj=lecf7Z$zJn8&aofTD~W{A0(Ha#UtgZH9)*$>xtOed7Gv4K^QfB!yg>?>=Ik0 z;m=KzH$V;#w@V6+PlX|;u?CR<;$M^}kg3Un>4)ss6R^K_5|gfv&zXxmtCC=6gt+y} zevK>t;hXcu>6B{`RjoTI*^+puJ-|InlkJ!y>vtob-_o829Y}Tgrq_6n9UX6OUOE@(D3B|muQn}&Sn72c${K7}W7FC#g8 zO}P_+mhgKkvsi0R$$iBwipeeU33{Q=DR=*blACnqEW$R?OtSw|$gH|oQ0^EW_gHVwB7j-pRqW#Wt!YAKbBoW2w~uL;pfIV;gj{_Mp>_*SuiGyx_){{4m|7xJcf}kTsphX~xg@WGX8?x3|X^ z{1&K_QuzpZOQjx6rr#4Ai_&mS8b5#r1;LtXP2q=GIJB8QUKTENXvhcxp5yj`tX!?e z)-x5LF;03EkV9__g*0y%MWE`$)x^9_k8@|J-x}i9w~6Y3idEBJjruIj(Q7{v*mK6j zZG~P_4esMMcL83jbCX<~`w~FbR*hA|gsh9tt(O||`xQ4vX7Nm;V7NM<>?1;rn1))5 zrOjzSNB5`Hf-}#mEf{V9y6Xtb$&94KRP!z`q9{LPfpXH;cyNZljN2YYf$fCNaSfHD zT8%Ve$oIi55|IfM{ybf*wcl5x2D@J;|51Wwja_5xYtbFAAbr>%l<$YP5Ug)RoX<_6Q#jMq8=4Xd}-Yd zcAcsD>|S!*=PZ@00oE;a3Wg`-8J{}=aAaN|&m$8ss&%q<{KaO1*~urus!5l~Kh32V zr;0p+KR1h+>PUnqauIxjq|>Kb#eIY>?Hzss8u=uT<>YyP&8rZNZ}LUlK&7{?ce zwT9A|t3wzO{6M7rmYWjGk|Mu%f(# zHngiJa9k^}J(3OIjCij0PveTemlO6fp7HMrx9wMn`tRB~{paQUkN);wH!@pALg~x0 z;*%2+KrEyV>IOp@OcG7*g)D-qK&1T55T(_?Jh9&x%h8zDWGWd(dmrF*Q+;^kzG^bI7MiU+kEK}Y zHyxTxryX=3se{f)ZTzsF*{siAt!cUNgk6QsFwolEx@$YM+`5OZVU;?3=r_$E_~L@s znVL(PetAUcOkSv}X3kvHWL|3^S?t&>Z0oHZ0i|^q5JUDE~%c* z+?vNBGDEC2X@6T_04-Ch_t2fnWUHp`e}1V+MSWfFXt_aGtc7BB?jT~Kk5&$ge!(0z z1{f_57?(X)Cs^MknguruJ;p3XJ{;iBBBaYIkHj0y)<^?|85DR5D~C+pH%_NFEX6II z`tw&3#)^U-Qj+pt-wA;Ys15TpRkp=RfWj$r4rHbAd# z&_K_Kg&zIEDO1+~A2X^Mp2VgTFUkwFWF=F=b=+aPf{4R=vgQn5|L`4cTI2Ir+(+?8 z6M98S0>-)ab@jPN?)O|N)e)3#<}V@zNruKX%^h3M*=-EUZ}%o#0l!;s<{!Hay~8+# zAn}9fErxe!R(}qbhop5h3QvlbJ%7_xLO^z4JdB~ z*C7w$cvFXd`6X;b&l;W%bw$sblmQf;4I<($w#ey;ORp=Qm%H*aDm^l5(Y2j^?X2Jn zE&i}Qza|OQ_LOXl^l+P|tgUH>qkhXt)N|9$tQ_`Mph<4a&V9lSN(TkASfaEKO`+I6 zVmdxxY&}^v2~yoCp_XAmRn|hg`7Ai9IfEUXyGCW6?3%Sn-IUGAJT6GYD~!L4QC$UH zf&zqw#xo8vFF&}@V@t0hFj$twGNoxCo`zF~uHa+>92J_gS(f!*T6CXY?{yCB?cLBj zl6y;>w3?e)vQN`~soHIJ*cTBXmQcCEY-^Le(CWGIY-D0rT3g{xbIr|N1J8aRZ2ur2 z@@tM{2!(zN8UG=#v$~QxNt>$>RjW_p<(vX5GHDvKIqC(%41Ytd1|7rbQE7R?rwz7X z=4Gju%Zmp)*!PLR5KQ5Qu|YL9QDduY<^Pls#ynWNXs=29eesO1-`@YeN&6_|_m!oc zCW0JgYYmszl8^PwWRZi;lG$kGva2ElC3`fHG8z{Ug*)^%V+x8neh^LVQcPeWezAhW zm`_2AaTU4xaK?8WHEHhFvDeY6qWgLRg+RsXYD=DmsEwdL4{#?aom=FzQn1q)h$|^)X9;EXO z+2}%^wB?c~hjsyps{f=9;h%A79IPn8Ncs=iqVY*xdOe@?mBr z0rH%c2DX)of!duyk^%673L=rSEk|Y|za*Fsdl~_h_ie7cjw?`G)7=KU(U(d|wOuQW zNYYCb9{AglN^gLGp3HY-I*sCn{EjWDN4w8wRNYlFkvQZZn&azK+DyusXcg_-*)x~R zU~pFrBDsQ!tT#GBNA-T)Stn&;8_F6gxCA0y|j5(Z^13eu#1o42mKS%@ZdiWoqWBy6o{7RW!AwS{4 z2*<~6PA_FdhYS@r1et?rh6cuddcLtD>^_xDDlrSTt|}ZHLV56sw(eE7`CH*;Nuda_ zuz#G22k;OmvJsl#C2TO?Mf~ykBP-Kl@#LYLl?}l~n58{>waV|cCBhKbiw~(;j zjY!oeUTg|R^?CVo$LA0=r6sY>bHWqcj*o$DB*f!czQpmDI3!rh?E{sJ=UxQgg3TO~ zhB9cK42n;OA!HT${G67JFC|FeJ=upzv@X3F^cWgvLO3yveE4xQ$i#_+nqZwE*e;Oj ze>;4=6?HS0c){Bp5OfvJEdV`D*0=!nWd!xgK9uwMOKrue(W(Awj&#R6{R3nF3O$ST z4L_3r${{ImOOhNGsgq~u#z8PGznMFqOGsOnxF{7e^Oj0P{2<8&?L!-BV(6Z2rlwV1pwm{42kUl`>!br3PPEDJKup+JvgXpwkIEQn)ue2 zV!D%ghb47$@pgy=G-?}&E6UJfB#mAmr9$O4JjcbE!xXIaiyT8Vz2dm4+R*|}xJDw~ zxCGvlw(9<)7QI7}MYvJbD)gbGra0Sjo;hKuv5FqWt=Iys*o)z*e7`oPQBk=Iu`;>o zy`>PC&!_*#R^|%oz2@(u{S7X?NV9lCVZIUA!81NYj1k{7D+Rh2ot~r+BldSKpeKa6 zgm(kyGp~WN&77Nn&vC9bER=7C17%3hbpmNMc>4Uw&um;<13%aa==##!Z~tL~^7k}# zSVV6Aj!B%pPV@iC$oj9RDPd!8ZDC~bMQ#26tr7kn^H=}#uOp6$o0bG-Kn{`H;9Qgy z)2hRIChTB<+Y=>625X`{haS3Pl$oCWQS{lB0gcxehL~8NXFJq6w*NB=ZpP=2yAN<5 z!!*N;L!Ue=GHSxohoZS*T6T_(%~0W3F`;Q|9UmM6`)@RzAAK6NFX5UfBS0w>&U8Awf@dpc%#H=(DKzmr~^}5 zP!$ePaNXm-VWj2L3t`}S8?>BRKw8r#TFbv%@V)@QE5wp*7Fm<%r!R#0@_7C3agup` zo1N7I((khb+cDb{0^?;&+pgy^NKe_a58+qRtWi47G2@^CE98m|`V8F@@D~76MF(7m z2-2g&&9%1G`RWT@F_Npe%DrH)fw*agYHDdMsah_Ojj(`e;I)f)BIT-g2@mQY2v$eB z;`o47rXJUvoU_wobNrY)s@5NE5gNbv-fNF=u-_iml!Z8@2DS)eeJ?*oZe(6aZYuvN7s3hq(|P7GJbWP;eq{zYqD7QzSFk*5 z{jfz6)J9CUipw&j|Ec-7TcI1eDEW3&5yt|IitVbfC}}wSY2iqoKwRk1?s3GfqlF-D zyUvBWxBb&X-y4qjvD{{jIr0=s1$3B7EEzik>a@pvDM3L(vui66d}*5rc|Pb`25+(U;(BuSTUxO@8?dt2ABM*h}Qp=~=a)XMfW z^Wg`IazebTXDShBM*mKvfL#Z4+|vaa^8tYO@y%MlZiz_b!4}W3Pamj2&frHs&)9c( z*un4t1#~5Mz7dBs`LrO35IB6f=hA`;W1h=~lFq7hS}Rms3hE(tv_qpbwKgC*WZn=n zs9Yfh1IP(XDM(#&RZvux3leGyZ_wJq#>x8oG}nqb6P4561l#U>Jm6bZpWdL(;KYXu z*lY~!i2-;6u!et{3;Yc%tgUUAIbc9Qkgz~N9RJ3%AY^UeY2rX6GY=h!4j#O zWQ06ti)kKwm!t z-bG%f9<))vwH~~%a^vjI-&KSLw<JWNs#JmU0 zJg}{9yCdb3bYYkN>d&eWL_5Vr+ZoDfEfz83KaA%n*&U(ayo-b1`Z+Wlt2&e@Uapx> zPpllLtX{UzS&aEaRuSQ7%y1Y?dd7fD?(%f1*EuGU^s%bFdth`2Z^bJiNGcV_W;|I! zndTh|m9-+O$});pDx@})BVJdzm+Dv^P87WI_t$%jg7AtOdfLiu8xcuP3bqwj?N7!u zu`f7oj2J6YPQ+1AqRS4~Szy>)>Z~H!QcfgUS=DL69DY_dF|q310&M3&-EFjOH8N*I0#k?AhgX&9uRd)J%rkb5T(Z@nwIZqv|Ec4ptk(q=U~ z?FhR$3`_=CPE&B@G@4TZeNW{UpX!LwoZ&r!xB_3z|Fvy6(Z|!48e(I14_T>O6zKg@ z6951Dp9l5PM+({44^Lc!@R85l?~ zyLf?-YcEh)ywm#Gqw8#yCDyw*cc|?C!qc0wCHb{J_VOq_-t7Kc3^uE46Tj5?U1IP< z&k)xf{mq+c&wYCJ1|wc{5xPaL?wT?zcz2D3<#*M_E%POYhSqyC+r>gj7_OR3pqx@% zc4MmPv523)oWZ^d8+-BM#Y^?5!d&srd_sA1tF+L3#q1gycXCQ1qhC_pdb!-ng={_{ z@SFTJ&177t)*W@JBA+!~wPhYYpeJs9mZb_Yv%B`gBj-K;xE)E37x#zu_KlrGnUvd~ zgr*aIaIUZYj#5z>a5J+I9i5R9${Zc|YFMMiBdyg&A;HcXS&p)`uK}pV7 zaugQq*Qv!PZDjcpsgB)o3mlfBZM(^=wL(&VpyQEN=YPQoZ;rxT8C}*Y$L#smXw?T? z$kqt0MQ_@FY3`tR)@k`Dk=_B}f-Id8T;>Zoywmqa9CmMsP?5$ywrmG?;N)-5!)n#f zsYbVqSXc;3WJJU8A!p`4*zd-Fav7Tb#CfQ}-w8TIW(zlN8EUEIEzapD{b|D0NPKN; zmkzOgg+DiX$}jsyKc0&Dv}i&VPO)2@gX$NttZ=E?wrTn}SB0Cg?9(W~4L;zG>U}6= zbr@mFOOVC`_-U|W*fn?|f9gX1z=;etC~)@n24_-!Mj??_zC}XhjyDoN1wOUc@S@W% z3PW|eNYB&~D1!-pK@OM6a{d@6)++Lw)&+%Pej61AK+R_7O>Tm#4!aLaH1nwN$i*B~#aBtVYQWz?N-@@R(2 z*+LUnxb}XxkPw<4=2vl1XWVYwOPZ;9amX1%@3#cXZK^fQem%ia29@GO9GoA3X;Mf- zMVCc}5{v5kwbv0@zrcD_62fTn8MY_AT=!H?Og;XVC_bCl;a!u813ZM*idkh_CK^Xp zJMXRO^xO4t40}>{j7PmtYP+2m@@-n-3>*@icwtyKe7SYfOD1CJ01e9fk^Np2vpYs` zP5yM|h~_xr$UW2#8Hr zrj}>|+^vvIm{^d*TUi`7q;24aaAdGqlv=?LW=NmX%XI?W#gLve%4_)2<8C_q3=|3=dL zSDyPXoSW*@Hzy<&Jlv zguDw13J$EY?!f(=ME!2TvlY@_gZ%uz)HONW@F2U}B{)que@*jV`_8nVINV(I{`vTT z12W!wL%s|NA-)W_pg=AJ%?TuokT8r-65k=Lm%v6$Es|~!cMLir9j8gyB(_W3BJc=1 z(n)w0-y!?$f9abR*m;Yv?JIo`InI+HC&5efoBP`{(yhq%9%X!o!4*l86tz4zYBLn3 z>n;`AsZKWPw~oa2vo_Yn$aF%OdZxp7Gx>lQhV7+oB&Y|r4~5<6@AU>$v&iOHi!!VV zv@?uvfvi@0i7-a0vP`DTTBTlp45qSIaX=YmG~0~9cTCRNi!nNW8i&G6J5*qA_9nm~ zi^tR@Ogm;s8CW@?ci5b^YUIQz>g(OC1-6u#0H&$k^Mwy6ONAa=?2IadSb zpb6%iWg)-#t}E|kpqbR;)31Y7j|i#_9DIgX9YpWc_R3DJeVhoWRgNHLwIi`%)5;?; zKv~aZThysLla?^1$s3`)S28U@&LY3#c(9fx!?0;ldo<2#Z!?meAfMLYE#pJ!WJJNv zr0B3(uD|a?WDZ)gKo@c{jpgoSG_I?BY#*+Ca9@_;G7LApBRf$W#e;60ua-_b&S#o& z(cybDBX_Chl?sRol_qE&7d}~j!V93N7kc#K1jL_d#ZE@5lypE%9m6VSn47+2U}G`< z(mj}2n*I|BMVMYH-sruetY3YNrI?pYD};x<7E23i`+}>|&C{^p2|(PHQJ>1pS==_5 zq*sr13>z22BH;U`M^Pt(Em|F;54u!k!B}gH4%RZ4#Wr0nzpdDb+|@1#VC5QPyk8VR z1NB*6Ok!IT(PBUyOlcppPF*i-QJD%|Z&UsHmCPy5qU}Hz#wB-Jy`@4%?1^`pF&$7l zEys!Fls6F>*-cPJ42foWI5zh@6yBwMAu20^$#<4fSb)h6U0M$kMvfB`3wsd;?H-=g zjPbifnT2LDH0+2FMJCjo%Ob@^)%BVE@3XVyaX3t{2?QvfdjU|}b#XO0s{0u3sv(27 zT~Ks={!l^0qx->7Wcx`_LbnM}gTzF{r4pk1CMXTWC*mXe+97KCk|7ptMFW-gA|b1L zE(vVPZBVPqbNZ?wwfmVM-jxGxAhQBFVDtqr@HYOTGx2+ouKFUQWZXo`g6tff{*%Zx zT+;-|?9Ce?@&V>_IAbe{vtFCmBRiUvKAR0)ljj#yp#vpj)GVQaXY?&rWjaNQ|f z6G*rdt~*Snkc}v}Lim0@f8|#M^0Ut`!yND(kvupT9ASl4egG#vq!z*S&5QYI*ay&i zWEqqhZlBu__de6%*{2wM^{wK&1zJ^rj!KpLSR~N}egfmWY`*4wH}@Hm)`Fj4ksqWX z!VAyPhy(l{Gu2oM{QCE>J&tSKl_HQ9(cnjMeX%|AFaw*nx<+)O$b<=lw^V#w6mtvN z&8rw_i;5deo$l~02wk{|cF1_II)dl4*m9U`7LgKZH zA^lnLK%Wu1%_`&-(t#RreKVgm4hrjTh|Y~ZChbR`H4$xF!6hePs6=;^eYKN$VdUI{9Kwrg7(=^h2~R7+%j#dgcKfU(hqlP=(1_Q@W8Ifd z4kw8YY$72gELg8t_6|&sR7!ics2?;^ZK)myfy<orp)7Tf0CJWDpwGt&t3EtIpPU*auEz-fCQLi*N>;LZ|Nth-Z556}o{}1t-sy z+&6$~=g|L;wQmZttlhG$s&Tbxx8Y6$aE$hgQCLO&VM{jqGqko z4E~F4?Oz#2U^ia#;R|Bm`^qwZC&LKp8=C!FLzSqc{a%HhHIjI>QD2_Xt1#eI_>Q6USMH{UP27W@oS^VYcAgE?1vUNRPzu)=90_RR~itEARi(_H!X1m zX{tqiY^P$q@ypdWiL|xr*h^318U2#rJZd&i|1b>tc#7CYcH+HEaB%-MYrn|-UU`Tl z$WMD^Am7a3$CKJmAV_pt0qRvmeIOBtvfX(=iCW1t$p+el+F~iu){cICTLj4YWc5!l zUukh505zUXoK+5jD$i#+)N3(zkcE?QuwpG81*R*B&pU$je^pQ$*N?>T*af?9XwIBP z^Ga@v6UWws)T=!TvH}BPRkmAzltd0VpS%{3n`DgOpJ44pY2^PsVfamBAsJXV`|~uZ zMQb~eD%(x`=%oD$+tR;RV;2zEp`rfeMA6i^m7pakmC8>mTW`qM%UqwMEQk#OBW9z^3L*;|ZBaurc#@5H8SM=NVy$Xc$a(B~*cUqI{ZL-U*W z8%>L`*Lvt`5BvlKg_iD{RUri`tqOz~fKrPJVcZPl5+s!HIysKig^2c44fRVoK$`T zoQecaPW_TJEPRSJ{>@M96ShoXNzjRn304Lno;UG z_fy~#t=Cn>Qax5!FUI6z<3GH;4>=z*)<3=9mk+e-?7h_ttJXPG;W6Po4gK3_X*Vx#iwHAO*^I4_o_Ij^iiW97 zt;H$RH+$_S0Y} zn%U(K^NrM=?;=j82Bt(p(X#ii7i;WQ`KxPFito#Y(Ip3gk|BU`6a)EP#L z_Fu{!Wu}>n4=2;qH8yuOsaB3#%~}ssEG{AdwE&r^DtX(*hB;&*KvJ#A0QHKBav!6X zVwUD@P20TaVC#x7(I!l~BG58?wn}4okIXgcd8p7#z(JVU9tTmBLi?Gm? zdNz{$Qft?DUB*Y4OPxqpT($rFMC_oNuxr#~BWz!{AeiMGY4};QRIjippFh5QD7=x1 z-Z5y?-*Ac;lw!83=Z8W**%ul~TrWSfS~byFU)=+m!Mf-H0#Z?y(ZbZxt&=olM06)T zzv4A7I!|2N*lZ@$#l6NFk&pI1x=3Xui>f+@|izsQWbtCuK^bn?EgO$^(gh8Ij zrp`1uDaNI_h|JA}45O{AnI%(j)I_dd+~oawvP4FF36lS%`_Zz2;wiTwskH^_laBpu z(-hnw*a^>P8o1!`>bc$tgNON|PTyY2@t#b{;+yA7TyoBxw#e3)D7cQ_3%P(+;G~w{ z133YnN080-QV&qhFg%WRe*QX>2PLt#Gh;IhFKGMnd9%L^GIl@y=5lfX%3fWDR!`BQ z-A{5^<|aQguPtY-Ul{bQv*c^ocxpY)ly4DY^UR8+E@`DC8d7*-T2&nJ-KSgGCM8{UBTno6$X`SY=xqzQCNP9f!YSQ8fgYBT-qqfj z^^MhN#u;?@zS6Gf2kh7M$|s3F)B8Hd}wxu ze(=vwdB5z{qE>h$RNPX&@3xVb9$G5;#kKoVOVZ9yh?R|m4u0jC#Yz@4d|_Su8WG8m zvie-&WCZC4rdS64G>^Hp>8x;79aNQ8P4!{;cUkmP;6}Z;SZRb?h_&$7p+V?6A6^Q! z0WrKQH4KuMRW^wUWs9#G1^`EBQSIPce0ir<>aGQB)^TEwu;-P53xtcd>tj3+uOJe4 zFS%6XmwEa~e{#+%WfaYnDA&GCF0;p5SPU@{cqo1$tH09psXJ1D9GR3?NLbr-3Uyau zz#9ImBgEJe#S^*0fVQ$m#YXN5^1;4VwkN@ePwAzD=x(vx^m*iS@%yEq5cUqoSY1l3 z6)n4h9>W|+P>ku9qcqUcBWTY(XxSnJ+x=gf1OEQjHkdie?d{NU(esE zbogy-Y@PI-%x!JH7=tF}rp^xk@#7y!(K(79?k_FiO*`yjgwP4NoSH%bV#Gute0jOb zx{1uT%+U*6pY&e1tNi{<5#%EG)W?I-_QTVUZ$GE5rymgDUux~VH28+z<#;I1?R|*1KrnfLYQ=m7v;}f&0@kn0iO#_j)DS3nP-? zoAzclhsa!v99RvEbL1P5Fr*%igz&QEzIu18kQ!f-_{s?~Ge^q>gC(r+)j5It?C0PA z+b3aQV-&FdB2hAZNdgP}4U|sE*hJsi%IU9}x3RUc%|E`5<3G=+3jdNzR7LnuacQ75 zHw0ASG{Kth3(-fNsnJ`nFv;MYu-U9F$%IJzL4hpHtgHwvgsm$ZB#Y+m&!esgNaD9^ z=)l+_HZ<&}vB>54-h8AwJ_&AN>m6(~)W-=c!16v_WIi8EtZ_c3x7?(Edh9cQBY$HK zTfN3diGpMegKsCpl#AH0$xybZfkX*M!0twbgA*}-qJuM4e+vnUuDzni#WffQFnbaB z1z&?hWzSueg7Z)ZPMSSg0Y^)0)5AoIUa^yV>GUBXaFGWVGkM|r(Mo(#=qH7)h{?Ii zw?`4YK%%dFCd;47!u|+PhYQ2#9$vDleM)C>qX{Dppl1P^+@2c4F0br6M|&UL9)3*H z^j~?u{S3m}5#@SQ8<16cQ{tb~q)3^4SQ5Z5&T)UMw_gxL;igPZql5GZ)&!PXoi!@Z z`*&pyGh3dFhE8IGU@%%i8uOlNv zs3_@9Yw4k)!5@4#ECRtI0ln%n!E^&@QzZ;*3O}?a1 zj#m?2$6hz#S6XpC<<|&PabnNO`{$=u_lV|3jNe9<{fI0@N_IkacEXsf#DS^Z zqBuxo@L9yLd(+KewZ zON=bzLv7xwANLu3vk`tx?dl+99QqzjW55&&#j7?+4J>0Xz0y6h@2bnIJ(hWqduASI>_E9jXa0SEDMubM`?`h zRaw&4XRDq*VaQO1=+YMXX;P5HH_{Ot&J5XGi2{VRX6U03;gIHHDcIQ!n$^RGyCb6T zvFEO3a5wsPxY3IoNFX1<$k#3vn{^jNf8{J6SKDa--rfF0A?Q#M+}}>TyjKPU}Ofuq6j0bs(#iElr~owR+z+^IZ&uL zuK~mq^@`^Xl-l!l&0xACWd_osvUin1JU=Y0qvZ*aiHRC#(Vt4s55_!22Tt3#+#|!bJ4UQEz927!C}f7KllSA zY9f6j;J9`0El7e^RnD`+g1be=ESH)$D{__*0QU-ft0?cz4FolEY4X$jBfO<0PyH7q zkjMw+GI9v@2H>|qX9WG|{?CbwSQcT@u53*BY+hOG&Pxs$vLPg&W->_z-8554sh*;; zO)BI(xq`^^)8!>JR*MstInc1YoVFA{XinwT5K@G)mC&jT@Vu2mw7sIRo`W+ZvwN2Zo8nEW(g6(}B`uN5yHkxjTTi9g0+_f~|;7I+ksx4PrM$ z@XolLPIQjaCtqMy)W;RfD{!>4ckh(QorAbQ#D{DTBY{2+dFGw5G@<&KB26=$Cg1%) z*sAq6oq19XySe}rP$i-n0-q!Vt3*X)jZ0_)L`7u)HR7q>8A+%!ctw6dI`P8rl1ivE zWJO&-leiU@VUw6udUs=@U3vdbgtIsmO|=`uDsiKKO+dd3xRodbC-K7g(kk%+b@c_J z2Y7h_y?7`v=v3&c9oT!e!w=8c;$_2TBw9T@9f0-|=ff@@I9_UqxV4`lqrNKknjsqn ztE4Yg1cUu6p5HZUqdU86n-}aV+UnVpQcTZKhn@HG$S-@AmRIG>MD$guG z_6}*S$0=QcFKve?^e~|FR2-CXV71V_}w3<;9I7UO($| zU?xoJK^I*i_8HQp8TrfTS()qjF>+zgm<$cDI7KI@Wv0~wquQS)(s~qw$4SP*&w4y=<&%OOf0@Ao-yZuiqJAdu^GifGBzo&@9vaR;O(x~~;`9Q0npuUy$@ z5ck4lK7|SMV@U^@UrMs3#KKR54ct7Ys%@ON-i&pObsw+Uo1fp{2UNbn(NS;Z{ucf2 z76aZLp8BooC%GQWx9`#KN8QQaF%N*pz~rI>J-B)Z@RESN24s_3dKG!R#tXY3a&R_p z{4asMCS83>{QDOvy~H5IpkhEO7?{d5BovD4*NQ6AYi*`v4767g@<0^j^BEO)O($aJ5}YsDnba33U}^zy0)By#CNB&t#lKlJbyYVRDW?vphbfHOSUh zPgW$+pIfQ)+qOV?eJ#HOnskZCEq?o1nrdGeBe}UMGwdE;HXVm;0zPI5!c7c7(OF3@ zPdbAKAjTln1aU%Zlkzh<;f4`0OCD9VTR?gys*>*(GK0?*+ zMyB_Z#jwd@r53u|BD6p(;8m*N-8+I?j-r?=l?oyT{<_AOkho$roibPvo z*VtS6LWx>{c3EfeSB6^?KfdBDg!F2NrN{ja9=9&1hXh=VL~~#}&daiLTU(^+;6ciQ z@=J4G`UkjnZkL`8u=~LDVl>yLdDZSRWROm`2EEQ7CY|DWf?-cH*g!(h5|~RtwGF{_ z%BMb0aH@AHQrx>~^nmEW(-QnBsQTG3pO@II%1Al_R1a_% zp04PZ{h@B${vKAdtGo~bJ${&+z;A3$ODYbzn)FsJJzWM*OK~;>q|N*^bUIV8>p!O5 zsguKwH@1M_V5gdQZ{{`B`cPGqE9LhFJ*#5+2Hddh(X(QWnVFh`34#1Qo9PZLZ#xA2 zJ1jgx(^xiTQZ)&$kiHeS>X)}Fozp0D@;I(p0MO6f#Yx3rqmXcRVJiH5V%k(B@G2yD z`Q@6Ta}Gb~ljnBRl%y`VGv{(YhjXLlz0x-cdW(H~hG;Z&a^fSFgejYjsMA)we&OH! z_+Z)mF2H#%8U9~6kxJFoFKPq!2a9-}cx$e-8Bic9 zgoU&t{!fG4Kmqeg&Z{lF z{U=V-rgZB#0kU?Z$@|yN&HcBD;V)vtGwW|6o?Cq^o;!U`nb4;pFjA9trZ`ml6|ko1 zRAXMpv%_7NjGko|FF(g~wrD7VgXJM%P=dN_ke~$pN-E955Vbq}U}BayQ^z|;h-6`8 zA!HC>v|9;$PHMEo`m|0R6$J-%KENFDb67^j$+JKlXb?yU$M`te%L+SYPD@mTMr)o~ zYo2uJ$v(yTCU2sAxVX1?yju*l%)B7^$$h*X^jw@niVBrHAY6D>`4UL-fM^h45q7t2mEHF z`EvA|epiVp4s~Ya-Ii!5kTNx}l~N8c1xqk5FT@=)7L??SjRck%@W(^{X%OPO8SoNo zYdWy1QKNL~Bqr^QxO1R{{*&ZzRH&7yjCu@gN-FuI7p0fXNF7sQgn9L+o}J-CCd$;{ ztpZ=PwTdDtl!S<^Of|W}tRfzVW@egA@0)_p?P&Sdpnj_D*pBMhQKIERf~LM_L+A{a z`r`dr!ef&WFZG>V0!f5kRQ*BSJ>f;Ve7S~5>QJ3#UU}8arO7K%dlc}iyT66Xxd#`G zYLXdBI+^&9ux=lfb`GM;7BfWK(xgm)a0%kblTrXl?hkDt}wh_huoKm9j2zG zlwAit3+2ekZLSSoYgDWfv(MsWXKrc9OaI;_o!Q+PGh*HF`mmy&DDahyL z{(77H4tyiLsRV@~3E%Jg@20#E1f`5ebR$0>j6EDbrx{kcc=-*Q9Et{Eavq& zWV{|lOOO0((W`m4CIrGO*p-lm_@zc9S>6Yv#WpQ~4AANf!WV%Pm2r;$eEqJLbqp() zcJ@4KaG@G~0f!)|kL7d?wJhCmzG78ShpvLtT;nkMBdSr&3*=m8Y#s4Hp=UDjb6d&L)E#5B$roo!6K#e=_fcv2?{8zz=QD7&M$6 zv^besfPayX;=~6387l07k?GPX?WLU7Sv(!cj-@zc0I3cOl?tmF38AboJ2WZojOE=o zt;ThY?)wVvP=&7=eM-K@T@`F)fYF2L9Ae8R%hU1u+d=6s1nwa_2&(5FS26m8YdHFn zQcH+PECbaG2o~(-2`6pjN4WPGA9_surh2zA;n>^f_LVuKzL(W~2T6F-!v;8qijVlM zxZV424K#b~h;>HdgldvgImBjDh)iaXH&f(nLG%p1&nLez(iKg@oYTn%%{$IYSRf)L z)HMc8%o@E;8;9D)iPT_**!Bzg^JbIXt5n72t-Sp%j{6mN^2D5qcJ6DM`8(2`_H5-T z)`}SHk{v~0u*2)nkk<6TD%pmjU5is6WzwS_rE$>ASXc21o)oc*BHzHd2a_<{ws&Yt za=gtAp*14-FJye1qL7;WRT>=uD;T6$3iMeasii4qabcRLUo4~mFKKhv=$B173ZK_C zC9Omh7UN2i!uaF_Bx#8-*UY#ZZj8G=4&p!z3cG$dseTNF-Z;W;co+anus2`L^Ri0` z5UN!-BHk9n7|~4n5J_sKD`4kWPVoU5>*jSh%(PCmD#AJm!8_p=r|bvZf9EOWuRMh^ z*}$Lum7fm39=5-crvyc%#0CD5qll#S9W4J#`6^Lb60(;LIpay(%6S`q4FZ(Q52R4f zejCETz5XFNuHa-@%k3K+aU)7kr7b-pUG}5bI^H*;q90n_hF8(8^z_z~AoOGY>pW{h zWmUr!49@aDc=|XN3Y|)A;^wp)hAZ3EO~n#x&*E>28$uF>hv}~Vqy#DplaM7e7_FkM zS5PS>4)u}eFVRzdE*(Nc19{o}){iEX(s-D5Hw3@v`2Mdiy^um+kNBln!1ks6^>;R+ z{^_Ov0qZ6zttzalAZr6ylBkhsV5gwS@k3{~%E9mAP~(C;&8=p?`3j^fEc2if*9sB0 z(7y-z@aw#!sY+<*t)xECGrpI|JjMdM{gw*hCOog3Tsf`qW`B9?;{628$)nnJj1Wgp zwo?@We>4iX7KVN_zB3RI!6Vr)WU6S7S)Fnv~ire94Z>PA2}mr-^tV@pP}YOS2q+x#x?CT zqa?^^c@k%NYGNIcE6wN>>35+d!A zhoDX-INn9@GgY<2gMJO0L$PnpeLbw1b2Y&V0KqR_9#2T})`>xiG3Z_|`eWi)g_G4S zGrejO{$A7gWV9y*(E0u>z7IIDMzwPvFqN(BXaKPxo%20y!vjk!sns^eDp#iUQ_Ixb$in&X(wg-}@7)YnH{2^+@T_ z2U3A5`=%ir(emj$)1$TNGj7`jGjO7?d-YbC%h{4^Jgl_sj4&NC-fa|Dss@?qR`vby z!12YaNyfYMHRVj{1_j2u+7o6??lLy=#Y{bUl#$7eT4$~NNlQHM#=e*V=$J%!LV?Sa zly7uefltE2dC$3r&Km2aUSfJPsX}+(W^9du?fkQ954*lYh`;zZb7R}=2u70zX`&OL z_9Q_r;UbbqT|PJ+{3fgW_0vaSY1?{T04s19nLrH8`-$G%laGQ5pGSx#(v9yEs*>;y z7v;`@{ua`Dd3}s$MY83LC*kmD@_c)Shr>tM^#DF|62JJD=o<*Z^1300H_^8t1sn$= zLO77Vqd{v~nU!MRBt{7~d3N7%cZXJSv8)O@_hSR#UfkKJ5*Z4@iQB@n+*1?|r1fC2 ziVmSgD5tYfQz^49F9OmN<5zRZP(=WsSWJcY9MCUZz-_NYZl*@y4c@5v1hvgv#<%y) z`qNDcL4x)U^MZ_+Gc20R_6MG4pFOkL0cpT(JjT@nImh%ZVzSVu8q_MvPRnlTC-kMe zVeb`ezBFNme`*7HSY~(V(z3LPAa8`TxBr(CIA%f)4NCSYebMQi`Mnn0N{D_jBf&d>7 zCNJN-w*!M+is%{7rSM*svZwH7A1W%yzR!`*4x2q*thYU8cs_XC0(86HKyyMwAO%y{ zfAece?I6)ll3bUj&=S*=9*mMF*a<_cBBjXYf-Ux6rJ|1*JZYV2qX`N_Ly_ZZATPks zQxV%S`Wiz7pC;*-Jk)j?m!xgXNHJ?)Q`8?aHbib>YKhuS&Gl&mSDZaRkEh7BJQB2o6Ke=#!RX(l`A{3Rz3_Cy$;pl zu?<)Q8k`%Htx7dDTeY>Wic&+%fLn~_oe#>Hq`hm_%Z?wY8%&P;5(`U3lpE3w&N+=; z>xTVIK9KaQ1{=y+Tr~#U*XPDtuPfmw@UMqZNy^;g6$64*Z95G;`&DN&IVO$;Y<~sXB z&y%JbJa8_T+6O$d3Htt4V4j;!6J`Q@W0!K>#p6I2Lke*qIJJ!C;hYVvkaO(;q=6#8`SUa?P6er;a_ zK`1Zsia*F+FhyM9&L9*PkQ4e6YH5BPL-%i=HpCF|U(%c9jd_ zc2b&p>`sesKWrSY`(d;_*T`)* zo59$0AJzL9Lw}}xM)&I)#+gZ<{a|;U%ob6Nk=O5vXmk7%VU*kB>$S-cC%c@uXqOno z@M5+bN{@@qfL`TV{|&A#SXh-CUQi;?6xfuXzCU_MpItrh+~~j2GMFp@O@eH#@;o_x zD5ucG@(?)3`1o~tEpBdZ&r+U=d93X|bA&r0>qEM0ZMoUwg&+SOaOx(&tA2{77Z@s& zHSkq_m=r1Ai{N?zGP%V_b&wihsJVMmyh90*6}>!hjF@RSXxq_NEsF__eLiumy?eXd zgsRYs-X*sH*81_;mWP%+T-i_A(ks~##+X9dWT};CpXtdefBiHWw~WqAT^(s4cDqM( z8=_IpFRg4rX(3?{yONEsL0gw$td$Upcd1}e_wTVlgZ$snL|(AtNwr% ze2%SJ?!li(B@G#-&7=Ks1C|P0QnP-d#mc47Vw3i}+urL80X``Q?YhGJCGRfl(Lwv^ zpA0NezUoVH9H0~bFSNPxODg2=Y&D9Q8(SIuD{Jt-=w+6F>3XlnFLu)*_>1K>?f@~9 z@YOHm>6Mxlgu$ZzG{Z zg@yS&xQ|lp6`$Am87mbw$DL9}>FOHChWYkC`ahCnW$R1lB zNN6)tMMGWJY^+lfr&iShFol)o$oX@u@-2^x4s`~6i8Z-J;(C`VZ+~9FElZ8oCN2JWkD}p2B_qdvk zs>sm8Y{5Ev_E188Q;DZ!qQsl3RNJIKlPh8$IqEGKSqMXHL(HZ0_Hq=d6yrCj=`%qU zwRQ4z;!H^6%qj^m+18TwkJd}6SCe6qE8MxesJcxAdbwzib9`=F4|rwf-5zj-^ZqLB zZy9e)0CZ`8%W~|uR0j!8n;V%XvBpy4soLs32#h$7TAf$;=yjN&YD?0N%L1evS7Y11A~yA2&%(q-zzu$u1V3Afpu&Gm``HOHQ2^n9$9;01^IbtmKJral$P zSxO=?@pOt$^9%V_({gC0!+}Q1jfyoaB@+-Y$qAa4AmuVENZZU%Zj3$Zi1#m{o_RLw zU8SzzBUvYypTjj!`cYu)7XvboOM*9j1*gfDh=@Sw2??T4`FrRPAlLR)5IgcbfvQ6A zmnFLvGig6`%7e-peCw*-{R+Rjr@aUE7r*(WE{b-G079EzS`aHNqMWj6A}B2ojN;dgj-IZ zeakqEHD;=_-wB>=Zp@Z|4f_~?yXz$TWa`8%;t7C)o8o?jYP}#37==5+5xWa0EqTZH z`0<293mfdw`&eVj=JmMQ@yADQBo@$1BT6xuW`T!_Tp&JI&M@g~8v_!%5<*n|k15N6CPf8k3z zAQz+)M3kahqmza7@yrboF0hI%a=nyXJ$s}R($xDPe6&nT6}+KyTO>pl+9lm!4iY%0 zt@wd#F(bw(fMBQlOeA3d;7;HOe2JLlp5H(nDN$SMsR|7WB+&>66fX&EQ>&dCtP1>c z=i+*uwM)gI8|)BJh!p1CIpU@~krpkwv7#PypvKMdHm0 zca%K)jx@cOV#6qPR!#G)p4-2H%Y=JOjne$_#P(m04>!dm0pM$ypz5nQ5dME?k^b+X z4g;7N6GjTSubI@?>Vj3EwRS6O_vbq_ ziO-MEc_G1~P`vIxTdwk#mQYq05JW}8-jC~9S&kbW*1z7LKahU=79-s0DGVq9e?MBE zf=|Xr5JsG37!#t0A`DA!ChoIVZ_D4Q3iE`P*J*U~?$g;tiO;2N8+UD)hF4iu+iyT# z|1%Q_!$~L)z5OMQ6$%nmkTt%FBA9R{QbY7$Wm;@=wisx56DGgikaj$DXf8g$ijhFv zwpFXC>{uy3oH_wInOKTAy5g?0u@^=B=p&Cn9A3{*Okw0uf9M{I&|BjGqu)wXX)&E_ zBKL@$ii$pQrrKB_XP2sC6|67u=%H{hpI0LzFmF&+MtQ9FZ7We?FW3l)v)lj*~tlrZkt%sRlE zmx%@FT8Rb~JtQUgHG&a!bEQbr!NF>T-O1R`_W=wYG;+B586hNEq4byAgrWF|82A>c zkqW3erxdwdHE^9v4x{u1Hb@kLNZQcq4pZY-2)hYF=qiOMiyBDN-@IhAKR#r@ z=mx}v=!L7Ch~P!jb_m}2;J8W1u!t|e3!Lu#>b-A1do7ZkGH$#6Cy4g1Kx>{H*#7zz zXzzi(eG~i}H$~Ci(aG5Qf4?V+qc&gKIo!KkYeY2Wf-gCR(E*J__5t!ufqCGiScqx` zCw}YwIK;DqF2=HC>$fOg-z;Nd;Hls_iFhFG0rdPZfdtzFYo5`j6D^Ms@8_?@li#qJ zZin=VgE1;l?XWCK7M$0nu8MRhNXkeq=#22hbj!R!+ZJ4aCguJ0=I}~xe{w};B*#L6 zJYq*@XNFE4_v`=h>5uWj#)b+q(0tiB9y$%Zig^qQNLcY54Ho4}XqD-%#~cdTo^F6# z4;O>@Q>aAdNl2_AI81o_h@=mC%QbgQ-^c4ZTHVh)&JQnB!+18gLiz^c8nkxFsqOdv zq4Vw>K{Rr@Fc4NjuzCpHupMJHP_jgD5 z=HyIT^fa+ibp%!db(CvvNJ|QFxO+l~zxg9lm1;eyuzk}tZqPddIgoD51yfgE+)oUk zKk^F-%QCY*{uwgkGPmbKu7N4O$}keZsr~lTTxyB5vl6*zsgs&vd@i)$vxV5#jlfHqKv68!;@xL&7Gvn7~zVuN6pR+b? z)l`8L_nOr|m*7_Rd)@rEK@FJ5F@eaZ+m2lXz+BtLFDj1mpJ3Ng%tF$hzVRenkGUvn zFokSnq%t~ATzZYaJw4xZegnforAm;d(j3w=#++@ojU}7ZL$TE0ngT^ZQbuA9^1FLi zyN)7#*n|`6r(5LMv28)3JZAS4ux8l98|_rmgua&;h4B)-_j{@?j`F{f-fIt6B5S^U z@}h&!txKm$pJ(x}!Ep*a818h#eZ@hzIHiMD)$kqdV1YA6ba68)$tpOC{=nQ`7V0$T z0=;FMTcznMj5o5Qsou}pi>*7qCc~t(c-O^7ufU-P4;)RDvC497Lt18}QVLpsaQn17 z;;_n;unF(djthMVV3Vu%V7=F0M1%ylw-cQ3p? z2yKOQ%7SUOa@Q}mHbC%o@={R*cO7oo!4+SvgddGucGPFco#S(vbRNSeV(pX_o)WO` zP?F!ljXmB_-=RHRTVYo)>Wja;tz#R*sl1VM)XKB{<~#9kPmq@<>3C+ot_cy8(GMzu z;MD@!T(OmgTqOQKKZb3-6AM_>cg`MBYcwe9*qG@*3=iI%kTpB1VD+ zYns<`l22E8`^kU$d4Yl*wkT87u?#kdYNg+F#qWvjN`}%Z8jusGVR-RPuuYT8W@cFO z`-fS^tq!7hGW8~lJQem|ZqWW~4dAB>cRc%*|7*Y8Ep`9a>HD8V)V{Rp{%3VHV+Rpi zhyRdC`Uiy2pn9tK1tEND|5OL3v^C#-MWBZ#T0zxS(^aEDm4gyS&}<6;QMu_h%GW#Z z6SelPZ^WxGTsBd zTZ+2CdK}JCO>xs=Wt+y1$y8?JpWf3Zby>8b^aKB_HvP`g$TYl?#M-K^wQf>-|w*cU9&P#f=#6d}`D5BDrEaH$Hlpmlpaa2zV zt``dCvCz2mM>>0w4==glw6qx^6R^tuqa1*j5L|ve88lvME-BW!AnMIi%#&R?nLKmo zNQAzgu+q0U9^ujhjuGk|8bFVpc$t>uMnxc%#XCvkGx{iMBEn&o5Ix2Tz7vPv?~kee)CISyD>_O864(+hNf z%AZpniXZVM?ctF+k3?lzdZo;ZvIfW6N+Ztqz{aQ9z2hCbpX*C^z**9JQTcpQ1=6e0 z3{hy}+Ift$ebJOlQRQqSKUM~2+@TlYd!3={9y0r+QBO3f8aL%mG$qy!lE1Wbu?t#! zGI~iq&g~Jl=~#A|n~z)NS&CSxz&2`dh*hc9l5Q{bunKRV+9Gk*@PX=)q+Pl_h9?iT zbkI_IDbMd^<-~w=Gwsl0!p0w!?t!?TVy~ZvIi}L)2J1&0BoQu=!z%N|6RqGH^9WI4 zlt8k2iAm65T=h86F|>(M4<_fHpzH^!x#vs0&AF8uaedd#@7`HFAnX&dn{7r>y4bHI zX55IE40q3oCm65V8Luz6!Tw-?S+&!jf_{%g#dQow8NIQWA|W2$XThkxspxfpO=e+r zlrFpC*R+>M}9O>V?6n7U#PDo z)vn^hYb5XP2EbgE8*PcwRlSO?%XZIou=)L_x#mxu(Lq-|sU6THRwwcHZAp_u7z=bi}B%|Dnm9vz?wfjwiEwUsH3Vr%)O zjEo5(s@$HR3w2q$h_I2RU@tXL&v&D^>VSGMmPQA`Jt76rz8p@{2Y2CpMgMO_5AMN~U5^0}? z(Z{ybKqbn1SzE2zeV0?mB<6r4%x2w~MvaI~l4`_YUHcdkkUeC@q^eY~0d#%QmXUjC z1gQfaL`d!Loup(IQ!Xa>qjGqd%^fG&1eUnR^lFmklE_{B<9CDtJV)qw z>~fQQ%mm5d0|_OVjh{Hw_rjyL<{3T&*web?wG`GiHC1+$Y-XDzUBTW(nJ%jBVa(Q! zP+Ub1Nve9HIR0+B0G0yhJN(MLf?Z%xGA2tXXie~_!d;-Tqa)M(x6fHT3KQq{5Cojp zSd^3xTZtjjj9LAkcv)o)Y7{b%*xnjB#j$8h*T6U^*)$hVw^<^3)xCk^bdS)ElfY}o zEFh4+-Ux6KN~Q%XmB1o(lTSAhJeo;#0?`(leQTC3*sV~6?!0({fKh&*@ z=T(g`il2>lAp>G{1;^N`K?l$+4UQ0Zr0auOywr$(C zZQJUyZC96V+qR7^cGt~y_Wtf!XW#fDR@@UY=by}s{PD(^V-7qJ>Rj?8tb#69)JXe6 zj8w&V!%s+O?Gd+$@k>k88U7{-B{{*>tXeK3-CnM5Ho2xsOd`>6I*$qiig* z=owqqW#bRD-$aG`~NWKg+bgATV)u<&DgBo62wlJd>X zE+<6wVr03T%}%m!oy>Z0dcMB(4bbBHw(WqUDjTJ*D4=kc%0(wdOmNxdR~x1ltVY_} zUjww+$LQ_u&9|J|do5LU@kE_rEFHV{)^0|aUMS4>BxbB|xc-olK2LG?AnzKcXL5o% za`m>&lCjx^Qb7xvU+6$J)|8Eg)VQFU4ZdiD-s^#Qs^US9J2>Mqz2g z)zi8L!9#5ac0FzO$peumvf_pk&h|nR->T(ivD}q<$&%fM)mFP5k<+K21fDz^5K8!A znbjG>>9aH^^Dbq?{`+f=l>Z!Fgg~kx!YQeT+5!V6WFgA1315L{#+-^&Uj9uVjc-VYNsnNq z%opFxwL!WXRLu|fv-QBzo}kJrs!nnj9HBvZ3=!r@C0$&wTB8sbh^Cam|GR@!L=GR#sWdi%Cn^|<83@me$g)=g0oSjj7$XphTdF}h5dIT1jj_r|&ZTy2 zY7)`nHAKc=Nh~jEwCwmEQ}cJVMGw-z>CvI8;(J#Vefg^qgnpC(dr$QNHB}E*Ki?Xm zkL-><{66->pVI1HlJ{Mx{Y^w4@Lkm3x1o2x5&Q^#`IR4tBa+-12Yy6Gtpdo(!?P#? zfovKSXKMa*sx$z|2ETf}D@n>Kb8t&8ekW5AwTA@*e=_qz*tY$Nlh+2@)PRGP*$9Qq zcua|e1Y_}@u~>h7JoVWPPN7kw7UMZ3neK3L)$3WmBj_JL<|1hmF+qIFV{%t( z8rFZlDqd5<^ob|e*cxZHRdKtCkA7r8Xr@|PzQXFQ-hKC@jwf#yPJ_=~tT0`va8iC?50&fFT9dI_p^6)zY3kaR!$p(^ooa0r zh0o1(i5J0r>B{W35+>(qr|SrPOhZd`R=(osz8wX3CaaipP(&)0;HJB|qgkiO*KmJr za~;w)GxOtYrGd-Nc41yN$ISH&yUrV{3tZfexSjj>W_&8Zo9Efa;h~zZvEyP)eL6-~ z`=olS1s5*(Kq-(S5>}z|BYCUbW-&+cZV#)ro(wa_`_hUfiabixxRRg`BsC*#qMCOz zPd{bmCmqmp^vhOfdATcgs&Tim^SUUtzYgAky)l2GlZO*Z5_2>^H9kmo-Ke?`Zryv7 z!_Z;+Eb=GTiM%ELuB`5MG=y79fgBCd6WhQl=lP%{AAUYWJvfj{KBD*hY@L}pWZB&h z<7P;ZR|eUr^Fg^FI{2fSv%xf` zLvBm=2F0gz1H6%-BG&Wr%wd8fA1r`6PVm-=mHKQR%4@0rNm1CD0h{9kXQn2;y<j zQwxLi1cPyOwGXGpAh)jH2MGU#A&*qK5cB3jj-uFo^a6@+G}g5Tiby9ALVWDA%QHhwH^eu`GjJR2XHg8||_H~Spj3AfJUb==#p)IMOo z`hb~LwF`WmgSP^hWvXDgox*s7C~m{d5DXjSGzp`)Dl)xc7(Me?ePPH}$92LNo{CG8Fgk+ctGsXG z$vBBEQ2WRKb(z*hnUXAhaP~<4fT7hf9!!b>&k)+Kpc{XUScNXqWiOb5Pnl;BjQSl7 zvE^v3s~1WQNLV6Gf1b zjg5Tv^-VsfuLf;fTepdS(wo_tne+9IzD+;X`TM`23c%@?I?~Fu7(zFrOmwX-E@4=z zI8en>O|j4{DRE4L%RijJe7U8v%ah)_AkC88+hE~xjAxxHdGN)$dIZ8-m~zjQIPis{ zD|z_X{x%m zm^Jt$o~LRly_Lq;1HN57wea=guTs$zY|u~?GD@qgTETdi^wCz? zG_K{Ds#=z!8S4lnCOB{QqjF+&#w41xE)&V=5VR<}=_GbztLwQ~k=OEMCS5Is@>oZ+ zLPdkMH815yrkQL6q9q$b>7WyHo0@fmD$jt7Ft@Byr`LziB;0JS0cdpkH5u_S%QK}K ziU=e-T{6?w>Xmk~(}X}`|T2@IJljw<&pjy^h!MSayIX7S=mJSsq!u~=DR<=}^7 zltN8BK1p^G9Ht*kKffbu1ZA(fnweu3F-))doHZG)?44J|||-}L7h zbQys*(x_lZd1*1nB>#+(bp~@|;JR2IDgpd1eihnLlK_XYtGI2-MHl8Ri-_6ktW0y+ zXt|+sfA(ZN44ix^4;0<_q|~Cq8JLHI-m7EI%vix}XL58DJHkdGLaks>q-dZ8O0NVn z_Der8=ZN2t)hijPRNWK9N9lJVlbhd$`H{mo+`=7dyTdpmHe85@YbG0V5(DIyy~KjD zSdCWxrF55eDi5#Sevrx2o-C&JyzFX(hthZ(-sbC5tYjDIp)CyQeO!$Dy&e*}Nmu;l zxf*`zJrH0si5O<$6C>{-{J5=%&O1y&g;x|+i=FCx4Haeo@}A%MYgvj^Ed>DmOGdcG zyGXs~T&)1tPq?4iW-7lp*d|Fh$v0IvHgWNUe`t-1(N0Ki$hqYA5VdEgis>&yPuVArI!K4E@p0xktWg8X^AKu%My)74c3)GA8P7JPF_sV2XQywneptNGD z0U_3$VzPCvm+NUw5C+rl+u2v%BhQQF4cJ|;-Mi>$z($sZ3x7?t;%=gD$dBtU%my2> zKg?Qw`Ry2XrEI}yR&`}=*c%b^a-H6mX5HQJzGF~!;R$4rUi`j?PlrpR6}J<==nGl7 z@5q%hUfC@$HHZvzG?GQBuREbYf_7|gAJ25*a=s2$hH$Knn*HVyTY|lMh)lB*y3Zsf zpmke`12;i+TUI$;vPkZc4?T|UF5co+{(zEPq=&4vESmdOl^Iam4ciX*a5=-BxI1C7 z8+Y*c1elBt>I=^N3BeFlM*m>8g_iISgTtzcd_0#_^w;WR_~h-#4u(?@3&ofqcO4;Q z>o!`J2O(=8EFe~}ZyxnqC)T%GNMJl|p!!XaBOC#0(HhbS13nS!Zw=u@2*;AFL&@Gb z7BMXS6yXfNIAi9?Fv^IY*5W|~#XdW~6`>`f8n>+);uPklWu&7l9abBdT-Wi92=?#w zK0HmPIz+fcFJAd#xVL#%#IqmqT~ag0wug&k6p+*4MHJ^i7aa3$Acg~UaHs{WA>Xf$ zCAM`og7wC+oS;03q@RtH6?#{F6D2%`LeL{I>&$5PZQz`C;P%^o9#G&xX|W@i=s+~w zsLgg5$GMJX<@=&Ydao7m28nk^4~(ywI({;d7~?C^91ryLa*{uHz+DuFoQowaC5W%g&St-+ z9($ZmuJU?&{XiTX_#?g1Xr{CzjOj$@dFW4*#x%!@`Zh)Jq{t@7Z~{Y~bkw;prs`CGXCmKx)O7#8n}gqB&yk;IP-r|^GASwmHrJJx zZnq75t?aG(9=5X8v0<_7rgEos;}IqLS^3mry7$1f5flDFhpEA%ZrFrcX|S9;ZB|Tb zfCq+i1EsT;-@Kl?W8sViHyNs>pQcM=frtiuYdnnI|5wO+FH&W&eBMb&=l zr`UNJwJW^0@1tHx_QbteM|rS+3dXxRmhouPReFxyCAh@am=~KzlhL&SnESlMQQLPjTkk^tsPI2FTk1{E&QL@cW`I z34`PvC2WpWnS1^@#027ItmP+cCT6b?a~17#bKDzR`YglDqEk*BE0L&SU1 z^Cl2xeTrZ0zL9aMoiUlX#h8SgR@l6O%Hkr+9_anoMk}w7kJPAd+y~-XRGv%9X`sdR z68FJ$oSnqx%G+c=vt@TTTr+Nnhk&&v#;|M)RO;r4sjiKq(q>URkRi91Lo)pT8z1pk zKySVv7s3KYbgO{-pI{_KJnal^EsYhN>^=U?A0zquNB^2ol_&~I1Kj-nEVx!xEl*Q= zpz)N0gXp1(k_9Q0sCLuRP$Wl2nHdLMV7XkQ} zm_*Q_X`xVc|1|3%@GAM)JgD=dgye-sPPSjytWxqMH`bTtt;e^YrsCKLI!tmemBbq9FNzn z8^g8(&#>$*G!x`HSiK%yisySsju?(%D8oCQKw9I5zO@5x6^if!&l9Cv@83kO|2l7m zHg>QF!2Zw}K->E#Waz&i?*B+3Db~uHVt^FFI?@;#giLOk*(@n(71huW^+Qj|j&QBG zc|=l5N~#yqlTpfaJVgZLH~Aar@5~+G#hGS&?qvLw^Ys*lsB5$UOiOpyU!JqJt95!` z_vqhnv#9t6tAjW}AE}Tu6c_`BS#B!F3?+v}w-+RH`j|U%Z_cWHrPG0zF~rcEihiER`Rjl&yz^Q;Qb{!rm4J*7WNM!f#3eWCObmcV@ga8Xs|Js zpzOW3Sb!1N7BZIJy|e8e3@ES4r9>^Q4fARFu;oQMUyK*tI-$M!?ph=oqO$e|6WL7}roH{km0iQpJx9!S_UO9LDM!=L zGYhHX=EjRmzd>YF_x!rJ5nwzE0JfH5ipd=?ZE>(wbS{(+vlXv4cw5?!F4wK3_z|j z1Y5!?1MC5s@ae{&z+<6(JwY@M0s z;_Z|s(~2ydY&fe?7NU1GNjbga4QK72pnd;@X;XMd zzejbLuMm_PiGJwqAXF-slE2C_PziQN;+(q)>?pH`CNDV*2tw)k9Mv_ENj(z@3{0AM7N66S% z8D9Z8TN1EI6!-^)h=#I@lc}LCBjf*#|C_W6FrYvf?cGex)se5ye=U*%D*3VEu|EzG zGL*o=XzAIX&|_DZ<>q=@+ujNFs(ubF>vIQx7tb_fM^Bz;6ze{IGqrVPe!}g|@8|ac z*C)Ci7Frn#P!IZ9kw$yX*LpWFz$SdJ0LH{=WU;cTch))1fCC>k?up?WvmMP5`Ta#V zFJ6quiQ9~Ojn|k0C)~Hcek(PQ1M`CyvHO%)G%>~P%+Ym(xZ*d9hC~>X8ArBufw$FG zcXw@_Rw9a^zHX^1X7!^)mT#CpV1%7mc%gBheqq15iT_G|Lxl&UQ%Mrs-+%KnL9&RM zv>=2&=qThvY(7>Pre(w}1a0Q7!w=-)MF_JrK_{+U#8V8}jm9EO%5NnoO(ONC6gAYZ zb!m1Qlswde236benVD}&Gb^!dL+Dq#5cVGc5r~G+5y~x{~)S_4gXRmRx)+Aw{bK5FBqh#hq0-{UrNRQ zt^^c1w*Dsl~WwwOrV*NF`?+NA@fmY9B5{Q z|3iR%Sq%2{Sft%M6J_d2DNB)&tgPxY+$K!NJMfaFsRX7yNB;57W;;1e8b7;GDU~IQ zk{p?7B#ismwn0HsaA%i>nH72?vqylsDxEOpIaj~u`vx($dq&6d@xNJ4_ z)0d&t-h(_VYUU>uW8D0nd|lk$q#1`;Hf*~69d=GmuTU3*6~W0`?K;Q}_Yhdo?_0X& zwjeCqLgm?wO4d#N|1Q1$I&5ZteBV$&FHs55@M8Z5hy8zfa#Mb2%OfiyjDD5VL&I|Fxl}ir+&v^Mv+C(Jbj&PRr|y{Cvqi%OPPLq;_s8{3 zDE++I5OX+aiIWdfUi~=0Huu}3w8U<)VM{T;3e&D|ph%$Wge7IrWX1it+Gst&oxmDR z!>rm$S0j9$Q9U~1;$ZX+d@0O~v#vJGoU&Lyb7%s*t{guc*5|KIk?*S_E5B^o=Qx5I zxWH6m|AY4YBW;6Pk368ZUwx_0)K59~PQbvg;$71(C5$xZaI9UW&14;(XOWZcema}| zJgD@e3v`4sCnY307#fn1)09%1vp=_aP?N+Y`(mY|%EJK|`}eS3PA$md6#`<(V%wg- zOih-UK-qo$Y@m0uHmU~3f-E@yNDBlXA~992b$G&6hV8KD%XX@|I%;y>hRrUrmT5#B zcKVzn{EKVXU}2oB9^QUKT$x9yar82eG${>KweCj&lnq?;n*y=!N^r=UsIXq9o1o6}R`qdiPerx;Xn@%3D8A#YQc6VQEdF-ob$vXC`iQTiy0 zWK$x#nFDjN34pC1$%1Vq)0HeD^Nge(p@AdO?M)M<~leAYOd{+Grc|JisQjrgO9s zcziIR;U!l_ne-T3e`ssby|$ompkQ)Xl)BO|i8$l;0!~da1k)r-#tn7~ZwZ(R{Q;d$Kq_t+y z#%N%Z)4I0iCtK;x&1f)3|B^7&PCwYK$)!7^YZCwM$*lL< zMfWG?c-~9H_{aJvc=|g*7S9wP-_TV!s?6&hB2VF75uZ=YDnL0jdsY7RPErs5d0)B9 zZzFv6?mZnIRFD61@YLgX7rcHSF`v^f58R#z`tesL<}%dmePpr>&Z<4?EDI(h2X4*cCdc2ghekyg?r*I(D0JFf2jR;Ry;LrPx-uj|op zn__KP%*>j+M%bowIzvJ;s?9VfH9L8#j>A&jGtJaiosdqrwKXte8xS==lEj^V)!SiX zLPFDRdM>Sy>Znu3!CHIL8ee)s#-?-})n~L;1)Pnqza!kXT_v<-U{@ZLb6Z;-l~*Y3 zn8uYfg-mp=k72rnhd5B=GKv@es^?^5vB77246i+CE+TJjk|cWsMFZUdXcyr zngZI;#bs45dqa(?~eU;_-JLOdVNT7PIDy*HT!U>ZhbLP2PMb?9GLMW^1ic z8dVQSM=-nIbazMzGZ~~ZhUS0aDx})-Z28cV>b$yR6t|1&RW(O|d2JLobyoxcQ;i-C z!hAr-KH*>fO8!R_NBb`>n_h5LH_ zcc}TVk4SR;xK)7?-etvJbD6_S_DOC1cY@!gEsr-I7h{j7+U(_VZ&0VnWZ0prNlsVW&>_DuLH(U^fI$Z#W|J?sc4JTn;|- zU_~f-fC&s(f9oGMckFIz8=|STM{9LPb3diAQ^!0dj}l|>1=w^8!ULG~-L(6b9g!gMZkY6)O6n-yw0uSN>xkvuA>|JGZwtM1 zX?UB>a)XjG!|K$fLdy2?`k?p<<1ks7Lferw1dh5qtn2-t0=tz8?-raBqwgA)KSdHN zrJLmlJ)mT3**7o=BnMH@vg5Mp`mY6eeODDXR*;{x8S!m3A~x$`upOY;j8NGUf4L>u z45PUiVH>GTT&rZ;S*R$%H4F#pLNN+s(FF=gN+YWa=PF|a$obon{0Vge@k{*$*n#}i z9>9@4{GK`R6GdCOkDDPh^!|`lX}<(LEqlN!&O(v0ig4x#aE`EwnSOQnIPpac=fNv{D% za3`Xm=a3>e*dbh`@whai27H)<5@0mW%kxnaI^`H8ty0}5sXpRT*zV@e~=FS2|9n@R}$caXRZ7*S;HOix&Qgp z!TN$`1$B>9lIb`@1bfon`N&piCsk%TV+btO-sK28#7CG(bXS(f-u);m#7CKlRNjbr zvX$duTBwIJLy2s@|6vo?Gd#haL>Wk{rO_y>XpIU*TT(EWOB2xCpx*rE|L>{?15nSSS!w4v1NH*t0M&Dbe^Aeh+PT{PeWX{SrmKu>j^f9r zuRQ<^C6T*K}=(_XFWAJQHc*A4%{##}u( z8+65F5BW)DtSKfalyOx#R1cginXsn2Ex~p}oQ&U+l8#`vYStK8f-WP%G0}P>^pl=enu^m~LU+_8 ze|faqa8(v%nU2hz;^r5msynlO2R_yNR)Ezp!Gl$4yV~DHfEx=o^|OYtBFs;nx&xmC zM`}6I(Uds+lH{>^^x+~x;wuMA-q1d{B}8vKmoB9;j-w28x!fvEcX@{_w@yl;+Dc9V zHaS%@)2%tlTv3vhi2c<Es<>kbYnOv}m)8m)e>wfOwKRkVOMx9dcUd59Qb@VCiVZN+J5d~hb)_ze<@s5BZo@5P z)!AiU#mDT<;pKxZut?KqKB3ou&Z_Le?3ZF@?SzH(aEOvt1ijCUMg+KaH^ewhkwj6P z;Ijb)FbdAS^?l*uZ|<%bmhWg)Fo{A-=>EXA2_3-KNF@bWna$W6iiNnu8;*sroff{i zx*(b1j6+`-?wt6y#Q3+(@#x4NiC9uwDRD^0$y~P$ecmxU@mB{qwvk15f4XmdX&zy0 zfeAa-gEdYNk3P;0pTOMtg(Ra(UK*x9)^bmjBzTGfR{X|rMl*t#i#<|5oQqi`sZJfC z7F|_Ffh&z=78oEU3-8~C%zTU>^Jd^hNR&SLj>bSl2KYfE7+?C#E_uj-XCwQVu`6!h z$l66YU&@%*`)Qj`iO0v7T|BstfeObZXmRK#)ioTU>G~XJS-zc#;}O#Z`k_-D)rz%4 zEtY1PJ7+p1S?t5!t@lsKy~dT^t)5-H)7=%>`53Xv5fubT@cKw}k@9`=Z$%?BE%xR= z0+NsY3h&&dkN{HroGZTb)|KXj_#Xu4UyQ%P?ohVhESTP5DEXClY7Zg3QX93;rp0x) zO`aHkg*K#{;P~5}7~>>2?3TzTVF)DN;=T6X%;-f3TezEkytTm!kUztoEcJbtN-B~S9$WOGk`_tiFb2R5e z#3Xq{_Xs)X8T_C0_jy6#B;L-<{(BO5j+%8QM{RfebbviT{(` z%zxW*{VR?CAMeo=Wof`f2IbF9vx^00{t_@16<=j4CByMPG6|tb5oEa}B(!_l`A^*R z85ZW&h`*Q^*lc7({h{-*&}mkmoFmRlZmNdA`luWZ1>5GiB30wPiay_-t35E`?(YFp>)6zknMd5iYs1w zn?x|8p55oE3995%sF-Hzw!LQKmAmCC$JG35a5dWsU_qVmC@5R^CdbGp8!;o!x`M4 zV8oE;k_VxtE#?hV1&to z@o#PsDWjBLqb(zRty_eWmK`{*Ls;auBPSqy-z@x04_5^?Z%`g4ok*a1i|s>;#|a&G z_%K0;8#Q-&au^M;%!odc$;v>JGu~IqZnyok>c@%IKr|{wAmNSA0)^f6H?L><*W~uvliPnrJz7*O3xtF0PB$ zTaLq(pU<82n0||(G07R;v%LN<*|*uw`aPd7kJ{h7>T$$iX2aTILgqtG2P}rlbw-XJ zd=L%|y8xYcF0uMObRZonWML9y5Vi@|vWFG1JWLI=Vd0Km+$E zR^>xyk71Vb>1yiEU2EDFh{(~H1K2O1(`-lWBTwT7pqVpS)-5TklcwDa-mbFrvuAMu zT$Y&~yjlxmr3ujwX*>?ib(27zcO%ca5z&{On(OQoXV9xcb+}x$-M`A%E)P4t zSXp72DVCZ@_kBOKUx#O=wN_xqhXH8I$V|Q#s8oK=#VE3{mKiNJKO?9pi5H^oQggP} zSD)gh-D=KW#W#~F_n`#_IL6#?dA)gW#XVKOKs@1&Y7ywl793!duyA{c(#u#JleWw& z@QRSw?PFFMojyAX8{zSvHEU~CSO``{nGKNw{vWTdqAfz2N^cY!*so%#W=|H?e&2Sc zn5QmTa1!(g6-DLjO#PnW9aIj#s6vINu-phT%*83{(2D>&u;I&iZH?=tFMf7$9(sW9 zHUU*N<{`q?T78?jlU8dfN734Kn#pys0?uAp+&l+SwVdNxPVtfNZ3aga{y}4|v1nb+ zbH*VR?#X*vN-TlXis`B9m{jAs8#8X=%u#QXw_DS9jpzfzC-5Ql+#+n;Ni6-X7JNoH zXVo6wyw&yB)+F|4+E1ktsNH>X1WdoE%vVd~`SL3}B|Z<6Cg+3O(~5X<_!kGJXG)%N z>^r}yWN^q@pt10M>THr4DJ(;tfbe4W^}?k>@O!)$22cFbo`BuXl#MWZ5ZJBH_UXx8ePLM3b@x{t{3e8Li2BOvS&5%mb`_{1k4fV)KE&(r!1guG&M-b0@Z*JZ!$)>HV6M!kZp z4&`~|eSja>qeqLLc*8>B^%p_(4;X*`M5Ya2)S8R@M#@5Yr&qYN%uG3mu~;p(=2-+ zn7u=Ql)^-hc+cQ2d6R=kMP()YxZ&lLNk(_ zE(zawgs1;1ec^G#g_6B2qv=9N4LKJRlhs?1)z#5G($89vo=IedcG?0hm??4A`b0yG z7LC;?PR2AwXF`ib3OafPc2I|^G&MT4qM{vTSaoh{$%4;bqp}41t%^UzR@HebDf4Vky6|~ zGVoFthSrn`In}H()es45GNO-Xc|4!;VGN>lTbX40@V#eu6C{oP6T+l1(~4=yG^VTM z!c(#4xd=IgT}Y{~)gCy{rC!+U-lf){X02QJg=;%DUMQNp>u~3CT%%5OZpmrHmCAOF za}5s+wiAa<@zoYtSW9iv(zEbAba{fK((tz^z}?!LQ!q1?(JJ#Is@(G+YPDFBj?YGz?2F_(9r(ZjJ{Hi9&S9iz{IrsuaE9tINeWZDNN*jGGT3Qf*<$77zH zyqBkzG?lc=I>z!W1}Sq<&it@RiyHPNG8Yt=Ao4uG*oJZ~9uD;5E+UBiUJarZC3_?T z!H(Jky9}i(*d6tWu*BfIF4PWk*~@)kP%?%J1DVLkeSt>AeX+(!=oV+T`W;O!@+6F~ zvMUFnk4OXml<>fuLLy=q@n#*Ut9gM)z*KdJ379D^3)@C@_z^>dJy;V*l3?z4P-7BS`pxHzwQq9JnO{qMAyxJ zr-U-wT;F?^+6jocg2=%e%(s4{y9U}g?Agy{U1F4ZsU@7cgLGRg$lVX&Uq8_o9dh@6 zo$2Lowf9(r;rDz5=lDQo{Dt1JzT09R9D**4AwG`JfBkXC5tj(Jp0G3Gh$EkXpPe9Q z5aG7(4lc==2?D&CdYkfKiP_JPBW7YcVu|iqgWRqis-%i2*FEm3DSBZ=r9@6GqS_rD>2Dv|ApU^-&ruy%i0gAW#f0OkCD z0^|M9O8DPZuQsHQ%JMS5Ia4xw29MAfSTKQL3xgyCLGsA zc(g$OhQjPpIOKfDuDa*(RI}pI&xK~GO*$3DqW@w3lLcM6Nn(XAwZ^KrBE>9{MVeLb zq!6)7hiqwFj=ESgWBj>G>QMSJ@k9xLYj2o5wyo)^ac)Rkl|D=^RmAG` z*(Q)pX2C9jlxUJXoTkg1QD(Jsn}>me3Qb_CS+JSs$d*LKndiuqbZ(Q)tiiIMESB1- zy@!i+pXj1y=}|hYVycL$bGv8##6(wpG%v}>9AAB)vHXG4$z(~WPtL8MC#n7jo8d!z zyW$Z)!roqAIRT2I8 z-WaRZe1Yvx63uJlh<;+czN;dTKW#GpX`S^aY;0ZvEL_KH)@SjEeEXRe9|=CZ_16AT zS?De?7Jt#bVr-u2gwFAco!(ijP4%OA#?ytt9Dc3MFEOG&5Xv_b1^`Wo$D-9XBk?N! zLb4L}aG$K-u`*qml!MrIR@V36MNGca2eLagJB?=c^%XYb@3MaSE@X=Y`V?);_;K%p zlfPvHC0M$GE#Hmw%S&iF7?)O>89QiEc5o;+rWNyVG)F;VNz2q+fg|22x-^BGz(HZF2fjkM|V* z{f=-CT7+77dO83E-?({lR;sfj>u1nFSU_)k!!3o1t1g%oNcX%2M|}_NMZ99Bi<*=( zH$6~_PkLzU`kW?-;2fTd?SfXe6(NP0W{bl4v+Yx`;$Y84Vc-eV)WDCJ4guvkY+LBV z%cvQBb5e|=g+Da%!&5x~pAM+~0c@DCe2qm=E@zQg>ZuF(wr?>)yhG7u&;a6k&r1xIL^-&&-JyrdVtaJVbdcSt}s^@^Ms22XhBO zZ-aFg45)bc0un22metly7kdVlCqoCzwEhGp#;K&p*cNeJ?WYfxWgd0MMM^j9j~LTk zF%FNw$FhXGLLqQgqQ%3=D?sbN>SRiC+U%z+x=MnTDe^8wFs9=t1%g;OiYNOXU!LDo z`2Vo>j!~MmTee^z!?qn6wr$(Yux;D6onhOy%?#VN(ec$ex6fB~yQ|K)-9Pqt$NO`y zXYHkDt~p(f@2O$&XM90Y?G2clCgo&`cAU75%nvm$IJKk>Wlm=mad(L@(Q<=lZl9HBVcu|cJq z$0Y%I(PyNsClA<##Q|jx*^oh{E`LB44PvQ-p4$Ns$W8($n!%B69Q?FYibAkq zB3|}TfOf$$xKr@rvm`rJjzpck?TCt!?9?kk8>*X!e9O*51{!HjBj27CMxq}`gKSsF z%m4%xE$SmRizce+Jp*nf*sufgaugL|NTV~70DS}H7V6F7y!nM^4keIwa*7d`c@)v) zmT{Ech@7-fburEitRmjtrc-dsWBaCAQx>P|Q9AVpSjyg*(8U9+3wXA?|| zi#h&^{qRdW!Z{}Bm#0R-c{~SmvKR@ijJGvVFVw3jU0yVxR-x$rJ&8bE7Ql&qqOh8? z9hzFiTd;T(Yq-P$8FYEV@$@MvkAQ`3iWn6nniJZ9LWt5uSYPxh&8!oo5OC+{+0+$M zhPfsk8|BY{PL@^qB4n*;rmzY-g^~)G#l{zwGU8g@_USE(dgJt7X50)=e76RrLB%@7 z*Wd>e7L441;{(#nA;jjac~YUaaQtY7tu4&QxBWz4^o|Z{beM+cGvGLYJ_*t_vNMil0aYWT455<`2;|%hFFtI%GIa9)oOuq15vkw6b zP8envjXA_n%wuA?Nti;+3(b-`aD#e;L*uORF`-p;9`;BQrOZ18lv=N-2D7-zE?im= z#HGdDKr4|YbL%_O_z_uMqFJq~BPi7?C!E?Q)ljCTc;4$ z_uGLmw*0IQy5$3^w8Rnqxh9-~UrxDAHPbpMu@W@AZi_$E^XG}~OJpwIv0;DO5!zP= ztKaUV%D~M8gywr4m^=1?WWjS(&Eq(d)@j}4`bYGfL~|jS@Uutw;C~zPWUwqZ`faeEQx-wN&_~^_e}i_2&hQ;Z_iI2k%bS@w3!1 zq(<{7cMdwGNG@Ie{8E4aRNK`)2PAVqh;Vk=@ss^a;E2_5Pvge%T>Dhbo1m9UURwwV2t@-C> zj<0ARTC%R{8$8F){NoF)PrjpBE|DYNn;hoPh$)|gZhGl+=Qs1cKKvTRT3sVJia`2rr* zJh8;aTmegM@Ft+iVCwe>UOtUzMh!ejCP+}clXsiXn5mp=pEQb38|Lh(9LP>amQ%yb zQVJz0GE3+eq99O6O+WtJHV|^?J|--v;a;yH6nCN^y|3gZK6Iipm+w9ujmUdVt$xK( z6SKQy?R+M0QcqHpdw!Zjy4h^EQt_3jeQJg928zW5?_!Cf*ikchvT%*Ts?8Yd_gbAL zaGJ!M67PMY=#&EdNt0!2msPCwcvl{nZruSjRCP>|=E=VxDBOk6Oqf)h3si3SIQMV&EhzUR9iD z73tSRTb-)s{Ulg?8PI_JcOEZ=87eA+RQTC*&Sz*%O!!6eqqmI$+n;&z@&(MfanZB; zIg9srO&(|6a3GDM8V&;OG7ID0rd(x3I{pYm>)?_n)9KL4`AT14Y>ivlwy{Y#0iDk5 zDIQSvd%CS}z}6uBv-ReIDc*S=H`B>FPpWS80Tkh21SZ6Nli#K62<@2WVO>&3Y1*qn zhZ}BYRh+x!79-?O86K4r!`EtE7NVD9FCK-Lay zg-evYGB@BnWW?{!J?JI=1$=GsK0G_OEW(k(5Q6=RY0_|lWLk*0Pc{SGEWn9TsrC{9 zCRwND;y8~`KtW2rJ9`M3s=HfRic9Eiq3UmUkPy=vur=5l(`k7T!Sv#)UTuv(+qP?G zm~$J^ZG!teCC^`wtM+38?a-Oi#g-a;{if`(75NYi{>HNsZKwRb-Q&+sFUWxyQr%KHpx^np zr6Iji9Vsk63DqY|$E zVRy*TxDTq#oLY07soB?J(N6(zUa4>3WnS0DuH3$~y4@5&D+NF+S(rOQrk59_E#;WA z=&3~)4dc0~?U|T8A_fQljlVy9hZ2UF7Pk-q2KQM`&&sZK!-|(>GLD6so0og*2EKLU z@%?`EK%-QXk?XY0(VF)zySO1hBstTRRJFB!KXA?M9lwR__s<&JKAleYB64q1d}H`? z4q*C$AaI6Q>!Arv-?2(2;95i6Y$yatb9iY?-9Lo$0^6*>l-i&&m{EE3_mEk^(86jD z6rG@JG(|i29Gi3W3KCnw`|y#fnq(D4S9&1xPvSHvE13`I#w+^@O9QVKzfXD`^l!-h zh%ut(^clkk3L6DA+T&HgRE59w8+y*iA*LgC6k~;N_x3;fm_?MS@RY)=dfRp2R)#M>FzC-gXM%T76&k>`CFT{a$BVn;niL&3pQXn zZ>RpszLepWLV}$Ea!ZEE+fdyKVP={n`Un$H&?bQ(zzpk!O|MwJQ|1(IR8;1?-~fX@ ziF;&pfYaEv3Q~YDBLF6#!_u=Pn-d@apa^TSh56QhLfWfBKzgP-Hgp|gVMKQ z1n!K5a4B%TqZKN}ichi;y<7{Ywhj~G0bjKQ%j$t0{Yd<4AN&vxY=O3~L7xOoKQX&7=|3sUl~44DyTIMM^=osZe1&wM8B zSY%;q^Ys&@`$xcShoMS;VlzGftB&aOJy}Y(HEzhVGeE^lW-_UvS#-N-- zYyQ9moyZ1k$rAv`0lT7-a#d@i!F;CKJi{&HZC1~G<$;M5jZ5o=b;`*khFo9!vB78s zThdCW){2a*UrP9gBY|rvnF}~2+HT8o$mE(Cl-R_IY$HBB81cD)A&p{W77il>&0-!u?45W?Kp^~r0j*e0IVu9Rg;!YT%6a!QroOsEGGExYnc zr8v(R4X;hFV?RYhng+Asv@MW@Fq*QRyRw+{#()XL@*{6!L*~t?jfg;2(+Z$mM4V`T4`fbn@LTPzpC^>9z{Hxd7=lL5xED&)S10QD`(=W8$hQA zQsI;#%}O57QyoN!$&+gNa68Q`$hDMGugJjC@SvLSOoIvbn{oUs$=gkf(?RQ!%7lr=v=4&3{Z!QQU^_sHn zBPUT(*De4uZ=)Z7YeW?JM>|r1Snkraxb)xz;!Ij|VkNRjNjn{-6DCV4ap#Aa3DQr8 z66`%^3o!)stRnBdI{wQ}(9|7LhIGOQBx_rR>Wr*vk z8jWbSec(Mcl!3!_p|}_cjHwBR#^sOFtO$&K!>!EGWuxBnRs>==rAt{4QAL%{*W`T{Ke2rY<#BoE)1*4 zgC&vaQzBs18`H#zSGb+foPou#2;9$AQCm7^iBktu+vG>f7ff9q2D5n zo()TKtH_X<62IeF)5@GS4DY%QgxkMO4}{w+|MN<0+pcSH&og2e!xI)xkqb8F2At8Z zL~#&!+b(0*F5}wOL?=^17dd5>hGy^}TK@)ex$^|&1VUS{AOf{CLqHU9Z1-i0PZ(wW#u=FC^cg|Sl zLv8p+T9bIDoBKVll+dX|CZvn}ESSL9d+4r%8pfEeg>Ccs%W&028pkT;7jFoHPk~X( zTy9#q1adV@%|5ji?;?CpWr9v+_#5-8zlm1oDC1#tX#tkO0BnEk0|RXHJbwX0fYyxY zJH-v2V&je;k*kQRS9BTRD*nL;0#ef=t5`}ZdDo@{YdWyE}^VQD}f|bFfvCO3vCZ)vDQ(58ODW%#z5Y`X@0n&#BcB2K{rw zo1+*V?_12vB&XQIR-vs4knX(9tl017rrct|ecMqheScQIF|22OrnI2<6e}i$E4RuA zbD7TZ`h1JhmYWqOMeEc=DYIG&GVgYEg)Q(gG%C%U6h^k7_|y4 zmul8K3g~IzaUzm_R2zb%WX<@M@AA0r1&aNh8O6S;8FY8HZpt1N=rH+{fhDKNK`2|m z&`5>~j$Hi3z5?=7@L+N&6d7U2FWv#0;km_a=*A?1LST@wz3?8PMVUNJ`#lkh;Nv#30vt1W<@lL-VrKSg#`$%Vhx*zW6rWOaO5v#> zmAqY?JCVe~hPTQ-3_({5%#1P0#WJ`hK&EzjV=0fPm#U?D8CxFRXuf=gE_3x|9*&!CSIegVD}TYl|ogjgT&HBty- zhK&Z5xm%-^GZEx2HPNwbG%OllF#ozm`peY0d@oI{-zFyfHurxE`2OEa{g3;js2J&R zAb#i|ofUJlGiY3aUoCVYa-hFTBG~zhV9Yf?1eF{2{-J5F!U}Hv1DH0Js|(G(U8f2F zd<(O7h|i$prf^1Eb%+c)#f`?qEEXC za=u_>ZW8S|}TKu)g3XYaXiuG-Rzm)p;{tb`&pLT|`pyK}`4%vzQ* z-f5Asjaf3ILX5S*IRf^qJK9?0qE#rz-2r0;sS8gA7}+Im_tyJf@-gDV^p5j5dX{wx zoB5#A!u^j22KoBmm1a;%3BOJhRU%(%lld+rCNm|-O6U{(vf70*Mzb-tx%}?oDr}nKOz3*e}5T1!t?x3#kavPzaQHF+3!gp z^Ff1bqY24V-6Kb{Tmo9+P%iWhvFHoIs~M~NOd0P0awQV!^6Q09c&2sif4Fr4kU?`p zb3OmKGIVUx0Sg>u5_=w^IN(y?wAkg+nD`X^;X@u27h8!9p;eyI&^@n;G)5s4M7L^7 zVnG8*fAHDp-j{)%C?9ts#VF#m(JS98ZIobNfe*0WZVt{rzNSK znestHnNxfI?RzcxUoZaGhevaaE`9w?qO$(YgUImTy|{smy%DXGqnRbGh@OL^qNARH z#XsIXNqI{VOBtP;b)`m6-8&JrBv>sxIhZ&;d{HGAB~-uwSa~neFPc%Sk7b3$kTFA= zlIM-}d0WurJ_rrZu_!1y`UCi#^j&tr!N!?|zF_Y;*5=Cl>1~SrX`OZy&*$S6kq`DK zFhWQ5-YWi(tyVA`bTAwYmEKAZ%=*HOJT@ihu3D6VG|wG_CsjWwL&e!Ld?>S5`McQm zdFQU+S#46e`h&#f)TUtjIW5F7%%9S?CQ^JzAmDMCjT;+C)6%|oEuP!UE^0ar$J0lZ zGu`ROu7*eRiAc1KI^}i?w`fne_;ekobRej~I*-`9a_e%1hn$wpeB;ZrqN|l9{;G3# z=c)tF#`U(vdr1X!=12*J;j)9uU}fibK|*GY$+Dhbrw#ir-o>HZP3F`;%cl?J`mGW( z)3u%~0;7xed-EnBG9@2`v98aJ%MT?nnxu~!iteH+In3lc%$X&<&w7EAmW?Wwsj`0S zebfXB0uB%flzPDlI=zV>71(uwVA*X^zho;`-$PoMKsbLY*+&Uj#%PL+TDci{Y{a3_ zBeu2UV@XNrs_0gzW`{ANv)X;j3RCGS3{xY4c$V!og%PrVki5;`C_ND$Ci4+<8tlUI zBDIRqeL4ugMr`*r!%{RmS0HvO;haI;LASrsA z5YLsBn7kJ{ZD?fR)n&$X_R5)iL+Mz3Iro7!lXW9Z@;RWX#M*1deHYr_C_$+Xkp)(Y z79S$-LQw*t%jEGBBlQ;DXV2>{xxI@d3T5a5g{kfr@~5m(W~NI3STIlT>5w445dqK? zlu|aDpZ;z3gpp6{(<7!qt-pvguusw1zoB*U>0p|saCj8!ltGC@x$VoMk3Q$?btId{C)zlU{UJ;DiDLh zaYbSo9NpG&4DJpY9Gi0f@R6-pfRaAg6ElVA!y=&w<0R@ZG;~+~_w(+fP^HyPSIgq;%o4So84@qQ6qTA&D4y z9HAXJi5{eAaSdGG)@s( zn+2jsLI|=SNuS7jKh8YjvGne8B6friyyN3=0*mN z;)X(I27j?z=-ImwtJ>>*@7US@BcNo-{s+-TCd@E9HejFRJHVh;0A*Py1^5XuaX7M= z<52A-4V!a~7ngUGKiqac{1gZQGDp+0`sC%rrMG8SC-63#;j+;(>Al6yS#1_YpNMv1 zpb~eJfJdL5H#d^3zl9!!w*#*tLu7b+3Ai)jF9V7`dF}Uf_1b(>rP7+scNTm@q&1Gx zDoh;J?22Q1_mz>E4w^GnT`mw0SYwf}5;4>41sjoO8iPBJtfVF@64Jp;ZFG?tW@RyS$JK8aTSh zRN;_Ve_Q3Gg!2)SiJfDcAj{gG>&yDS!&|EP3b|3kTl^&>Sz8ewD82G) zdVM&}VY>74;q46$fTRg>WKRGP&5k?nzEr zE%^^4p3Ccc@)|VzFl3fi_c(@H0D*_5tH7p_8o8{A>MHaqn@cV^*QY7l@%47;qFt-N zlhwGDrk~u?a;dmzAoPpKle+H3)tzszsVgp=vlb;Zd(b7bm5;8(Fy15f%PO39;9-Uw z=sIR<6P~RDSrAtD*6}7<6LOacNdCi*ICrrW%5V-J_J;LqyoDS_L(da3Q1+8%L;Mch ze*0E?GM95@Uv3)GfH3`_WL{{?PredR)#B1c~QHA3S<-qrh5?*BCp0HyfGkk5sn@L8009G-hkyxU4%})j*ZR$7esD~YT*>jby$XH za!BfZBrm>mEr`P>fyV{fdAxpgDh8g6ZS&=evSQt``1NsjB0mfwk@V4nk=QWMcq2!X zO4Q0fgbuOlplxz3u6|4BZg2>dCB{ z8UIFf=UIb6bK6Vhww-HYVXd3cK~{}_U<^Y7$sB|XhX0`x-mq9Y-Ay{G20J|CdtNtB zMVUS_R$P`D$d&WbRSmpoP3~rIf=e11?z~MWwhv`XVo;ysJD^QZMta|Imc>BKE|K&X z-=T)sa<+gDNV62Rp`-+~_=Qc?RD2?-Jzsq-+O(kiOm}DJHq--PZQf$E&2ou;EXdnG zqO%_N5da#EZ=?%-#60u6{flfp8$shuap-P<~yl9n>1|^+CH_un0V_+Twy_G11Xv8=^Tg9EF^b6`o*w) zyKd{d=s**~w3lC9{Fbmj)~N@@P%JDUvWAHnbx#j=v_5WsqIfd^87^R7H4^$yS9f+c zj41m4)Zil?{Ldzs(%{h`_#snfAv);dW7NuihXrcU0te2S+pXC5K$>9InM7)`kQr1? zvBI^2IX0v?!g-=~w^gG*z5~>U-9%|~&8B^@ZCj1}4>g5C1Ie7eV1(O0MmtFoki3Yk%*c;1E#V6Znl|qB`B{k_S_^jAdJJq^UCh`jgAL zq0UlW+uBPqY|I{vvL3nP)X{q=y`*-qLJebM)XG^1g+6J7xcz0b0rEcJ)GJX1S)5n4D^X5*1fz!1cpR=w$9Qqk2uUN`P% z@o%>AxPt#X4U%(5kId4hc_w;ul{hU zj!LXL{#p#&ny?|8A4jcHD>7kka%?V5Mz`vtr#>mQq9x zkZmybDtO|Gf`wf`Q)O(j%w2(^ipGVg;SqQ_?f{B}dI@%-mt6i{k>#6_5Z*L+7+(yNlCz zr90Hq&StR9o!uFD2f8^7hIxrO!e>5$MJG@9+cqZu$__uy1Wp(gef_HsM(5RUriP4h1isgp6|oOe=$j#Ek)>hdze} zrT2_vmUet2iqqB|XAW)j1#NJGR#`!`*vu31J#~~r{;XvjR)7eMzeoIeeHW_~qb^+| zaGZPK%qwgk9Ky@&G`H|0xG(@wXzUn3@-=p4q%o|Ffxn0!F$r)d!=T-}>nR{%%uGE` zW5DJKXan7n!WkTV)VfzFS?}v=Alm@|qG(*PhICogwxSG65)kCHLh9}4UTTqg=;5>h z2|gOot!Y99Bm0ssLZ3Yr*GGSs7fP6R-iA8Pz$~gA6aJ9daQgt$)H`D>Z(u8n-Ts@` z0A%TkkRz@j*BW7$FPhgb`vj zWo9?1;}A0){>-LS^_O9LKF&QK4Jev80S6QPGc`?7->-aHHnN$XSU&4A zzm}dqZ2SrNK;3yJZm*=!U%@=~*htTp)x4{mn4*d2!vk-Dn74}h-Xe`YG7GeHF|>9V zI*rkfRIfJ-Gzy1giwV6yyXOW~3LUz#h7*{0gm1VVX=HuBw24hC_slRw-5o{VAx-$qgM+U*;F>F?$=*{Tj{(a>?5aMxX}7rb7oG zL~*szpH>CxTcIs6C|@m|}A8t&20 z-Dgy@*%IVG=V(8caD4XF3v|`h^w?fiJ%ja`tcfG|Rf7W$y=T-KS=AYWH^d{=^0^sK ziiyoCp*fI~+Z;O#BVl9LJ^gO5=P}Ak(K~{rnK==4A?NufCSxfW@Zb$1C(msh%!r>^ zNagwBo>y8J>CpZl+B>2hll!^3=SFdD@Vz4a=cJIwf6-L^oeV&~kCE%&ObY+o5&kc6 zt|;!m#JPgDo}1e=)YLWAuzuVC`Rfw+XX6j)v9^)K8-BE=2Z3G7=`YMpu|iJ__dMZF zui^Oek@Cmm|17Z3V4RylpA@HPy4{63wyMC?)()WzV`8uoB z%eu%GswDW)U)f^zj)Zw*-t}MVL&BS41(fgF@F&#&AW;6drscmH;vdPeP(@SqTmAV{ z29bdPV?S>fhFT*w_P4ynV0eng0w#o9ufXCaC_|rVd~E`R|D$(z_x)(&>!n4zMr%WP z%F$==WA%df(F8mqVtd=MekHfbRXy$2rpXn~=kr^!4q(Bx6LQvwDS9-aZ=491pF9k$ z(5!EyAY59r>svX4TN|y>#L~`3vsqnB9b<<@6ngaeoR8ob<$&V$YS3 z=SL*;CF-#hSZI`u^HPJpb%7UbB?V;!wE=+K+vMo7dNbvz(uMs-)Q9O&hon=6H4pnr z5}0xP7}Lx+bL>qn<|ZmUhMlcZ6z_!p&_{WiuR2dCjW*ho7jhc61uNG;GWHK$R4MBK z1I@A%sWN!EP^V=KW$vgORpfQR5N=de469(kypsOH3Ui7*AriDs7Qb z)Ng6(*NjV1SMo54ZDYj0ZzvQbdXjTyd^Tbk** zw!&ewnU-(pmg#A`>>mS@Y~$Y41oWPnIw;Xy0Vx#(FO$_MckDQdF4--$kjAAxsrYy` zkU*!B7(B$JowaM7oJ`c7Shyp94|+3c zUmfP^#1#+k_!%DW+`O1lrp`NRinb=N`*W&{gGCqK$RU0RQL*F_0|q!5ht+; zSzmu3D?L38KdaVA`dvON+tovG&^$6z-OBJf!)ej!B*_et?ALJa8m8=@ls{N}(Tb9# zvCZ{MFpUtMx^KH@tQIyGWmZ)Uip*D$)mWXYey}K&?L`#SlE2l^!Z)Y zfboI$HHsqiLuH1HZoS#Rq{r+0fPmzh^FD6C4}}RL)*4Yw=x#qi)TfGnH3a-50VTE# zy#tFh^&VakS8onc-yf57CcNJjl7Gy@7Fl*4Ecd16-~{~@;@8N=9_ckqqY=?($e0Cymf zkuS6&=)7zTa9Py{+o+;%GMF7?F@)F%$T2Y04atbjG)0dh&Qq;415U(p8Gv)eZ*F`9 zYP~hg-_D<+Ajaz>0MZjJS?pIv_z*?&4(g!udjVzxxF7^Qcj{b6f^2!_phAW6DPdPDkd z#-Dr?BJsYP@yqYRLG0hlI&$`AHuh$YX6{CYQf3a0#DDw$mjdcPL$AWP4I)4K*W_g% zsv4DkE{{e;IHcwt2}zf}RV0%LVi^ewx2vYE0%%HBTg>aT$^Bs=8d6vo*xm~7*z+Wx zM1VUTZt4~N){_VH+uqS18vw2rH$(Yxf&i$~mXc^m7Misd{XGi7!yY(=DY;AN58y4R zciU-?Rh(OG`xrevUPK1OQBBY#V>+Q6f_4IdI7K#eS7Cve6xe`176o zw;Cd}23OLVLhE>L+!%JW(n8xfz$c+>rPF@##eKD?g3)wOAE8%b!DD#P%%d#%?U7QT zT!c^W%BNsAI>9=0sdb!&BfKeQ3wtqv3@uEgr)?UJazg#RK=!b=WNfx_HM54U&tEhc z5_hX&gB6Q&*`(DrEDOBOdt2i2`LyIvpjadlW8hvkKM#aOMMV=XBiQ(l2$cb$)sR!x zX>~7O(SzF=f={ZV^}O=B_&xZNZ2dBr+#={~<{xn~`?N9(syJ6fF;MtS!c$HvBqD>S zkel_jhfc^H#8^oNUte7en>MEDs%Njb!zoJYe8kd((-wKT6cm;$u?miO7Bko)z%+!d z{GAH&zR~BxpcYJuxmLjrYH9YoMH*)c$Kg4BV9QIQYKM`O{C;iI_Gg;sUQNEo}=zB~l_y3C%emkPQo}Oml-6-o-jk?>)alpq;k6mr4Y*r&=?c3txyIE3CwVDV9ueSc)W$cNS% z1d#;+1F5IePI7V9bAEpA&7%RpvQVk1(c}iAAf-_6*KozS{SqHgM*1T`S8JSSou`*K zDud;A6DA1!KP)Q(ywL`MO+hQ(s15&W635YhF?PpsR?OXKasB3qz zj^qP{y-1wO`Wa`JlIQv~@&rnp_6IOmn&?dzwgO(O`&|3VT^aImsKWpc+ds;Gv9;wz2m=y!}v%B4}WMUJ(^Z5ovZ~6UA5aTdd8@`y+ z@f@c{;LXZ!R)!IMRBQh7Xq3jl&oHRNDjchz@(@AI;R87GX&-}4yiUpoZ*v?BQqgR?Y2SvqcSn&-VuC{ z=n#E#3O-vJp#sA1k&tM83OtEEx91w>kRbfZn2olWEh*AqTc3hC&8eqHl_Gx!L&=^5u;k6O2peZ3@f;658b*;EI(XJ!NYBG`vr#; zIp!2(iX?PtaC1K}M%Gtfj|8+`UtA$3`?Qec$PscjZ3X>6awn!LS>B*da|YJBjuR_p zLp+U#a&ztBtH5ObU}^=_T%B5#yR_(1=cBRKrR(Q#&kMF#PP=sR=}QOYVc=#Rcp}|K zWt^{6S9!}$6H68=mSzVB2juN8&Oe>q%;tx0VnyK3 zpni#_AT@1tEg~NHKJkz3$ZPjJPMAmMS_2MSaWxK*?r62Z#1w;>S}Q>aZ#6PXIMA2< z3)fx4X(TMV$#m9w;BLtB;4ejOsR%i@MdC0}of!p6L^&L2W@_Pc*xY<|c_mMJ^p14* zd#Pl&AW!iaQ9aCgDvvCcWc-*P+6w4?uQvsz)_>oj{>y_a0=NRWzkA2m@8{pVg#U{) z$nb9{Bf0<8@h55U?`XH3jB~Gk)w(K#B^3;_ZoH*o6Io z)<&N&vF>p6&5bp2^ydu>AleI!<Tp-)T8*l>11*Ay+k{L@ zXk1K(foZMVnv*F0aUrl^5np4BzX^TZkZg$F>C_KWmg`~hr%q>AuR9yxm zH=C&&S>Ax{V@@k{J8weOkOPK!us}OwAB0!7bdGrSgjZ=@iF1vxN19wtjd1Z>F#slBR5x&P^E0v0s#2b!8JR(re|E*6%Ju-clO zXMdU3-xk{cI*iEGV7_192a)m}Qe^+Vj3(&h;Ams@&+9j9Tc>Y$#9s;##Q*pa)U&kI z|G(i9Sqjp!-~D|S#W^IQ|27&Xt-Ei8M@j-gyk%azSYM|jC32hQoO9gPVK3hHw<1KH zFJ%~-N7~ex$2WY-+q=^Tz!waSX5kkbf!tCis8(fP*Pxcz?@dc?nd40NcoCv%)=XRD zwIAVdP(vmvB_l1i;SGf{wiu}uZEY&UDq>e*Q*s(G&y-PxUi`wRqPop1nDA_Kp2U#{ z?tF#drn@rRZD}0fjcpq-#BHQ0{ZqVVNuF@BAF^K z8Ov=m_}h#q-w2@H+2t;BZsyHCDso)K^y0=ZJ^O@U*d%+g6=bj$n8bIo-8Q09`gQmc zOSl9+tBstkHK`;%gD4(KkLilkyNR7e5yZ&^@d6c$zKt(UdvN$=Kf?ouXQtSGt{8Ph z9HC#!YXXpR>jICt4FcHr9KHHbssOHW-%2I2Q>sP*$ZfG7D7-j zmj)y-k+;AwaTy&AsZdCYB+vbLCb|ZzBX59?>bLj}g$mv84+4csrFPAU9&NZ-hY~a^ zcYgEGdBl12cFF#Pdves>{esH}iU)<>?};6=t?WT|tp*R@?+Fy4Ru?i3l$LU#7c`6l z2&BDt(*}SbjH?QAzlRy43>e@VFq{Dt-!f$&-9xvzd(-5L(9yrA1(@#|6EcxMk!vET zcj_L{-!oU#@zaD#QJyj7;1!zRSlLV}`+%-pX~_bkzDzTz%uSKinu%czW?t8xT5$YAjg4TFYQ!DoW5tQa3xztsNSBz`ux|sCX<2l*sc2kcE9^ zQaT8|imv`(>DJbe4O>>c(i5560idXcEXa;6$(+5kPGvMUAWzx209KJQe%&Dbm%|*- zwv1@)6pNuGGe)61Q>blJznCvKrI8t)X5ESo6Xu=oKZ$i#g}C#S4fS7=-zf&=LUzJ5I2`#L40sXNilgdVdG#L}{xp_l+GXaN=5txF3pjqi7^+(EDEW!&nfFVTLt-sSM z^zYD39U*8>Fs&v67Y7w86le&WZ0jR_mY-21Fe9uj@7xfC^nEQ^bMfrj*0oo1bap0R zJrvC*eh{CWxwkxXTy4<^;f8Vwo~e<%N-Mz|P$)moj&pYU>{iY0uN6Ft zgm71nnq8w7&}lnhl3Z2A#U^+xjxi>+jUO5|YZTL#f5j8K3Xqh&Ac)W26ugHD(TyMS z2Kz*`TQ7XU&HlXzu7~We7>hjyC`u-fXeQMS`|+Z#9xT`hzk=-14PG z3ZcDx{W(Ggh>y?MnSptiO9U7^u0Hbw+e&Ubg9ALz<|T zvBx8Hwo@5P)RBN`sPz2{vo~b!O-K2SK!`|%BGG}_JuAKKTJen}c$7ocP(;W9{fQa$ z_jQCr&QLW0(^NYqBY}C6rT&Oc`Idm`L>ne8j!HR%tU*gye$ES%H(ah=?_vu&VN4te z?&HyoD0ozgR+OrMX(Wr?MD>jccvMAsoC9-J3+Ct>=6w6H6VrRtyDFGR-DI|9J!zQN zl-Z7?j3F-hFlMgk#v7aTmjRg`H|p1a83NEwT^1vM2e>%w{{b=juj2RrC0qS7s;NSF zVk={Ob#F);yD*p~Gz1ojk1Gg>C&U&Og0mc$#)CEyld}}2`Y((c*QGhv*H29qK@fu5 zm%IM<4+rw!?v;nM)X1|^Mjm|Yy23){l9QKz-<()m88u93NPcHwyn62Xa_PGAxLfeS z;|0JUN*-|qfRk_)>%+wWn`scwY_%s^ei@GQE41vD2A`c_@Ea@qGG9nnJxgwdC8!H-}e#mN^A;35hek z5Td?Vh7~u20h4hQdh32@;~Jfdk-?sN22V1b6m@d_y;6ndq{as-eFG!a`D%?*fAk&8 zlcUvo-QIf?Ff=na=OR6Gvcmi*df42&I3Xu#?;tCpYd%_syf3T$x2){uv1zxPZEyUQD-QxHeLBZfM)oUlyR)Su=xMtZ%_pWnyz?AC^Ud1B zuNMVZYb4?}^GXF_Sp{ptC^Ze*Bs0hXil*jG=*<+l=%;AF4jRyk>WRuq48-#H~c>*NT<(L4{*Z2uT)Ga5$7mMkPeA4{jX z+@6AjJq*SGLQBv>q#oRR%%hiz=uH%n0kM9QDAsaYM@zKP6ByxbTk%e z;`?JALQ!gR5^AZa_!>LL7_k#rq%a{I?yM>5Hqmdt&V^l|HM9Vu*i1sqMZ05TC_-pt zIC_Afzn~~{V~Z{86r5b&eh&>tQ|MJP%EC2}@@$C|13^?9xtS}!xPCBWi9{oFlFu=i zA1M(hawQ=%oAX_jWt~pj>d#M*RZ__R0p2UePd&^405uLR=G|Cm*&tVf(tHv?t?{`V$n+q(M=-7=|(( z-&``neUZ%k8qp_`t^s$n)Aw$@P#0-R75zG|58atzK&NT7e%VncJiHf=FXkDx9Yp~R;B9X_gVYwz1FiH)O~ZM!U!!Th(HVh zvltiBk#J#DD6FLX3A5OO=FUbjhN=cSv_tojB}3;xPgL^PIuywIVr1 z^&H7TXg}J`U^gN=uI_v3wj^pxI0^8Z#E5oJgN_}f&f$dVml)}|bVe06O;pxpyi*H2#9A3aW46f~$?2KMyFhPfA4le4W8#MUl#ear@Py2N`H&zn7-p3x=n3Ago5HHSO zY`Di;jJ!A@?jg@A>q2B;Oy}Uqm})Ft`>O;>iJb^&26$1Ac!s zt%pj}3G^}>+uS8d6-BnKoz7A;v7D|2Tm zx+Y2?5htFOU823{0^r)=Z!r?s)+0kLEob(SdcsH;SBp&}E?aWm*_IY}B$b(E3cLuJ zB2z{hi|-U@3BFPEp6RZ*x|ZQ+98tNj<^8MWMYW!E9ZQ0}R+4Pz3B=+h4giHUMlt3l zWN;prd5qI2sqyHe96J%mau99DN`ut^0!x5fCNDS@haTPtj?e`jdfmp>nsE>%T*fz} zPQtWMjuuc6eMtz*qy8i_2#7Y$IMO%8k)2?^ zS=ZRe(FW+ysmbcbA*#0E8#h6e4+9*8(DNTq#K2~`fK(2sTp(aQXgapTJSxB&D}ya9 zFq{bJX7)Mw_jY)~ofiB#uOCs*?|@ zC~n9Yi;AIxYSr{Ak%`=KY}pBU;vqX?WPvz{;*mciPI(}>8F|AE4)e%)&xUcZ!S8|6 zIU#~DBd8xb%nS1kP8&*Ds*_#A1M_#srE(Ly=o+6 z0*PERoCUh^UGbK9incEm#3TE>R{5$p*C|STCS2Qxxb^$;>wWQC_qS=q7m6acF7X+* z*J|kBA%V286OV*yD9ydLDOUxhuGDP@Y}y-IVVkJx^n*8Z4}bFgdD{cT1ox80ES3|o z^h|7>K@Mm=%AWT>J~gHE5D&?K?i>u1JA-AxQ#S)tl{I)7LRdkPIGRmu@XBZ>_EA~O z7W^MA(nm0p+z$kofpVoZtw6Q~Q#T?=TcfbfHW%+NZ`_G4J^%Y}FFG;Ty^M!$3U zrRyd^)6ix*{6YJg4XAxfuLvej=uMz;Kl=eDiDMxz{mIK)SGj-rUXYaGZ4@IH1uD$S zVkNFIklFKiVbLqE9}d6P)sV3ujCE=D`5BZz5NGX@H-`)-dH6X(Sed(f$K^`L{;oK= z)T9Ue<{n%+1UBEvW}E65`J5m0T)Bh&nbSVUSni;>PX*a(w=2&Ow-ga2^+0}?-4dOiiA`mv*sv_`J!ubX|3_U<4xGI z3O{E3iuKnrrtg`V!MJR~e4pY@?>X7C5WG(o4O+dP0QlWq$5HlFmER`^X#8**rC-ZG)!Y1pgZrtv7Q=@cYwNy-8c9+SK*$^;~9?}ULTuxj! zmZl5$SUWGQ_Pd#%S3jHfOYx~ESbWZ!V_=rt*~AbYw>aX ziU|{4^4750Z{>!%_1Cq2b(vUo$w=F6(P|xtryh-Z{fK@hEvwu$>^`7T+AXfKRu4~`1jr=+@IxcY)>J$li?ylIGE!7@7S0Bb(N6bJtgUzNtEH1^ z(R8T34&*iqw+3q8MLq@+t6$l+%@k*|F+@8x$Y61V0D+V-mhaaD@LXbY1QCLu54zz; zedikr4glAfznK*Pn&47{ArZ*#{uOU7(bd=+O;fJRtc8Jx{VXzwls?Pw;=8%K8B5jP z`Z-DWIwJExtkvtob)v6rcExZ_M0wv`g9k7nC*gxPaMnLq2mVIa;Qn?aTzN^D-Mo-opg4jjwM!m zAK4M#B+a`@$+uomAMH>>?44y|96kfb{2RFss7V)3D%e*@WoV}45pgQLr-1g8c6oGnhQsJmIIb#9|3^BEIlsV&E!9tJr1rSt^GL2ej+9oI2HO}E&a%~h$F?RD2khQWV=^La% zJPZF*;L3E+LrD?yP<6f9MNwzRJ+B+gF}h|JqPa!6UXq+r6msAp{GeB3rLd7I=2)2825WkI-d6>~mz$h1ptQIkM}_WfqT z6C0$Xb>F7x+^~BT3pCZyl)rpZUeeQ#lNWuOC}R(SRMOYf6Ca6YU`@5pBvO)|T%ZZK zGg22EM9pdYD@Dr7i1)z+Z}hSvLjGX3nyPp6yxC7yUaRbb+VC6MMoymqX9=IM7`7Nt zn|Th4K*y8+;28gP!yH5D>q-OAXCwfV>TgOvRLlW@v$3*)sfn_MjlH#rh=H?-n4P1I zf%CtTG)h!#{z@hGZK>w<;-yp}iBwgn@He?tF5(@#$?QPX8MRUM2%$hA^CZQ>*1pW&~5skv#}1 zGNwv%Ic7PwIYzqSs2xPl`9yD0fZ-2-Si_840k?uDjj)PKPbb&F-Lk_Vtx9f1`>cG5 z;T7SoT0>OHxeZ$^@hSP}t^|%#4fjTmOYfuzE2S zlWEFcl?la~K0d0;R$ENE@FJ2OAUL%X&oL5rzSlo$O zkEXi`JzG69A*@G9ti%)L$UNJ2JG!I+p3b~9v#!UnUwDY*15BpS2aghkm0tosP)}4g zqdTS0EZ7^yOfrj@TlPxG2mR;PieRPQn&7Jw5{DF%bU?3cHn9b%Cy-I=H=luF2M7E^ z+7Bxh`xA1et5f}i*H~r!_{|Ul_E8zXfs^4fzC(qE0~Az7Sqz>&y!DCg5jrJmQXQgu z6gqMbWRARN<;BCTab?wo)s6pkT9MJ=2>JmOlo$Xb{%`VE|Np1;Uz=DPb!2fAUoz_k zlAk{kepsu<4`<5G4s|O)Q#JQ3nhUTbqrJMOnh;pAcbr@n$M~Ln9oN|?YBG+<~6sLW->-P9wjR=Ytr0EdYPHHLWR7U0t*N;zBg&GmR?lJ)>WXl?Irb&$=rH!<#yN$|@ z$#zt7X?qJfsrn}QVBa{5uuI49hhw}a-AiSb^&g|IiHamh z&Rgf&wX|A>9535HLT_56uT$&vkWuYc3=-Y1N$>G8}i27in32g|1OhTo_&&5tNj1CgI#=o^wm~0;z%rzE;i!1f}aPqJ) z#4dcN+m8%@)L~H=ssuvzz}3gl7)W!xpssZ9*=MMu17W*v4zRnX9f&caEJ;06d;dHn zzKo|{Ak|CYZQ1680paw3jT+%KYoFxmF6vNfz(ov>!!&g|xK+fDvNl`pTuiiP5nZ** z(`tXBYHCzuECSa~Yc~&z679BO=aur{F?+nas?YX7NUGtnxfCLOj+0%FfSaNX6~KU?JJnb(;M=RXZX_3T=(t- z^D~e431`idulj}@Z`%8+jT5SxxRBoR%C#N5iFyCUky`Ne&IqFYSIpR=I1YSz@F`X^qBM%JR_ z={GF(y{1-|*qM{mYVob?1$9=xSF1?2!>tT~ICn;;Da(^O<2}DB&Fm?y7Cl}i(MM(^ zu!o6g=~$_HzH*9xx606`zhc6l4vrh(0ckKK#)hb*9z%slZ>!f6zK>R^9k_rL#=s6x zr#OmKPvcH5vKUinW)W5)@by&2@GAEnWtb?nKZwH-=`N5+;~A>{V%+}iJDsP%<>hgU z98qVLMuwGUf9yhz@ktWDfdA(v&aU-E=NF(=1_!KF|4$>0e}mKtc6QbzVg^P4B9O;F zF9m>m?q9@ck*W`wY)mk8JV6Ea!*6sUK!OU_pp3yc$jA~*zBPyaAnp{5`~4x*R&%Pe zwH>*&Zy?{q;|d1iksXWZp!b6qln}q~kKGbX17x65-D`NsFw8TZ0I{s2h3vTqis5U|Lh@B&X@O+$Wx+5vR4!hbue3Z=*jb zBfkw3wXTE!=@>Fj8wL)ML`~4tIPas%h>m%tZTFz}{e~zd9u;!{HOgrn_9TOXr=9yM=+!eN{-e;&%abu5 zSrR7}*X9Msi%gY!EEA~Bm#ulMOxUmoQjMtq5NVPnMRm&lM`wy}8I3y6n(Laxs;fV~ujwQ~RYnN#1e< zf%Atyu^shE`&4^k6*IP|rh2N8(?E?iOO;f9)s~9KdKgcxJ6eJlG)B!9x;br^KxJC&pcjzLl zLk{2PFE0d)4ZphCrWDmA@NAH`Y0(2MSC4j0DoOPp@88n9_3A5OOKP*4%3U?-IcscB zN!6t`l^RO5TWYA3j%XLi%O|nZm#-1gSZEr;_e(?L+LjvWC5i+NN!_Fg(tkj;+qC8W z!X9sm>g3a5yfIulo7Y2?z$cl$a$|a#OyLJ6;@3*GRAa+3)x_H>a;+06bM$_j)#4F7 zYOcdINx4Mu0=WoeTZGg2kM1uCfQ9rPy);3+KF4kU*i zM-XiTnkxAVfkmzvfhkn$m_bYng1?v?D4Ud1f>N-TP-Mr0GFbxu5e$Mf-q z`HG|qpcP@yd!Jf%Y7tI z8DLC=yd^tP-^iydIZhrXeJvU_Og5xfxc7KH?24hH+oSX7?&s(p2JP-6=^jFT52m!M zR%U9YAsPuUlyIFYMyWrUBm|1}UC`0Oc(JmIMiP5FV6-(L5P} z#9P$bKr+>saBO%=Y<8N#bzIu)b)K(DnY#szTNvNFjteB`bcJ01b#0{kzWGb!q%8}f zNy&^WW5et5ob%{&8jw-;^sC3u1FkpD1XC6x*YtF*sJjZ*?NTjFa+uINI zD;wQp^c_DR%UsX*nnwrOaE%stvaldx#e|p=fe;h#?ncSr9unj(IA*Sn^j%tH?eu~_ z6iW>YYsul#nI5Sa$z)8#m%2*GQ)EC6&8|3Uj%8U?_wEiV2+h1sHR;KeOp$JC&^)I> zmljZI`U$bC_{}XcefldYbaV){f#UwSpY5w8b>!H|fNO%KrC>+(6B{deXIz+dq-@wh zJC;YNf?=&f7}tpmQl6;*qE!tPt7U}?Or1cNO_lR6#Ih_%FDQFmCi)(Ecegb5+jEX2 z?uQm*peLjFu%XiC@GVz78(JE%=>->eX^C;c$!9OEGA;wmf!bmudLvWmGaIdV0+neA zLs6yDcvg|oMoQYQxjARSp{(r814E))L0^XIEzDUuo~g!@7uEDZy3Jt1*|roHMW0}e zNEs97G%3@8;RIusImx2n6x9WF$;pp^Yf8lw!(K>@9TlX<+8B%U+`w0+Kn zqe3k^3}JU50XreHJ44dD6Y8Nv19J&gMfLSJ5n~n4tR{2`Do213*MKo;>f{AmtdC|( zN2}ZAZRG|zN0+=qK8J7rf!hID8YlK+Td!>IJU?cdwj8o@uNzlYgfW84E7c`t2Qo~P zQSF+X&_Rgy-$ldm#qZBK#WkG)NqD?>5hb%()U2#Yh?1*%0;G%rk zG4S`z^q8N*l9tB20v+FCUD&FxwAfi?As1Tg0^i0Q-Q(2el)6LIv~oy6aQfbwoUZe$ z|4inDiu_`^-dA4P%c>JU_j$D4n)1r4-G!ce+n6Hv`@T)8}_3T(j z6CDa$L-W3B<_PDwHJ_;J7mh)_+KEmtazO+dg`*+~5$l7IR^~Pc8%X@?H?SLgd)e+T z5TttSbu&cwajLoc+wHRNs{BOetT&GJl8V|LejqL+tro<-><&BXRhr!+SU#oFD!-K1 z@~?V83|=kuOKm#?zlFvNf&#oKc}2!NgO9r{=X`Rcije~JD)z06@{bF3fGgB# z;kHB7JW4lkVTwRDIRcT(+_$b~MNa~&_9%*!A0`w>G`KreHY)=A$fs9vxnuGQc2^d~ zmu0(-$a0BT9at}`$5iD~eixIr)hR0EqUS=abNi%$Ek~`Pv&^R}IQn%wLjMVC|MfVO zp36KC13J@JKxfMP_c~KyI~#j|QqtMvAI^6&b_W0bM&ziRxUP$!d=9(PYAYfyM{JhP z&Xdw^Vf|_+X~b_yVX;6-Ti5r#Z? z_9hHLrHMYa574*wJ4_I-_JasVDQ-(xf>FIk(?)>#_9Uu^maZA~m)fE{fbtk5EOqN` zR#m7nO_&G&&>m=$Zad$5>Mhxrg%X}<$=JV$=rUF!Q)6pqo-$rOB#R)KaHT&j3_-i_Uw@ zq*bQGSBsOT&4=D*TJjg~u@@Sd^P^RzB_1Nsrbg>cF5=YAhJ+y{aSgF{d(~0#rnyCo~zdK^!_Ks%hT8_hKt;xZ5r4y`XxP zaFW8KbISW0=t-mE3s^S1A701{EU{u+_EF@%li=+mU)8CLhxSg>c5je;RIWCu*hn5> z;^QX|OI}L#mLZLgGU~k6a$wN8%1D)3-Ak>q{=4~ z97zo>D`zJ8zN9XM#t8%q`CSHbT><0rW2U9(^YW&Tz&cZHtU6occXpxax>O3BQN?|} z5ZU+UWzVdRt5&@-P?SSPD}bREsbS=Vs}KjXh$7xJ!B~3GB%_dO zUMG#>6*cmse!>OLU>=B_f|#%&wpAwxp@Pa|T(wu!QoO-mJ6TvPQ&DIv{xMd+`P*iv z7mn`Oj5bdr{G$$^NS#c!uouU}{FF<$p$mmct$2 z1N{GNO`9$vkfH&Q_c)+E{hJDE2@8Nu$kE8$!pOk-pG0e?e>SLH$(wQj9mmL*vQ%2j zgt{Q~co;#lYg$8OO8R0t2GX8rMFi=Fe41oO>&4zV+5wn1@OFT9ms01o5)%HnyXh}F zj3_L+^HQ@?=A-u+yXox9UsriO-|Fg81iwpT7T0GF>HajXkL-t7TGUXXEp1|W(`YppMUCEG=PZMmB+Yf5Fhi{ML>*Ji!m;kcaeJGalW0hN zsHz#q4lqAQqBnTDsD$C;LRwse3OB28{~6hE^!Q~GVo`O9VsJVJq)mxA&TOp38yI138>4uiZ( z94@_=B*x+o!*6(B=`Betb(lM3q>i(rbfy?)7{+YE41o_6O()*W)a{Wqc1h?~QO-jM zi(Jzv4Kjh0Dj_cqq3mJUhGLnm7X&Xb=Jb+IN*aYhK-yNR-JdkIoFy~QWwXlkwq538 zBn1sDZqZ=^6xo7oqv6Szd-fh8Y&#tWIsxJisd2FJcCk~@%#=B^V=-}7+5>tr2kF(r2lwYl}t=c98GMEOh}YW z?5z!qOl$zWf`1y?z|aEY_B|JxH*qsI zn|;-IAt68feN|XGBx&Y_MVKc;ye@f<;KJViVfQ)W3x`#S)xvuICtid#4Ahl%k!2BJ z>YZx!as)Fb);JP>3b2qsft@Hh>&1-k+y~JnG!ahUxOA`xc|nqSF`6(Mb+fQ^O2TpU z3GGigOFUoMxRXGohf(He=SS-^Kj(*f**THVrH|llrzANEuv_(9w1MCwSuOEO{FCX7 zp=?t{7|C>=NPeD?sbj$s1DWTrd3Y(&gDEo#ljZn}D4tALYxl~MzoJD*4M_7RWA^)v zS&uQ485Pe&S-J>^dtAXCd@4h-8tjj9cEg%Ml(i{5xOl}Vgxp}y@oyA8g|G&vz$ZnV zE7B^{Rp}AEXi!vW-B@+8N-EnT9+G^bRF$ac68Gp5k4F+y3BGy>oUvmlJti%M8j29f z>1(1XHUw|~AwB!6pz1~>;(tkSwE&IN-))+#4V;|**(?2bLH}9A9OZRefYg!qtkv~A z6HN-bSSNEn^^nLQ0zDYYCn7u;1(i}X;kDHvb#SP@>LK(ogB}>N925z^SDerkmz~7I zqe4w@W^y{0(~0HnA3Hj46`d6d?z*~)>JhdUopg%zm6rN}x)n5XMEF64!N@)@L!`r>eqKKoxTll+eSdk)((NLr9rkZmJBx?uJdE|`C+e#6i!)4A zGoXPN8K{rCbz& zCqNaQNL@g8i%djNBhtkI3r9vJbFkcpwD^r) z`5~XDbbz!YLP(z@`5YBA34O}LJAdQ-03Drgf&TVBWrYApXQb|z3#WYq}+XJJz`FA zBqt=FJDlxz5?_$!%dSRdya$8!j!Iuu7dw~V7cUnxd3fI-_N@3>f>CIwTKB{;Q{S(5 zF!|+vXbw08Q(x1lq411^9HDmZh=Zk~c9!pwV(7G0677|}Wqwz-Tv8Qb9W4G)u`+9~ z3gv*Bg@vS4r)q8Ct_c+zS^QlciV}4lt47j5e5fW=z4*E^a``z@PyISHkR6l9=xzc= zl^J`u1yQC=jfca^I>(Hnhl!l#A)z%v#?{fuY(qkXd&E^YsX&a&Ue-Pv`A=bpE3)mR zb2WspQ~kR8qaH(t4?UC;fHfSYthDjFOliFNRvo@MXQZM{;=UkaE?|? z7AaHos_O;|5-AhS>JnCv-J+DnB^Z@*zF9;cw{2}krXZ)1D%6Ry&F%;=R^%Bb!gjjU8Fo2<_GTve~I z0%rUCVP4Y8OBc6a6q+7Xgq_}w#4x%qmxRmpNOOswCfpz}xI>|w>p2a|5zS*c;cWo; zSSX(SMGjuXL_wVR#+jK-M6_ZWZ!)RGcAiqUtvnk{G@I(dtW6Iwquq9lX zr40=`=Y@dqW|+;FCK-*{FAG&qHzo2Jwktz-1E!DZc{?6A_XAeh*OkgKiw1BtJsA&` zgSHa*icUx4*s@NE)gVgxM4m(*ZOU6b%KDD4CViM$^&L>3HmceFk$_w+_w5DUgB+Mp zK>>*}sNw?P6XyWuQUNTwcrmErMzHxdo{H>TbFq`x^5>d)#{TB6x9bl9c#~EE^*jZ( zJ;wG^q~3k^z)P%QhFn)Xvdnd=r~Lb^5Uo)C{7ovT`84!mB;+O}JmUrxgfIT@m=uU2 z2SxHI@J!-gVB^Pn>t5jJOOw3r{Ud(CZukfM(D?M#JwFKyv%*&-xbTO%f-MTFhmu-l zo@91SnL-Tx;zcl5+@2H=x59j}r5?xht2f0>R+N45wN@I#gbV82;8lAHD_dUSEc<^c zx*+q-2am=FSc0jH6nH}ZhAfZGzlB*O$QOfSl`K~jhyi_Jnl%7obt)GXngX^YlNb}I z2DaRv6-Kf|R=^gt{LV#`?+S;TqR`>L23a|M=%t~6o9!v0gd2FeqrzrTmfz0to3?^Z z(8Yl&>n1%PIQuj~ML;1y;kd!9srjkz3F7wB689cveu�z3cv0+!Itiv+G^$ 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В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 { - - 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 7d580ba8..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-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/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 71103a93..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-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/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 aa9832e1..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-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/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 b39fa2cb..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-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/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 69b17433..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-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/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/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 0bdd32e6..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-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/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 7e7bb802..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-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/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 b663869f11acedf378092e6edef126bb6a3422b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1659 zcmV->288*EP)WdKcYATl{1Q)O@?`?Za+uN3wzQ6{eQY)zfB1$ldjX{lql4vwhOpHd?#SY0g0-~tNy|Ow%#8m(Gw0rO1GvzoOgnd8XXgLr z`(FcGFaP%<_~(P~MrO1|o+_XfloF=pRiQMLnb&p$wTdU`U(mYkYnnHUW}Eqz{{;=` zEX|Wz&@!D(n><>iSv@L;`@NC&Kr9z89y94YZ&Q#X@)x9#hOM zkA-PHE!>#;L}=+-!Ss6YJUjMyOas2){9F-B`)&grMIdw;fRMb!mTXNO>f4voSiuhh zbC8NjcQUfNhO>ohw#xh_Em@4wxaDXVrEVI4V&kA$zKJg+GU_rJUxfW1?Zn8rlUVc6 zQ&_TW1ymFvrmAHO?T-CtFy+?p;_0&WYms7r(Ilr)Hzz_|7(Rh@4?l@0oW=GnFB`xu z?F+GH{U$8#=_3%*d@S6i%Jym?SZ%uGdrGS`11V&*A)`Zdw09U9t8>+O<&Aeq4KbQp z+Aw%^SjWbinBuF0xUyxn8a!+-X#j9qSm}+7MZy*v>w}o>gltHGPRiKT8qiHl?dWX zBs(rMz@FsrB5eaoX(UPrJRenohq{J&xWB(2qa(wZoxX^ghFZkM39Pw$wb5Tw{X!_; zL-*iTbPm2v*YoLQ-w0at(>7dcTY;nNwm}6|MwLD*OJquf31wB_C6<=}I5mD8&ksC? zPma8AVsl4xBf7iV;ge@%bp%h&k(U$=TZ?~u3!T5e2NV_n_49$cMygFfV;l09Por<& zX4C~fswozXTsljd^h#cssKB!-u(LcBiz0@rhp_$F7TmjI6%L&`fTkdWc_gull$R4R zGSt>hoj~ikT|fibK|X(Ft!*GuV(j>KGj7?v0uOw)5nr6&XMkHHOsPN;rHp|ItZ&HS z(Fc17O%}yC#MUFPV%tC`o>}???&?~O=9&Vkv$beEv)|sBXuWEofdAb1N$k9E0?Ab~ zB7nfqX*w*V8j*C#ErnsBeXPB233?wPJ+B1D7mnh^ z(ZlFC{5^J!PZHgAq>2L5XZo8)e#JWz!&aIsSI!?v(i3SnWKK9anfy*a5d|Gj2L=FV z%9y~!)V4O|QI!uc^v4LIMv3!ejE|2F0cVDAYi&L9IUhe1$00*q7OtGtMJWcfWjY1G zt+;-X1O^mHGz(Y!KvAZRsAecQ_1(~dlYdTNY;2B#lnER-B8iF1PGCZNx=PEkb}70d z5*k5f(taCC7H$EsQ0V}e*07<_*)k6e^*Q`CGK-nXuzXW}4dK!%KVd*usz8)ND*NZG zWS_TvrL1JN4!yAIl5D=dwhoY`wHlgi=a@%-M5ioLf-edL(kGAdOyuh>EHSpG zlW0_8z)26uP}beE0qeyE>mR!0!X>pPo~BglZ6V4}vC@;w=~}usA(K#~^Fv}L@XO&M zumb2I60n5{xFub1nE%il|@MavB}Q@j8G002ovPDHLk FV1nT&{S*KI 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/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/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/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-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/config.properties b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/config.properties deleted file mode 100644 index c6abd215..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/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-swing/lib/cloning-1.5.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/cloning-1.5.jar deleted file mode 100644 index 781fe27d85e554d45042272c4ec4267d94c2891d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9838 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 WsKPD4cOC5O*Ti)s@uU9!>Hh$`bG{A$ 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 3f2c188223481f69e6c0aff835aed8f6e1d8b1c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1130070 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 z

+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