From 419293a956e455de0ca64af18a268a7eca9baf96 Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 20 Jan 2011 00:12:16 +0000 Subject: [PATCH] fixed pdf scaling changed few colors --- .../DIYLC/lib/bancika-gui-framework.jar | Bin 87068 -> 87206 bytes .../DIYLC/src/org/diylc/DIYLCStarter.java | 20 +++++---- .../src/org/diylc/common/DrawOption.java | 2 +- .../components/AbstractLeadedComponent.java | 4 +- .../diylc/plugins/canvas/CanvasPlugin.java | 4 +- .../diylc/plugins/file/FileMenuPlugin.java | 22 ++++++++-- .../plugins/file/ProjectDrawingProvider.java | 12 ++++-- .../file/TraceMaskDrawingProvider.java | 4 +- .../diylc/plugins/statusbar/StatusBar.java | 9 +++- .../src/org/diylc/presenter/Presenter.java | 8 +--- .../org/diylc/presenter/ProjectPainter.java | 39 ++++++++++++++---- .../DIYLC/src/org/diylc/utils/Constants.java | 8 ++-- 12 files changed, 89 insertions(+), 43 deletions(-) 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 index 9ae9382d8a703af2963280cf1e543a1ca017582e..d8c14dfaf4ee5d3e71517c208a47766a13edf1de 100644 GIT binary patch delta 6116 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 delta 6137 zcmZ8l2|SeR_n+6;(jfbOg%H`YuT#jr8%q==OR`JS6%8sXOPKOfkx^L^`9+jcltMy? z6qTh#xs=^a@_*iEM&0?(=QG~pe9!rw^PKa%&oaejESE}II2~>9%p5rE^DIvzi*qx+ z4Lo#HWLxqyh)_-c!wjCj;i0O3?14qr2WU^>MwBo=3K7x70~$&>B8@g|L)a(<2nSuE z0iPp?HhhXQ>B6TglRA8!VbbCOjtmh6DUovgywPEP;r|J`#-1q$*d_5CSlDVMd;tQ5 z4(2=TP&maoLDL-O{)ZWA{P|IuW>uhyg$H;MQ(~|5QoyK6!B-xOMR_S!joDJph&MwY zCkZwtDD0A)W8%Vm4p05hwi}Pb9cM%L5D+1Bk0HWSeNuW54^c|tg4B5ghYMz+p*Jx! zNA5B$uJ6TWxl=>k|_+gP#-&+VEB>ELjzvl6_%r>cf0s zVo~;Ph+y{HJNHiXlN)vR%r|{0SB>xf-lD1j5yM^=imX_%U8QhLe&u>ZV^to;kFBcCMpCH7Cb_<7U z9j>@l{WTVO{KUF1R4{0vLHTu#chj5O>py18FNCys&JWdkQQi?ul}ZPHjSD0XMMnKy zXI8+$mLg~xMqYh!V{)KL{IT`I%MyDYyRhTNyCQ3{EW~LoLD-gl-gfE5YoEg%2{3QQlfaBZkWb+YE1bp zfq}}gs39Lq75%>C36fg7dg(o_jI*3+BYgOq!$pY%6=7lWlM=%5mZChx$hd&vs5oPH z;U(TjjdILy{R*$=UXbS9#qYlOJ-a+RwIa2CkpJ0j|3a?8M(xA8qO2Dp2zLUv+P*u4 z_jo>FXRS^WIu<~(mLGFBGwoN`is@=&4hv}KQaAPr@bo*Br|u#Z=if*=79S$QUS%Uo z^sg|N7irvkjx1pjyPk7oxo7`4_myz=7R4JOVeN{tnM6-^Gl5S8d`rSUwbkk{LRn>{ zpU$;0(gES*0(_eF*vVs^mk(9U)ob|+8~7I!Q2X&=J~54K*SSZlq8br4ticPfm>)%G zyXzGQaXMbI4SRjN@UI`rTQ^xon7(n#FC4!X?{R*Y)Zfcwc887&?1m#toIIs^Z8_G8 zmDOxfygB>RBM#okJLqxXj_UE1!!{BZWM$X&eyv{U^NQ$A@g-iRmM+)Nu+)t>7hm{z z`shoM^PdG2jqB$d1J#bY#N*`cu6xUTUwC|N_oHIDo7Sa`20n99Vw!0(b8no53QHdD zNtfHcr9+{i#AuG3KI+=zUG!FORHjC5c8t4ehL5|OLO#*zFw$#dm!u?;DP@4qAZD-V z9h7vMY+CyE;*94np*chIb5!B{@r~w^F(tkMHOKEruZz(y$SCoB|F)&7hugT$M3LYUpG(L&es%dYTtR#Q%9>u#B{u(=YmTx+e-1m7S^e&&g86L12TleYJNcy_Z>BD zC-)O#B62dwtN6~6o+sWUjiWNu!I}rYq7u39T^>#jn~`jKl_f5b5-+~-y}#r2Hg=5; z9tl&;1s%Z+pIf8SqHNVNUg@e>uosnBn)5pJjqPj{Q12gqu_;kQU}{f`*pk}Mx_u|& zmzLSq7GOShY{e$J?^6hU$AZK05O6r<|1J=MWVZt`Bs1Y-#dhj#lgd3k&PnG4jW6`{ zSKXC8<<(=P~*LZ1c`r_v!8LLg?5uN$` zi!};%iu1>E?`q6;&Jw?AYdlX_Y&4Gxj|%4uH=Ys}=j~`H z(j!0L`t?yfd!%@lV>%)~CA5Ms`rA>H+v+Au+ePCiC)0ZuF>di!ZPK z_d9_F!@5(=6khvbg^Usr@yI8qg4VGL?k$}nck?Nbta4M%@AQm5G}T7(iwNqE+vy)T z$vqJnzT={Vdx^_qF}q;zXt^@6Vx7I4dp)J!1gE<^?s61x?HGR4sok~uI(VX6rlu^m z+2xT1+qn-?{z~S)Eq^If^Nxxr8dao-{9|QmlS|lTbnQhG(|8rt;Q$X)=r#8FD8t9o zN+-!@n$Eiu#m9XI8h8_aS@~N}2i4a(q?QQ|h4A=CTuw6>@eTB#W~on^%SUESixiCX^rLG}XDFjJvR?)vlYa*L`1ZEc$-a zba7hUckR2bPYsTsV`*uN5pGYHb=!vp&7aI2kiA~!P0E)Fo{P}0Jd<0Y>S0ittl(a> z)pcMtF_7rDvu@yv=>d&A?bBDTH$VAdAuieeeT+}!auMn2{-sM}>qYjAip!dvPV(~` z5_2TCoImvZpI$z>Yp%{(x(~9awL06ESl>TevLB8+E9tj;gZ*yOp^l_6;h>qYHjCDo z^^cQTVuB-OugBi&9UHq&HBZ{Nsnz>jXK;cZ@n+?pqJCMQ)e*;VdnPG zxI+0JCC^dUe!uOceX%bUmtb*u!wp@`!iu#*Lc0;4{Y{{V%-^8E&VE7 z9^0?zTa%sic@KqtQQBG*f5o%;Qq?63g-=DNSFQ`@ZzR7qijQZyuORtxCOWX}=CqR0 zqOf+3a>YpNQYkf0n#bZZ2GI`d{qARQZX4*BHu`}B-@ z96M@UdbHnVo$oA1v#{IA)0DEmoX6U7rR8cl$jasW$le*>FW!`|#u4|d5Qt2wXT1!I zf2Nx3G1NIhl6DD_*0Fvy`-QLD*~-W)w)~vs)z+eGwx@C~P`Y@I>IO{497$>_bj{;W zkY0{;5DD6G!`rs=gM%qYZ8R5a3VWDmGld$=GxjsIIkPI0!%7BSC(7piUMTLZRsLUfL$m$xCL_r=9EW@OmQ^o(V&~}PQp!D?w)<-# z(M3%;B_nfVly#<_fBUH5<&Mzy#^o)w%m0Li9WBW8+Hk9HD)3=a{*^6zN9DO@ZFLnh zgpP>U{PpSizU}WHuI&i44MD_4Ua}Bu2JO|i9EJ$+G?}&Ak{RC$j+H}u8}LxLZ?KJ3nh6xjd zw6Y9Xp%8@<*`QEUu!KP2X5ki^@Rlk;V_vyBO!FEpp&xwf@u_)5;Luycjl=1{eXUUk zAyg++KBbXa)q*oKb{lwAcN>zPz4MYr8c;t;6Ws2XK=xaW`LrYpTf_12RPApYa)y}+ zhvNmenoSg*5y|Rp&jo1-?CiWkGyc{8l}0l$AVf=&Wyq3d5V1O%=ghtpQl9UruQ!xGL zZ?|Ys6lcqzK@*8)=0h>n`#j zr(ikiUN1EF*M^o31oqIQCFsj z^wD&Q%7{5l_iQV242}e~(L!{wyAYbJg>1uvt0mg1g{VT|#~P%ijTl0kL)yp=tRg6) zgNUL1+Q{a$|4gA^p@W!1AyWsjguVgiMYx`-JR0(B8%C_s)DUBH2bpV37eps+&^ zv4g@nJ;V_TpY;%XDCp`VBq(I)BTi5l)kmD6pksizLm|t6?ml9G*g%b{AzedW6S@rP zkc1IEM1&EY`Kb}I2YPKLf)LnH1N_v zyEF=*$F?DGO+eGPA!1BC4r{0!#-~4k*m_{syA9gGq=1sTjcGM+bN*FZ@`Q9BmLLemwR|13M1b5Eq-Is|3NtmIr(p zLj~-oI|`u+#t2~}W}WSR&}jbq6911IrI6D&Z#Kz5o8mgZDose-DQBm9zBIe5AVyRv}g9GC!%mI0`bIbsR}2hJX` zkp`)&a^Z0540Ki{kZ#5t;iXmgzq<>A<-H1EsfT)5&>IwD0Y-T1Hbv^W2wG$Te&@no z#%@fxy$(}SR_plDvvzcAMN0rIK>*!rNgrjh$G`{*YOxEn(|{pZ*Imd9EV(K9^#bU7 zOFGXK#`EyrA2j{G0Gew~pBoj!cs46`94?gyhtp#qJn-<3OMX2kT4sgt!i*nS0m5~y zYbY1m=S(jJ!(PZhcC;Os%b}ju^rQ}01CFK+p!^HHYE37;iz)Z_V@itJ$a-|u8sUQ- zOY*(gfc5qq=&cF^uM4`>1~GzZMcM%Gu)#HNiqQ}o`oM-BuLA?`zFh-RK3jwjdMVff zAY_;h@G`6|*ks`xdj3)!guVd^Ν!MlmO}(H4<`^C0=3Qx!&_lH9yFoDxHlvLEU6 z9OxE1`dGKyfw(s&v9|!*ytlw)3NYonDX4VRMb=RYzsaIM*Cxbzdw^1A{)_UUuJ&}o zAPn8M08nA{vOOXR37asb%p#_w7_1N|lZynD%Yj}K2?qc+FRg*7w*y#=u_+mk0r5ZS zfH)eq=J6H-G;t`^5#dL<91+?|mB3`MyC0P3Iq1$NhJg#PVx}9>a7Tm}HuBGj;{UJI z%4ne@q65RfaRgBs)?==sXgmSoK*gNsDJwbwXqk%!Ifx>x*dapI|Yv$oz&_(F77mU73XNLB3_>ij)~JztlkbjH$npWpomOe3wXo zk5`cqVnN@L=&zwgcGWB^Sll>4ezFYteO014#k(ME>a?GH|GSxD6aHYMt-m%%<|J7B T7?aW1`rBEC^_C`Bg>e4|*Hb;E 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 index 7da2532b..c2a81be4 100644 --- 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 @@ -40,15 +40,6 @@ public class DIYLCStarter { LOG.info("Starting DIYLC with working directory " + System.getProperty("user.dir")); - url = DIYLCStarter.class.getResource("/config.properties"); - properties = new Properties(); - try { - properties.load(new FileInputStream("config.properties")); - PropertyInjector.injectProperties(properties); - } catch (Exception e) { - LOG.error("Could not read config.properties file", e); - } - try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { @@ -58,5 +49,16 @@ public class DIYLCStarter { MainFrame mainFrame = new MainFrame(); mainFrame.setLocationRelativeTo(null); mainFrame.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/DrawOption.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/DrawOption.java index df4242a2..f0f23153 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/DrawOption.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/DrawOption.java @@ -5,7 +5,7 @@ import java.awt.Graphics; /** * Enumerates all options that can be used when drawing a project. * - * @see IPlugInPort#draw(java.awt.Graphics2D, java.util.EnumSet) + * @see IPlugInPort#draw(java.awt.Graphics2D, java.util.Set, IComponentFiler) * * @author Branislav Stojkovic */ 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 index f4c0a480..e5bb6e53 100644 --- 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 @@ -35,7 +35,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp public static Color LEAD_COLOR = Color.decode("#236B8E"); public static Color LABEL_COLOR = Color.black; public static Color LABEL_COLOR_SELECTED = Color.red; - public static Size LEAD_THICKNESS = new Size(0.8d, SizeUnit.mm); + public static Size LEAD_THICKNESS = new Size(0.6d, SizeUnit.mm); public static Size DEFAULT_SIZE = new Size(1d, SizeUnit.in); protected Size width; @@ -92,7 +92,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); g2d.draw(shape); // Draw leads. - int leadThickness = getLeadThickness().convertToPixels(); + int leadThickness = getClosestOdd(getLeadThickness().convertToPixels()); g2d.setStroke(new BasicStroke(leadThickness)); g2d.setColor(shouldShadeLeads() ? getLeadColor(componentState).darker() : getLeadColor(componentState)); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/CanvasPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/CanvasPlugin.java index 309ed4e3..8347f444 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/CanvasPlugin.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/canvas/CanvasPlugin.java @@ -54,7 +54,7 @@ public class CanvasPlugin implements IPlugIn { private RulerScrollPane getScrollPane() { if (scrollPane == null) { scrollPane = new RulerScrollPane(getCanvasPanel(), new ProjectDrawingProvider( - plugInPort), new Size(1d, SizeUnit.cm).convertToPixels(), new Size(1d, + plugInPort, true), new Size(1d, SizeUnit.cm).convertToPixels(), new Size(1d, SizeUnit.in).convertToPixels()); boolean metric = ConfigurationManager.getInstance().readBoolean(Presenter.METRIC_KEY, true); @@ -86,8 +86,6 @@ public class CanvasPlugin implements IPlugIn { } plugInPort.setZoomLevel(availableZoomLevels[i]); } - System.out.println(e); - e.consume(); } }); } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/FileMenuPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/FileMenuPlugin.java index 8b66d49e..d09c25c5 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/FileMenuPlugin.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/FileMenuPlugin.java @@ -1,7 +1,9 @@ package org.diylc.plugins.file; import java.awt.event.ActionEvent; +import java.awt.print.PrinterException; import java.io.File; +import java.io.FileNotFoundException; import java.util.EnumSet; import java.util.List; @@ -15,6 +17,7 @@ import org.diylc.images.IconLoader; import com.diyfever.gui.IDrawingProvider; import com.diyfever.gui.export.DrawingExporter; +import com.lowagie.text.DocumentException; /** * Entry point class for File management utilities. @@ -33,7 +36,7 @@ public class FileMenuPlugin implements IPlugIn { @Override public void connect(IPlugInPort plugInPort) { this.plugInPort = plugInPort; - this.drawingProvider = new ProjectDrawingProvider(plugInPort); + this.drawingProvider = new ProjectDrawingProvider(plugInPort, false); this.traceMaskDrawingProvider = new TraceMaskDrawingProvider(plugInPort); plugInPort.injectMenuAction(new NewAction(), FILE_TITLE); @@ -179,7 +182,15 @@ public class FileMenuPlugin implements IPlugIn { File file = DialogFactory.getInstance().showSaveDialog(FileFilterEnum.PDF.getFilter(), null, FileFilterEnum.PDF.getExtensions()[0], null); if (file != null) { - DrawingExporter.getInstance().exportPDF(this.drawingProvider, file); + try { + DrawingExporter.getInstance().exportPDF(this.drawingProvider, file); + } catch (FileNotFoundException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (DocumentException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } } } } @@ -222,7 +233,12 @@ public class FileMenuPlugin implements IPlugIn { @Override public void actionPerformed(ActionEvent e) { - DrawingExporter.getInstance().print(this.drawingProvider); + try { + DrawingExporter.getInstance().print(this.drawingProvider); + } catch (PrinterException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } } } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/ProjectDrawingProvider.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/ProjectDrawingProvider.java index fc24f3fe..89a83ffa 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/ProjectDrawingProvider.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/ProjectDrawingProvider.java @@ -19,19 +19,25 @@ import com.diyfever.gui.IDrawingProvider; public class ProjectDrawingProvider implements IDrawingProvider { private IPlugInPort plugInPort; + private boolean useZoom; - public ProjectDrawingProvider(IPlugInPort plugInPort) { + public ProjectDrawingProvider(IPlugInPort plugInPort, boolean useZoom) { super(); this.plugInPort = plugInPort; + this.useZoom = useZoom; } @Override public void draw(Graphics g) { - plugInPort.draw((Graphics2D) g, EnumSet.of(DrawOption.ZOOM, DrawOption.ANTIALIASING), null); + EnumSet options = EnumSet.of(DrawOption.ANTIALIASING); + if (useZoom) { + options.add(DrawOption.ZOOM); + } + plugInPort.draw((Graphics2D) g, options, null); } @Override public Dimension getSize() { - return plugInPort.getCanvasDimensions(true); + return plugInPort.getCanvasDimensions(useZoom); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/TraceMaskDrawingProvider.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/TraceMaskDrawingProvider.java index ac711f7a..661064d1 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/TraceMaskDrawingProvider.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/file/TraceMaskDrawingProvider.java @@ -32,12 +32,12 @@ public class TraceMaskDrawingProvider implements IDrawingProvider { @Override public void draw(Graphics g) { - plugInPort.draw((Graphics2D) g, EnumSet.of(DrawOption.ZOOM, DrawOption.ANTIALIASING), + plugInPort.draw((Graphics2D) g, EnumSet.of(DrawOption.ANTIALIASING), this.filter); } @Override public Dimension getSize() { - return plugInPort.getCanvasDimensions(true); + return plugInPort.getCanvasDimensions(false); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java index b42406dd..e7b1b767 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/statusbar/StatusBar.java @@ -187,7 +187,14 @@ public class StatusBar extends JPanel implements IPlugIn { switch (eventType) { case ZOOM_CHANGED: if (!params[0].equals(getZoomBox().getSelectedItem())) { - getZoomBox().setSelectedItem(params[0]); + final Double zoom = (Double) params[0]; + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + getZoomBox().setSelectedItem(zoom); + } + }); } break; case SELECTION_CHANGED: 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 index eae813b5..feccef78 100644 --- 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 @@ -174,13 +174,7 @@ public class Presenter implements IPlugInPort { @Override public Dimension getCanvasDimensions(boolean useZoom) { - double width = currentProject.getWidth().convertToPixels(); - int height = currentProject.getHeight().convertToPixels(); - if (useZoom) { - width *= zoomLevel; - height *= zoomLevel; - } - return new Dimension((int) width, (int) height); + return projectPainter.getCanvasDimensions(currentProject, zoomLevel, useZoom); } @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectPainter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectPainter.java index 5f0cf899..5ba649a0 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectPainter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectPainter.java @@ -40,6 +40,10 @@ public class ProjectPainter { public static final String ANTIALIASING_KEY = "anti-aliasing"; public static boolean DEBUG_COMPONENT_AREAS = false; + public static Color GRID_COLOR = new Color(240, 240, 240); + public static Color CONTROL_POINT_COLOR = Color.black; + public static Color SELECTED_CONTROL_POINT_COLOR = Color.green; + // Keeps Area object of each drawn component. private Map, Area> componentAreaMap; // Maps components to the last state they are drawn in. Also, used to @@ -68,8 +72,15 @@ public class ProjectPainter { RenderingHints.VALUE_ANTIALIAS_ON); } + double zoom = 1d; + if (drawOptions.contains(DrawOption.ZOOM)) { + zoom = zoomLevel; + } else { + zoom = 1 / Constants.PIXEL_SIZE; + } + // AffineTransform initialTx = g2d.getTransform(); - Dimension d = getCanvasDimensions(project, zoomLevel, drawOptions.contains(DrawOption.ZOOM)); + Dimension d = getCanvasDimensions(project, zoom, true); g2dWrapper.setColor(Constants.CANVAS_COLOR); g2dWrapper.fillRect(0, 0, d.width, d.height); @@ -78,7 +89,7 @@ public class ProjectPainter { GridType gridType = (GridType) ConfigurationManager.getInstance().readObject( ANTIALIASING_KEY, GridType.LINES); if (drawOptions.contains(DrawOption.GRID) && gridType != GridType.NONE) { - double zoomStep = project.getGridSpacing().convertToPixels() * zoomLevel; + 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 }, @@ -88,7 +99,7 @@ public class ProjectPainter { 10f, new float[] { 1f, (float) zoomStep - 1 }, 0f)); } - g2dWrapper.setColor(Constants.GRID_COLOR); + g2dWrapper.setColor(GRID_COLOR); for (double i = zoomStep; i < d.width; i += zoomStep) { g2dWrapper.drawLine((int) i, 0, (int) i, d.height - 1); } @@ -97,8 +108,8 @@ public class ProjectPainter { } } - if ((drawOptions.contains(DrawOption.ZOOM)) && (Math.abs(1.0 - zoomLevel) > 1e-4)) { - g2dWrapper.scale(zoomLevel, zoomLevel); + if (Math.abs(1.0 - zoom) > 1e-4) { + g2dWrapper.scale(zoom, zoom); } // Composite mainComposite = g2d.getComposite(); @@ -142,9 +153,13 @@ public class ProjectPainter { if (controlPointSlot != null) { for (Point point : controlPointSlot) { if (point != null) { - g2dWrapper.setColor(Constants.SELECTED_CONTROL_POINT_COLOR); + 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); } } } @@ -162,7 +177,7 @@ public class ProjectPainter { .contains(component) && !selectedComponents.contains(component) && component .getControlPointVisibilityPolicy(i) == VisibilityPolicy.ALWAYS))) { - g2dWrapper.setColor(Constants.CONTROL_POINT_COLOR); + g2dWrapper.setColor(CONTROL_POINT_COLOR); Point controlPoint = component.getControlPoint(i); int pointSize = CONTROL_POINT_SIZE - 2; @@ -177,12 +192,17 @@ public class ProjectPainter { if (!groupedComponents.contains(component) && (component.getControlPointVisibilityPolicy(i) == VisibilityPolicy.WHEN_SELECTED || component .getControlPointVisibilityPolicy(i) == VisibilityPolicy.ALWAYS)) { - g2dWrapper.setColor(Constants.SELECTED_CONTROL_POINT_COLOR); 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); } } } @@ -251,6 +271,9 @@ public class ProjectPainter { if (useZoom) { width *= zoomLevel; height *= zoomLevel; + } else { + width /= Constants.PIXEL_SIZE; + height /= Constants.PIXEL_SIZE; } return new Dimension((int) width, (int) height); } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/utils/Constants.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/utils/Constants.java index 80a9bf00..38ac6681 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/utils/Constants.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/utils/Constants.java @@ -4,15 +4,15 @@ import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Stroke; +import java.awt.Toolkit; public class Constants { - public static final int PIXELS_PER_INCH = 150;//Toolkit.getDefaultToolkit().getScreenResolution(); + public static final int PIXELS_PER_INCH = 150; + public static final double PIXEL_SIZE = 1d * PIXELS_PER_INCH + / Toolkit.getDefaultToolkit().getScreenResolution(); public static Color CANVAS_COLOR = Color.white; - public static Color GRID_COLOR = new Color(240, 240, 240); - public static Color CONTROL_POINT_COLOR = Color.black; - public static Color SELECTED_CONTROL_POINT_COLOR = Color.blue; public static Font LABEL_FONT = new Font("Tahoma", Font.PLAIN, 12);