From 46d6fa5cadb2e1ed185623f2c6a06988a95e2684 Mon Sep 17 00:00:00 2001 From: devaccount Date: Wed, 28 Oct 2020 18:37:42 -0400 Subject: [PATCH 1/2] Changes to the project to allow for Filter directory selection --- imagelab.jar | Bin 393153 -> 394878 bytes imagelab/DisplayImage.java | 13 +++- imagelab/ImageLab.java | 126 ++++++++++++++++++++++--------------- 3 files changed, 87 insertions(+), 52 deletions(-) diff --git a/imagelab.jar b/imagelab.jar index 301d000c4b060eedfa39cd410c495fdbb3a3ba37..7a0bd53728029ce523c809d283b0ad15eb0ac520 100644 GIT binary patch delta 30776 zcmY(qb8ukI);%2Cwr$(CZF4fQaVD79w(VqM+vddf#LfiY^St+0b-#Q5TBp0~)UN8@ zYu7$&b^jOkXEY9yiaa<390&*u49G;1focL0C4`HmzG?!u9t7q;@4wW1Swa5~B?)Mg z{b$I-&<^51NL7y%{6FZ>Q~>@z$V~eJ>_3RY0Sof~P?C@f#ear0yP|3k}e ze*gJMLJB3)zcFmiSms@Tf`D*`}4TZ|1_y&(6Qoy7OnI zZpXL>%~ck}5?cVv7bF2POH8z=#LgihW;GX~!-a<*Iv<&uE3+h5}N z!hl7&K%!jcD8l3(Cg%oY=v}}z7Q(U)o%7~3Wuez}QZ(D@zQB=g6!yYMk;R%@i4_b| z3fgeMNHZ433iB(W^HkCZ5pDV1(wIRv#_&ehX$04x9!}mJXxz)3gc(V4L~dIm_yxaU zQV1$|Xv!BR+e_VDKtiPTLS^QM@40_e0pN zLB&6Gi+*SL@l$9)+>X@8w5sAr&E~pH2ulpR@TaXTBXcgTpSeB#ct$?*1&0FW9I*6b z*{;PovjO(ae@cam#4*k+&GyO<%syab2wIz6euXU1F`XQrXGa?IzG)%e#B>NH4##df z&ZNXO`HxTR9px;6oJH^At1!&h;_X&jU-V10C!xC;!(!|(<33f5C4(t$tASO7T{T!H zMpz&5|DH+M1spJy$|Mp2DqurtLj*-o{!eCGDQv3~bCY5f2%1#ajY?z)O1KPD4aCIX z^|esR8NJ4|zuLDyLk|q=KQLrh0f-JxygCWc&@=;0LLC(FzTwC1#@XQ!pPH zlt%tVbd0lo2Clo5h8s%0c0`zP$MX%3djHnb$0$ke+&xsUX!NgNR6npbwH{P}CQIoN z*U>Qc?47MJyN&4( zx+di|7Uw;t>_!v&b73#^=QrG)bJHcuH%64;-Za9ah~KGF^L<~j@};3Z-zzAl;VSrq ze+rGQ6A3}m9I%Uj)zSbDN?NBNL~nwAuqvb4nFh$W2%7YyN0sQGk;syTxK=)ukroAz ziovEgn5g0vrUB=WYumW}ogA{xbP_QC`md4JZMy=JZ#<$tGs^#COPV4BS*Y#R~DoQAzuJ?J4_c_~j_RjyyvDf?V z0Gf!ZaPdVMDfhhC`H!<&wmjP$kVQ4^W-C{cK{_qFkj+;{<}`aeccZ;xIU)5H4%tP9X*pZHV%?)dV7Y6gzvk}S zq{y$8{!6|(*98Nn`B!$O$|E#eK7y|8ar_qs-0aI@;d`kZZr+MmZutXGr?MpQ&7qwV;$^>54)BFW;OWIX3XXWmBfgIs$ie43XKk&OQnOtmn*N7zMqseM_VX}o+c%^l+DTo&r zYRFeO+yK=Uql){q?4?<4S=Z(nW2=csXme7aO%Nw4tT3TDCMv@VahNyi4lWC7C74&j-h4#DoRb0H!qSG>9rPj5mRubcoct#>ufRC#J=T!W*Dmm!%0A;N(p$I}UoH6Mj+)D7L<52pOn=M`c)Sr}o?5 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 diff --git a/imagelab/DisplayImage.java b/imagelab/DisplayImage.java index 2fb266e..e209693 100644 --- a/imagelab/DisplayImage.java +++ b/imagelab/DisplayImage.java @@ -1,9 +1,13 @@ package imagelab; import javax.swing.JMenuBar; +import javax.swing.JMenuItem; import java.awt.Image; import java.awt.Color; import java.awt.image.MemoryImageSource; +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; +import java.awt.FileDialog; /** * Graphics frame used to display an image. @@ -45,6 +49,10 @@ public class DisplayImage extends ILFrame { /** y-coordinate for next window. */ private static int yspot = YMAX; + /** Accessible menu bar for DisplayImage. */ + private static JMenuBar myMenuBar; + + /** * This constructor takes the image object to display * and a string to use as the title of the window. @@ -104,11 +112,12 @@ public DisplayImage( setBounds(xspot, yspot, width, height + EXTRA_HEIGHT); WindowCloser wc = new WindowCloser(this); this.addWindowListener(wc); - JMenuBar myMenuBar = new JMenuBar(); + + myMenuBar = new JMenuBar(); myMenuBar.add(ImageLab.newFileMenu(this)); myMenuBar.add(ImageLab.newFilterMenu()); + setJMenuBar(myMenuBar); setVisible(true); } - } //class diff --git a/imagelab/ImageLab.java b/imagelab/ImageLab.java index 265dcc6..fe5a1c0 100644 --- a/imagelab/ImageLab.java +++ b/imagelab/ImageLab.java @@ -41,7 +41,7 @@ public class ImageLab { /** Holds all open images (ImgProvider objects). */ private static List images = new ArrayList(); - /** The directory that holds filter classes. (TODO) */ + /** The directory that holds filter classes. */ private static String filterDir = FILTER_DIR; /** Holds the actual filter objects. */ @@ -149,6 +149,11 @@ private JMenuBar buildMenus() { JMenuItem save = new JMenuItem("Save", 'S'); file.add(save); save.addActionListener(makeSaveListener()); + + JMenuItem findFilter = new JMenuItem("Configure Filter Directory", 'F'); + file.add(findFilter); + findFilter.addActionListener(makeOpenFilterDirListener()); + JMenuItem quit = new JMenuItem("Quit", 'Q'); file.add(quit); quit.addActionListener(new ActionListener() { @@ -158,8 +163,49 @@ public void actionPerformed( } } ); - JMenu filter = new JMenu("Filter"); - mbar.add(filter); + + mbar.add(newFilterMenu()); + + return mbar; + } //buildMenus + + /** + * Return a File menu for a single image. + * Provides "Play", "Save" and "Close". + * + * @param who Display Image used for Action Event + * @return the new File menu + */ + public static JMenu newFileMenu(final DisplayImage who) { + JMenu fileMenu = new JMenu("File"); + // JMenuItem open = new JMenuItem("Open",'O'); + // fileMenu.add(open); + // open.addActionListener(makeOpenListener()); + JMenuItem play = new JMenuItem("Play", 'P'); + fileMenu.add(play); + play.addActionListener(makePlayListener()); + JMenuItem save = new JMenuItem("Save", 'S'); + fileMenu.add(save); + save.addActionListener(makeSaveListener()); + JMenuItem close = new JMenuItem("Close", 'C'); + fileMenu.add(close); + close.addActionListener(new ActionListener() { + public void actionPerformed(final ActionEvent actev) { + who.setVisible(false); + who.byebye(); + } + }); + return fileMenu; + } + + /** + * Return a Filter menu with the filters found in the location selected. + * Provides access to all filters. + * + * @return the new Filter menu + */ + public static JMenu newFilterMenu() { + //Find filters and build corresponding menu items. //Look at each .class file in filterDir. //Do the classForName stuff and enter into filter menu. @@ -167,8 +213,12 @@ public void actionPerformed( FileSystemView fsv = FileSystemView.getFileSystemView(); //File [] fil = fsv.getFiles(new File("."),true); File[] fil = fsv.getFiles(new File(filterDir), true); + //System.out.println("Found " + fil.length + " possible filters"); String clName = " "; //holds name of class + + JMenu filter = new JMenu("Filter"); + for (int k = 0; k < fil.length; k++) { if (fil[k].getName().endsWith("class")) { Class cl; @@ -180,7 +230,7 @@ public void actionPerformed( clName = "filters." + clName.substring(0, spot); //System.out.println("Trying: " + clName); cl = Class.forName(clName); - //System.out.println("Class for name is: " + cl); + System.out.println("Class for name is: " + cl); Class[] interfaces = cl.getInterfaces(); boolean isFilter = false; for (int j = 0; j < interfaces.length; j++) { @@ -203,52 +253,7 @@ public void actionPerformed( } //for k - return mbar; - } //buildMenus - - /** - * Return a File menu for a single image. - * Provides "Play", "Save" and "Close". - * - * @param who Display Image used for Action Event - * @return the new File menu - */ - public static JMenu newFileMenu(final DisplayImage who) { - JMenu fileMenu = new JMenu("File"); - // JMenuItem open = new JMenuItem("Open",'O'); - // fileMenu.add(open); - // open.addActionListener(makeOpenListener()); - JMenuItem play = new JMenuItem("Play", 'P'); - fileMenu.add(play); - play.addActionListener(makePlayListener()); - JMenuItem save = new JMenuItem("Save", 'S'); - fileMenu.add(save); - save.addActionListener(makeSaveListener()); - JMenuItem close = new JMenuItem("Close", 'C'); - fileMenu.add(close); - close.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent actev) { - who.setVisible(false); - who.byebye(); - } - }); - return fileMenu; - } - - /** - * Return a Filter menu for a single image. - * Provides access to all filters. - * - * @return the new Filter menu - */ - public static JMenu newFilterMenu() { - JMenu filterMenu = new JMenu("Filter"); - for (int i = 0; i < filters.size(); i++) { - JMenuItem jmi = new JMenuItem(filters.get(i).getMenuLabel()); - filterMenu.add(jmi); - jmi.addActionListener(makeActionListener(filters.get(i))); - } - return filterMenu; + return filter; } /** @@ -275,6 +280,27 @@ public void actionPerformed(final ActionEvent ev) { }; } //makeActionListener + /** + * Create an ActionListener for selecting the filter directory. + * + * @return the ActionListener used to perform opening the filter directory + */ + public static ActionListener makeOpenFilterDirListener() { + return new ActionListener() { + public void actionPerformed(final ActionEvent e) { + FileDialog fd; + fd = new FileDialog(frame, "Pick a directory", FileDialog.LOAD); + fd.setVisible(true); + filterDir = fd.getDirectory(); + System.out.println("Listener - The directory name is " + filterDir); + menubar.remove(1); + menubar.add(newFilterMenu()); + frame.setJMenuBar(menubar); + + } //actionPerformed + }; + } // makeOpenFilterDirListener + /** * Create an ActionListener for opening an image file. * From 33d0bdc58d752dcb33170561addf2be9e6875bff Mon Sep 17 00:00:00 2001 From: devaccount Date: Thu, 5 Nov 2020 15:01:31 -0500 Subject: [PATCH 2/2] Folder chooser for Filters changed to JFileChooser --- imagelab.jar | Bin 394878 -> 394989 bytes imagelab/ImageLab.java | 14 ++++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/imagelab.jar b/imagelab.jar index 7a0bd53728029ce523c809d283b0ad15eb0ac520..c8f6808691aecbde81fcec4973283c7ed6131138 100644 GIT binary patch delta 17249 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