Re: [XMLPipeDB-developer] GenMAPP multitaxon support - CMSI 486T
Brought to you by:
kdahlquist,
zugzugglug
From: Kam D. <kda...@lm...> - 2011-08-01 18:13:43
|
Hi, That works for me. Talk to you tomorrow, Kam At 11:04 AM 8/1/2011, you wrote: >Greetings, > >No worries...for this week the best day turned out to be Tuesday; >hope that works well for you also. So, tomorrow at 9am unless >setting else comes up. > >John David N. Dionisio, PhD >Associate Professor, Computer Science >Loyola Marymount University > > >On Aug 1, 2011, at 10:46 AM, Kam Dahlquist ><<mailto:kda...@lm...>kda...@lm...> wrote: > >>Hi, >> >>I'm so sorry, I was on my "staycation" last week and just >>completely forgot about our scheduled phone call. >> >>I'm back in the office--what are the plans for this week's call? >> >>Thanks, >>Kam >> >>At 08:30 AM 7/28/2011, you wrote: >>>yes fri works for me. thank you! >>> >>>richard >>> >>>On Wed, Jul 27, 2011 at 9:42 PM, John David N. Dionisio >>><<mailto:do...@lm...>do...@lm...> wrote: >>>Greetings, >>>3pm Thursday won't work for me unfortunately. How about 9am >>>Friday? I can't stay too long even then but it will still be >>>better than not talking at all. >>> >>>John David N. Dionisio, PhD >>>Associate Professor, Computer Science >>>Loyola Marymount University >>> >>>On Jul 27, 2011, at 7:42 PM, Richard Brous >>><<mailto:rbr...@gm...>rbr...@gm...> wrote: >>> >>>>Hi all, >>>> >>>>Sorry to fall out of touch but with finals and papers due this >>>>week and and my mother in law back in the hospital, I'm about at my wits end. >>>> >>>>That said, I was wondering if we could move our con call to >>>>tomorrow afternoon if possible instead of 9am? ... Say 3pm 'ish? >>>>I don't want to miss it as I would like to discuss a few things >>>>but I just can't make it at 9am and then rushing to a 10am final exam. >>>> >>>>Sorry for the late notice but I hope you both understand... smc >>>>classes will be over tomorrow and I can focus much, much more on >>>>this afterwards. >>>> >>>>Richard >>>>On Wed, Jul 20, 2011 at 10:38 PM, John David N. Dionisio >>>><<mailto:do...@lm...>do...@lm...> wrote: >>>>Hi Rich, >>>>Congratulations! Welcome to the world of Swing GUI >>>>programming :) It has its share of tics and idiosyncrasies, but >>>>with some practice one gets the hang of it. >>>>I've reviewed your new code and have interspersed commentary in >>>>the context of your notes below. We don't have a lot of time >>>>tomorrow, so perhaps pick and choose the ones that you feel will >>>>benefit the most from synchronous discussion. >>>>John David N. Dionisio, PhD >>>>Associate Professor, Computer Science >>>>Loyola Marymount University >>>> >>>>On Jul 20, 2011, at 9:22 PM, Richard Brous wrote: >>>> > Hallelujah!!! - a list box with multiple species of which any >>>> combination can be selected now exists!!! Thanks Dondi!! (see attachment) >>>> > >>>> > >>>> > OK, had a chance to review the code corrections, other >>>> comments and think on the next steps surrounding the selection >>>> of multiple species and their dynamic text updating. Here is >>>> where I am at the moment: >>>> > >>>> > A. Dondis corrections/additions to my last submission >>>> > >>>> > 1. Creating a private class called SpeciesListModel which >>>> extended AbstractListModel >>>> > >>>> > As soon as I saw your code I realized that I had sort of coded >>>> it backwards, thinking about implementing an interface instead >>>> of just extending the abstract object and adding methods... duh. >>>> My face turned a bit red on that one. >>>> > >>>> > The idea still of creating a list model to manage the entries >>>> in the JList still seems a bit complicated and foreign but I >>>> guess the more I work with the java ui stuff, the better I will >>>> become with it. >>>> >>>>Yes, it can be unwieldy in simple cases (like this one) and can >>>>sometimes result in repetitive code. However, it is very >>>>flexible and truly encapsulates the list data from the list >>>>presentation (for example, with this approach, you can even >>>>create a ListModel that does not have a data structure behind it; >>>>or perhaps one that queries for the list contents dynamically). >>>> > Additionally I did attempt to add a new method under this >>>> class called clearSpeciesProfiles. This was meant to clear the >>>> JList of all species found each time the export1 panel was >>>> opened instead of aggregating the species in the list. It >>>> doesn't seem to be working though so I commented it out for now. >>>> Please let me know if I'm adding this functionality in the wrong >>>> way and/or in the incorrect location. >>>>A couple of notes on this one. Observe how setSpeciesProfile >>>>*replaces* the list of species profiles returned by the list >>>>model, and does not add to it. Thus, I do not think that the >>>>duplication occurs at this level --- I believe it occurs at the >>>>UniProtDatabaseProfile.checkRequirements method. Follow the code >>>>from GenMAPPBuilder.doExportToGenMAPP and see if you spot the >>>>issue. Remember that the symptom occurs when one tries to export >>>>more than once. Thus, see what the code does to the relevant >>>>data structures when GenMAPPBuilder.doExportToGenMAPP is called more than once. >>>> > 2. SpringLayout >>>> > >>>> > I took a look at the website and got a feel for how to adjust >>>> panel component locations. Seems like I can use those commands >>>> to make the adjustment to the species label that you mentioned in comments. >>>> > >>>> > Interesting how the leftPanel uses >>>> SpringUtilities.makeCompactGrid while the rightPanel uses >>>> GridLayout... didn't realize you could combine both kinds on content panel. >>>>Yes, this is the power and complexity of Swing layout management >>>>--- you can nest them as much as you like, and mix and match them >>>>as much as you like. Powerful and flexible, yes; potentially >>>>complicated, yes also. >>>> > B. further UI enhancements: >>>> > >>>> > 1. I dug into export1 design in regard to the text description >>>> areas of both the Database and Species profiles. They are both >>>> JTextAreas(3, 15) where 3 denotes rows and 15 denotes columns. I >>>> changed both fields to be editable and compiled just so I could >>>> see how big each text field really is. I was able to type in 23 >>>> characters across and 7 rows downward until the next row was >>>> cutoff by the bottom edge of the box. I also changed the row and >>>> column arguments to JTextAreas(2, 15) and JTextAreas(3, 10) and >>>> recompiled but didn't see any change in the volume of text I >>>> could enter... must not understand it completely... are the >>>> arguments only to manage components placed within the textArea >>>> maybe while loose text just starts top left and word/line wraps? >>>> > >>>> > My reason for fooling with this was to see what would happen >>>> of course but really I had the idea that I would shrink the size >>>> of the database profileDescriptiontextArea to allow for a larger >>>> speciesDescriptionTextArea below it. Also I had been thinking of >>>> how to represent the species and its associated custom or >>>> default species profile in a way that made the most sense. The >>>> species names are pretty long so was going to suggest to simply >>>> use taxon id, profile type (custom or default) since the user >>>> could cross reference in the JList just to the left. >>>> >>>>This issue rests in some of the tricks behind Swing layout >>>>management. Unlike conventional GUI design, where components are >>>>given fixed, absolute coordinates and sizes, Swing tries to >>>>"compute" the layout dynamically, based on a combination of >>>>rules, "preferred sizes," and min/max sizes. The exact algorithm >>>>for determining the final layout is placed in the LayoutManager >>>>class. The row/column settings given to JTextArea typically >>>>pertain to *preferred* sizing, not final sizing. As in, the >>>>JTextArea "asks" its containing panel that "if possible, I prefer >>>>to have this many rows and columns." The rule of thumb is that a >>>>layout manager tries to give its components their preferred sizes >>>>*or greater*, if available (the idea being that most UI >>>>components wouldn't mind getting more space than they originally asked for). >>>>To exercise greater control over this, you'll need to get a >>>>better handle on the behavior or the various layout >>>>managers. Certain layout managers *do* cap a UI component's size >>>>to no greater than its preference. This takes some practice, >>>>however, and some familiarity with the layout manager "zoo." My >>>>suggestion: let's leave well enough alone here for now, get the >>>>functionality done first, then come back to this later. >>>> > 2. Dynamic insertion of desired species info into the >>>> speciesDescriptionTextArea >>>> > >>>> > In thinking of how to solve this I went back to code I had >>>> commented out in my last submission - the protected method which >>>> detected a change in species choice occurred within the >>>> JComboBox: speciesProfileSelected( Object selectedItem ) { >>>>Yes, the fundamental change that you are making now is that *more >>>>than one species profile may be active*. What you need to do, >>>>then, is to maintain the selected species profiles as a >>>>collection, and not as a single value. Then, all the code that >>>>used to assume that only a species profile gets selected need to >>>>be modified so that they can accommodate a collection of species >>>>profiles. Cases in point... >>>> > I had been struggling with what that method really should be >>>> doing now that we have a JList where multiple species could be >>>> selected. And after some review and then walking away from it >>>> for a few, I think it only needs to handle two things: >>>> > a. ensure that all the selected species are added to the >>>> export dataset. (We then modify the export process itself to >>>> account for and properly process multiple species.) >>>>...This is the fundamental change that dominoes through the rest >>>>of the export code. Instead of holding on to a single selected >>>>species profile, you need to maintain a collection of them. Also... >>>> > b. use the selected indices to populate/depopulate the >>>> speciesDescriptionTextArea dynamically as a >>>> selection/deselection is made within the JList. >>>> > I have some ideas but would like to talk them through on the >>>> call tomorrow. I'll also submit my latest pass on the code for review. >>>>...This part requires some rewriting so that the generated >>>>descriptive text can accommodate a collection of species >>>>profiles. The message generation thus gets a little more >>>>complicated. But it's just additional logic, iterating through >>>>the species profiles and incrementally appending a message string >>>>until you've gone through all of the selected profiles. e.g., >>>>"This export will use a customized profile for S. typhimurium, a >>>>general-purpose profile for B. anthracis, and a customized >>>>species profile for H. pylori." Hope you can see how that string >>>>can be computed via iteration through a species profile collection. >>>> >>>>OK, that would be my 2 cents...let's see what needs live >>>>discussion tomorrow morning. >>>> > Richard >>>> > >>>> > >>>> > >>>> > On Wed, Jul 20, 2011 at 9:00 AM, John David N. Dionisio >>>> <<mailto:do...@lm...>do...@lm...> wrote: >>>> > Sounds good, talk to everyone Thursday 9am then :) >>>> > >>>> > John David N. Dionisio, PhD >>>> > Associate Professor, Computer Science >>>> > Loyola Marymount University >>>> > >>>> > >>>> > On Jul 20, 2011, at 8:47 AM, Kam Dahlquist >>>> <<mailto:kda...@lm...>kda...@lm...> wrote: >>>> > >>>> > > Hi, >>>> > > >>>> > > I'm OK for Thursday, too. Sorry, I don't generally check my e-mail >>>> > > at night. Hope everything is OK. In the future, don't hesitate to >>>> > > move things if I'm not responding, I'll catch up eventually :) >>>> > > >>>> > > Best, >>>> > > Kam >>>> > > >>>> > > At 08:29 AM 7/20/2011, John David N. Dionisio wrote: >>>> > >> OK, acknowledged. Take care. >>>> > >> >>>> > >> John David N. Dionisio, PhD >>>> > >> Associate Professor, Computer Science >>>> > >> Loyola Marymount University >>>> > >> >>>> > >> >>>> > >> >>>> > >> On Jul 20, 2011, at 8:25 AM, Richard Brous wrote: >>>> > >> >>>> > >>> OK, I am forced to push to tomorrow now because our nanny is >>>> > >> stuck in traffic, christina is back at the hospital and I have to >>>> > >> drive my boys to MDR for their camp. >>>> > >>> >>>> > >>> I'm sorry this is so crazy but all is upside down atm. >>>> > >>> >>>> > >>> I already have a bunch of questions which I will lay out via >>>> > >> email since they are more high level than can be placed in code >>>> > >> comments... at least I think so atm. >>>> > >>> >>>> > >>> Either way come hell or high-water I'll get another iteration on >>>> > >> this prior to a call. >>>> > >>> >>>> > >>> rb >>>> > >>> >>>> > >>> On Tue, Jul 19, 2011 at 11:21 PM, John David N. Dionisio >>>> > >> <<mailto:do...@lm...>do...@lm...> wrote: >>>> > >>> Hi Rich, >>>> > >>> >>>> > >>> Sorry to hear about your mother-in-law. Hospital wait states are >>>> > >> never fun. >>>> > >>> >>>> > >>> I can do Thursday morning at 9am if needed. Let's watch the >>>> > >> e-mail in the morning to see if Kam can do that too; if so, then >>>> > >> Thursday it is, but if not, then we can still push for >>>> Wednesday 9am. >>>> > >>> >>>> > >>> John David N. Dionisio, PhD >>>> > >>> Associate Professor, Computer Science >>>> > >>> Loyola Marymount University >>>> > >>> >>>> > >>> >>>> > >>> >>>> > >>> On Jul 19, 2011, at 10:26 PM, Richard Brous wrote: >>>> > >>> >>>> > >>>> ok, can't get a break... sitting in the ER after admitting my >>>> > >> mother in law at St. Johns in Santa Monica. We are waiting to get >>>> > >> her a bed but not sure how long it will take. >>>> > >>>> >>>> > >>>> Luckily I have my laptop with me so I was able to scan the new >>>> > >> code with all the Dondi comments and compile a build which runs. I >>>> > >> will review Dondi's changes as best I can from here but likely >>>> > >> won't be able to do much with it by our call tomorrow. >>>> > >>>> >>>> > >>>> I'm happy to push our call to Thursday morning instead of >>>> > >> tomorrow to allow more time... but it is late so unless I hear >>>> > >> otherwise, tomorrow at 9am is still a go. >>>> > >>>> >>>> > >>>> Richard >>>> > >>>> >>>> > >>>> On Tue, Jul 19, 2011 at 3:00 PM, Richard Brous >>>> > >> <<mailto:rbr...@gm...>rbr...@gm...> wrote: >>>> > >>>> Thanks will review later this afternoon. Sorry got hung up on >>>> > >> this but continuing forward comments in code should speed >>>> this way up. >>>> > >>>> >>>> > >>>> Rb >>>> > >>>> >>>> > >>>> Sent from my iPhone >>>> > >>>> >>>> > >>>> On Jul 19, 2011, at 12:04 AM, "John David N. Dionisio" >>>> > >> <<mailto:do...@lm...>do...@lm...> wrote: >>>> > >>>> >>>> > >>>>> Greetings, >>>> > >>>>> >>>> > >>>>> OK, my responses are committed. As noted in my "Dondi -" >>>> > >> comments, you were fairly close. The main miss was how >>>> > >> AbstractListModel was to be used. Give it a gander and holler if >>>> > >> anything else remains unclear. >>>> > >>>>> >>>> > >>>>> At this point, you'll need to start managing what should >>>> > >> happen as the user selects/deselects species. You'll also want >>>> > >> that little informational panel on the right that summarizes (for >>>> > >> tech types) whether the selected species will be using a customized >>>> > >> species profile or the generic one. >>>> > >>>>> >>>> > >>>>> Carry on, see how this goes. :) >>>> > >>>>> >>>> > >>>>> John David N. Dionisio, PhD >>>> > >>>>> Associate Professor, Computer Science >>>> > >>>>> Loyola Marymount University >>>> > >>>>> >>>> > >>>>> >>>> > >>>>> On Jul 18, 2011, at 10:14 AM, Richard Brous wrote: >>>> > >>>>> >>>> > >>>>>> Ok , took the code as far as I could and submitted export 1 >>>> > >> - unfortunately broken code even though I made a point not to by >>>> > >> commenting out unfinished blocks. Take a look at the commit >>>> comments for info. >>>> > >>>>>> >>>> > >>>>>> I look forward to your comments which I'm sure will help >>>> > >> straighten this out! >>>> > >>>>>> >>>> > >>>>>> Rb >>>> > >>>>>> >>>> > >>>>>> Sent from my iPhone >>>> > >>>>>> >>>> > >>>>>> On Jul 12, 2011, at 6:35 PM, "John David N. Dionisio" >>>> > >> <<mailto:do...@lm...>do...@lm...> wrote: >>>> > >>>>>> >>>> > >>>>>>> Hi there, >>>> > >>>>>>> >>>> > >>>>>>> A code-oriented session is OK with me, though this >>>> > >> particular question I can take a stab at via e-mail. >>>> > >>>>>>> >>>> > >>>>>>> The trick with full control of a JList is to implement its >>>> > >> model (a ListModel). For this, I usually create a subclass of >>>> > >> AbstractListModel and implement the missing methods. This >>>> > >> AbstractListModel subclass should be able to see the list of >>>> > >> species found. Then, the implementations of its missing methods >>>> > >> would be based on that list of species. >>>> > >>>>>>> >>>> > >>>>>>> With this ListModel class in hand, keeping the JList up to >>>> > >> date is a matter of instantiating the JList with this model: >>>> > >>>>>>> >>>> > >>>>>>> SpeciesListModel speciesListModel = new SpeciesListModel(); >>>> > >>>>>>> speciesCheckList = new JList(speciesListModel); >>>> > >>>>>>> >>>> > >>>>>>> If the species list changes, have the species list model >>>> > >> fire the appropriate list change event (the JavaDoc API has a bunch >>>> > >> of fire* methods). To keep things simple, there is a "full update" >>>> > >> event which just says "rebuild the entire JList." That one should >>>> > >> be OK. There are finer-grained ones like "something got inserted" >>>> > >> and "something got removed," but that really is more for >>>> optimization purposes. >>>> > >>>>>>> >>>> > >>>>>>> As for the text display, the simplest approach is to >>>> > >> implement the toString method of the SpeciesProfile class so that >>>> > >> they return something that is appropriate for a JList. Sometimes >>>> > >> that is too limiting though. If you want greater flexibility, you >>>> > >> will want to implement a ListCellRenderer. There is a class called >>>> > >> DefaultListCellRenderer that you can extend. Typically the >>>> > >> subclass would call the superclass's method, which returns a >>>> > >> JLabel. You can then change the content of the JLabel according to >>>> > >> the list item that you are trying to display. >>>> > >>>>>>> >>>> > >>>>>>> See if these leads are enough to go on. If not, I can talk >>>> > >> you through them more during the call. >>>> > >>>>>>> >>>> > >>>>>>> John David N. Dionisio, PhD >>>> > >>>>>>> Associate Professor, Computer Science >>>> > >>>>>>> Loyola Marymount University >>>> > >>>>>>> >>>> > >>>>>>> >>>> > >>>>>>> On Jul 12, 2011, at 6:00 PM, Richard Brous wrote: >>>> > >>>>>>> >>>> > >>>>>>>> Update for tomorrow 7/13/11: >>>> > >>>>>>>> >>>> > >>>>>>>> Clear on what I need to do but can't seem to figure out a >>>> > >> way to do it. I think the best use of our time tomorrow is to make >>>> > >> it a code discussion session (giving Dr. Dahlquist the opportunity >>>> > >> to bow out if so inclined) >>>> > >>>>>>>> >>>> > >>>>>>>> 1. In regard to the JList, I have been working on the best >>>> > >> way to implement it but am getting stuck on how to populate it and >>>> > >> where to do so in the code. >>>> > >>>>>>>> >>>> > >>>>>>>> I'm currently working in ExportPanel1.java and have done >>>> > >> the following so far: >>>> > >>>>>>>> >>>> > >>>>>>>> imported JList; >>>> > >>>>>>>> imported javax.swing.event.*; >>>> > >>>>>>>> >>>> > >>>>>>>> >>>> > >>>>>>>> public class ExportPanel1 extends JPanel { >>>> > >>>>>>>> added: private JList speciesCheckList; >>>> > >>>>>>>> >>>> > >>>>>>>> private JPanel getContentPanel () { >>>> > >>>>>>>> underneath the species combo box entry // species | >>>> > >> JComboBox | speciesFound |JLabel | Description | ... >>>> > >>>>>>>> >>>> > >>>>>>>> added: speciesCheckList = new JList ( speciesProfilesFound ); >>>> > >>>>>>>> >>>> > >>>>>>>> // registered the listeners >>>> > >>>>>>>> speciesCheckList.addListSelectionListener ( new >>>> > >> ListSelectionListener () { >>>> > >>>>>>>> // handle list selection >>>> > >>>>>>>> public void valueChanged ( ListSelectionEvent e ) { >>>> > >>>>>>>> // get selected indices >>>> > >>>>>>>> int [] indices = speciesCheckList.getSelectedIndices (); >>>> > >>>>>>>> } >>>> > >>>>>>>> }); >>>> > >>>>>>>> >>>> > >>>>>>>> added: //leftPanel.add ( speciesComboBox ); >>>> > >>>>>>>> leftPanel.add ( speciesCheckList ); >>>> > >>>>>>>> >>>> > >>>>>>>> The real issue here is how to populate the JList... I took >>>> > >> a look at the constructors but can't determine a way to populate it >>>> > >> after instantiation... maybe using abstract class somehow? >>>> > >>>>>>>> >>>> > >>>>>>>> So instead I have been working to add the >>>> > >> speciesProfilesFound [] ArrayList as a constructor argument. Then I >>>> > >> can pre-populate it prior to the contentPanel being >>>> > >> initialized???... or possibly similar to the init() method which >>>> > >> pre-populates the Database profileComboBox? >>>> > >>>>>>>> >>>> > >>>>>>>> Once the initital population of the JList is done we can >>>> > >> modify it for the later methods which dynamically alter content in >>>> > >> databaseProfileSelected() and speciesProfileSelected(). This will >>>> > >> effect the selectedSpeciesProfile() method usage and its >>>> getter and setter. >>>> > >>>>>>>> >>>> > >>>>>>>> Also we can then work on the text indication which >>>> > >> dynamically shows the selected species and whether a custom or >>>> > >> generic profile has been associated. >>>> > >>>>>>>> >>>> > >>>>>>>> Dondi - I'm looking forward to your suggestions and >>>> assistance!!! >>>> > >>>>>>>> >>>> > >>>>>>>> Richard >>>> > >>>>>>>> >>>> > >>>>>>>> >>>> > >>>>>>>> >>>> > >>>>>>>> On Wed, Jul 6, 2011 at 10:58 PM, John David N. Dionisio >>>> > >> <<mailto:do...@lm...>do...@lm...> wrote: >>>> > >>>>>>>> Hi Rich, >>>> > >>>>>>>> >>>> > >>>>>>>> OK, thanks for the discussion setup. We'll work through >>>> > >> this during the call. >>>> > >>>>>>>> >>>> > >>>>>>>> John David N. Dionisio, PhD >>>> > >>>>>>>> Associate Professor, Computer Science >>>> > >>>>>>>> Loyola Marymount University >>>> > >>>>>>>> >>>> > >>>>>>>> >>>> > >>>>>>>> >>>> > >>>>>>>> On Jul 6, 2011, at 7:37 PM, Richard Brous wrote: >>>> > >>>>>>>> >>>> > >>>>>>>>> Update on status: >>>> > >>>>>>>>> >>>> > >>>>>>>>> Over the past two weeks I have spent time doing the >>>> following: >>>> > >>>>>>>>> >>>> > >>>>>>>>> 1. Reviewed the taxon id code changes which Don Murphy >>>> > >> coded and were merged to create version 2.0 b64 >>>> > >>>>>>>>> 2. Reviewed the UniprotDatabaseProfile, >>>> > >> UniprotSpeciesProfile, SpeciesProfile, Profile and >>>> DatabaseProfile files >>>> > >>>>>>>>> 3. Reviewed and discussed the process by which GenMAPP >>>> > >> matches single taxon ids found in a Postgres db with the known >>>> > >> species profiles. >>>> > >>>>>>>>> >>>> > >>>>>>>>> Current actions: >>>> > >>>>>>>>> >>>> > >>>>>>>>> During the last few days I have started coding in the >>>> > >> ability for the species matching functionality to surface multiple >>>> > >> taxon ids from within a Postgres db. >>>> > >>>>>>>>> >>>> > >>>>>>>>> The process being the following steps: >>>> > >>>>>>>>> >>>> > >>>>>>>>> 1. Grab all the taxon ids from the Postgres db >>>> > >>>>>>>>> The current iteration of the software already does this. >>>> > >> In the checkRequirements method in UniprotDatabaseProfile.java, a >>>> > >> query of the Postgres db acquires all taxon id's and stores them in >>>> > >> ResultSet result variable. >>>> > >>>>>>>>> >>>> > >>>>>>>>> 2. Check to find match between the taxon ids from >>>> > >> Postgres against existing species profiles for known species. >>>> > >>>>>>>>> >>>> > >>>>>>>>> The current iteration compares each taxon id in ResultSet >>>> > >> result variable. >>>> > >>>>>>>>> First taxon id from result: >>>> > >>>>>>>>> If match was found, then that species profile with >>>> > >> associated taxon id was added to the speciesProfilesFound arraylist. >>>> > >>>>>>>>> If no match was found, a generic species profile >>>> > >> associated with the current taxon id was added to the >>>> > >> speciesProfilesFound arraylist. >>>> > >>>>>>>>> >>>> > >>>>>>>>> Next taxon id from result >>>> > >>>>>>>>> If match was found, then that species profile with >>>> > >> associated taxon id was added to the speciesProfilesFound arraylist. >>>> > >>>>>>>>> If no match was found, a generic species profile >>>> > >> associated with the current taxon id was added to the >>>> > >> speciesProfilesFound arraylist. >>>> > >>>>>>>>> >>>> > >>>>>>>>> Repeat until no more taxon ids are found in ResultSet >>>> > >> result variable. >>>> > >>>>>>>>> >>>> > >>>>>>>>> 3. Replace the JComboBox with a JList to allow the user >>>> > >> to choose a selection of multiple species to export. >>>> > >>>>>>>>> >>>> > >>>>>>>>> Use the getSelectedIndices method for JList to determine >>>> > >> which species have been selected for export. >>>> > >>>>>>>>> >>>> > >>>>>>>>> 4. Modify the export process to run a pass for each >>>> > >> species selected to generate a multispecies gdb. >>>> > >>>>>>>>> details to be determined. >>>> > >>>>>>>>> >>>> > >>>>>>>>> >>>> > >> >>>> ----------------------------------------------------------------------------------------------------------------------------------------------------------- >>>> >>>> > >>>>>>>>> >>>> > >>>>>>>>> >>>> > >>>>>>>>> Discussion for tomorrows call: >>>> > >>>>>>>>> >>>> > >>>>>>>>> >>>> > >>>>>>>>> We previously discussed allowing user input to manually >>>> > >> add taxon ids and associate them to the generic profile. >>>> > >>>>>>>>> >>>> > >>>>>>>>> Unless I don't really understand the reasoning behind >>>> > >> this, it seems to me that it is unnecessary. Why would we add a >>>> > >> taxon id during the export process that isn't already in >>>> the Postgres data? >>>> > >>>>>>>>> >>>> > >>>>>>>>> The current implementation already captures every taxon >>>> > >> id in speciesProfilesFound regardless if its a known species or >>>> > >> not. So it seems that we don't need to make any modifications in >>>> > >> surfacing taxon ids from a Postgres db. >>>> > >>>>>>>>> >>>> > >>>>>>>>> Then we can go directly to #3 above which I have mostly >>>> > >> coded, but can't seem to figure out how and where to populate the >>>> > >> JList. In reviewing constructor documentation it indicates 4 ways >>>> > >> to instantiate. >>>> > >>>>>>>>> >>>> > >>>>>>>>> My first choice was to create an empty JList [ JList () ] >>>> > >> and populate it later but I don't see a method to do so such as >>>> > >> addItems or something similar. >>>> > >>>>>>>>> >>>> > >>>>>>>>> I then tried to instantiate with speciesProfileFound as >>>> > >> an array argument: JList ( SpeciesProfile[] speciesProfilesFound ) >>>> > >> but can't resolve. >>>> > >>>>>>>>> >>>> > >>>>>>>>> >>>> > >>>>>>>>> Anyway, I look forward to our call at 9am tomorrow. >>>> > >>>>>>>>> >>>> > >>>>>>>>> Richard >>>> > >>>>>>>>> <ATT00001..txt><ATT00002..txt> >>>> > >>>>>>>> >>>> > >>>>>>>> >>>> > >>>>>>>> >>>> > >> >>>> ------------------------------------------------------------------------------ >>>> > >>>>>>>> All of the data generated in your IT infrastructure is >>>> > >> seriously valuable. >>>> > >>>>>>>> Why? It contains a definitive record of application >>>> > >> performance, security >>>> > >>>>>>>> threats, fraudulent activity, and more. Splunk takes this >>>> > >> data and makes >>>> > >>>>>>>> sense of it. IT sense. And common sense. >>>> > >>>>>>>> >>>> <http://p.sf.net/sfu/splunk-d2d-c2>http://p.sf.net/sfu/splunk-d2d-c2 >>>> > >>>>>>>> _______________________________________________ >>>> > >>>>>>>> xmlpipedb-developer mailing list >>>> > >>>>>>>> >>>> <mailto:xml...@li...>xml...@li... >>>> >>>> > >>>>>>>> >>>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> > >>>>>>>> >>>> > >>>>>>>> <ATT00001..txt><ATT00002..txt> >>>> > >>>>>>> >>>> > >>>>>>> >>>> > >>>>>>> >>>> > >> >>>> ------------------------------------------------------------------------------ >>>> > >>>>>>> AppSumo Presents a FREE Video for the SourceForge >>>> Community by Eric >>>> > >>>>>>> Ries, the creator of the Lean Startup Methodology on >>>> "Lean Startup >>>> > >>>>>>> Secrets Revealed." This video shows you how to >>>> validate your ideas, >>>> > >>>>>>> optimize your ideas and identify your business strategy. >>>> > >>>>>>> >>>> <http://p.sf.net/sfu/appsumosfdev2dev>http://p.sf.net/sfu/appsumosfdev2dev >>>> > >>>>>>> _______________________________________________ >>>> > >>>>>>> xmlpipedb-developer mailing list >>>> > >>>>>>> >>>> <mailto:xml...@li...>xml...@li... >>>> >>>> > >>>>>>> >>>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> > >>>>>> >>>> > >>>>>> >>>> > >> >>>> ------------------------------------------------------------------------------ >>>> > >>>>>> AppSumo Presents a FREE Video for the SourceForge >>>> Community by Eric >>>> > >>>>>> Ries, the creator of the Lean Startup Methodology on >>>> "Lean Startup >>>> > >>>>>> Secrets Revealed." This video shows you how to validate >>>> your ideas, >>>> > >>>>>> optimize your ideas and identify your business strategy. >>>> > >>>>>> >>>> <http://p.sf.net/sfu/appsumosfdev2dev>http://p.sf.net/sfu/appsumosfdev2dev >>>> > >>>>>> _______________________________________________ >>>> > >>>>>> xmlpipedb-developer mailing list >>>> > >>>>>> >>>> <mailto:xml...@li...>xml...@li... >>>> >>>> > >>>>>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> > >>>>> >>>> > >>>>> >>>> > >>>>> >>>> > >> >>>> ------------------------------------------------------------------------------ >>>> > >>>>> Magic Quadrant for Content-Aware Data Loss Prevention >>>> > >>>>> Research study explores the data loss prevention market. >>>> > >> Includes in-depth >>>> > >>>>> analysis on the changes within the DLP market, and the >>>> criteria used to >>>> > >>>>> evaluate the strengths and weaknesses of these DLP solutions. >>>> > >>>>> >>>> <http://www.accelacomm.com/jaw/sfnl/114/51385063/>http://www.accelacomm.com/jaw/sfnl/114/51385063/ >>>> >>>> > >>>>> _______________________________________________ >>>> > >>>>> xmlpipedb-developer mailing list >>>> > >>>>> >>>> <mailto:xml...@li...>xml...@li... >>>> >>>> > >>>>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> > >>>> >>>> > >>>> <ATT00001..txt><ATT00002..txt> >>>> > >>> >>>> > >>> >>>> > >>> >>>> > >> >>>> ------------------------------------------------------------------------------ >>>> > >>> 10 Tips for Better Web Security >>>> > >>> Learn 10 ways to better secure your business today. Topics >>>> covered include: >>>> > >>> Web security, SSL, hacker attacks & Denial of Service >>>> (DoS), private keys, >>>> > >>> security Microsoft Exchange, secure Instant Messaging, and >>>> much more. >>>> > >>> >>>> <http://www.accelacomm.com/jaw/sfnl/114/51426210/>http://www.accelacomm.com/jaw/sfnl/114/51426210/ >>>> >>>> > >>> _______________________________________________ >>>> > >>> xmlpipedb-developer mailing list >>>> > >>> >>>> <mailto:xml...@li...>xml...@li... >>>> >>>> > >>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> > >>> >>>> > >>> <ATT00001..txt><ATT00002..txt> >>>> > >> >>>> > >> >>>> > >> >>>> ------------------------------------------------------------------------------ >>>> > >> 10 Tips for Better Web Security >>>> > >> Learn 10 ways to better secure your business today. Topics >>>> covered include: >>>> > >> Web security, SSL, hacker attacks & Denial of Service >>>> (DoS), private keys, >>>> > >> security Microsoft Exchange, secure Instant Messaging, and >>>> much more. >>>> > >> >>>> <http://www.accelacomm.com/jaw/sfnl/114/51426210/>http://www.accelacomm.com/jaw/sfnl/114/51426210/ >>>> >>>> > >> _______________________________________________ >>>> > >> xmlpipedb-developer mailing list >>>> > >> >>>> <mailto:xml...@li...>xml...@li... >>>> >>>> > >> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> > > >>>> > > >>>> > > >>>> ------------------------------------------------------------------------------ >>>> > > 10 Tips for Better Web Security >>>> > > Learn 10 ways to better secure your business today. Topics >>>> covered include: >>>> > > Web security, SSL, hacker attacks & Denial of Service (DoS), >>>> private keys, >>>> > > security Microsoft Exchange, secure Instant Messaging, and much more. >>>> > > >>>> <http://www.accelacomm.com/jaw/sfnl/114/51426210/>http://www.accelacomm.com/jaw/sfnl/114/51426210/ >>>> >>>> > > _______________________________________________ >>>> > > xmlpipedb-developer mailing list >>>> > > >>>> <mailto:xml...@li...>xml...@li... >>>> >>>> > > https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> > >>>> > >>>> ------------------------------------------------------------------------------ >>>> > 10 Tips for Better Web Security >>>> > Learn 10 ways to better secure your business today. Topics >>>> covered include: >>>> > Web security, SSL, hacker attacks & Denial of Service (DoS), >>>> private keys, >>>> > security Microsoft Exchange, secure Instant Messaging, and much more. >>>> > >>>> <http://www.accelacomm.com/jaw/sfnl/114/51426210/>http://www.accelacomm.com/jaw/sfnl/114/51426210/ >>>> >>>> > _______________________________________________ >>>> > xmlpipedb-developer mailing list >>>> > >>>> <mailto:xml...@li...>xml...@li... >>>> >>>> > https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> > >>>> > <export1-crop.jpg><ATT00001..txt><ATT00002..txt> >>>> >>>>------------------------------------------------------------------------------ >>>> >>>>5 Ways to Improve & Secure Unified Communications >>>>Unified Communications promises greater efficiencies for business. UC can >>>>improve internal communications as well as offer faster, more >>>>efficient ways >>>>to interact with customers and streamline customer service. Learn more! >>>><http://www.accelacomm.com/jaw/sfnl/114/51426253/>http://www.accelacomm.com/jaw/sfnl/114/51426253/ >>>> >>>>_______________________________________________ >>>>xmlpipedb-developer mailing list >>>><mailto:xml...@li...>xml...@li... >>>> >>>>https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>> >>>> >>>>------------------------------------------------------------------------------ >>>> >>>>Got Input? Slashdot Needs You. >>>>Take our quick survey online. Come on, we don't ask for help often. >>>>Plus, you'll get a chance to win $100 to spend on ThinkGeek. >>>><http://p.sf.net/sfu/slashdot-survey>http://p.sf.net/sfu/slashdot-survey >>>>_______________________________________________ >>>>xmlpipedb-developer mailing list >>>><mailto:xml...@li...>xml...@li... >>>> >>>>https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>>------------------------------------------------------------------------------ >>> >>>Got Input? Slashdot Needs You. >>>Take our quick survey online. Come on, we don't ask for help often. >>>Plus, you'll get a chance to win $100 to spend on ThinkGeek. >>><http://p.sf.net/sfu/slashdot-survey>http://p.sf.net/sfu/slashdot-survey >>>_______________________________________________ >>>xmlpipedb-developer mailing list >>><mailto:xml...@li...>xml...@li... >>> >>>https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >>> >>> >>------------------------------------------------------------------------------ >>BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA >>The must-attend event for mobile developers. Connect with experts. >>Get tools for creating Super Apps. See the latest technologies. >>Sessions, hands-on labs, demos & much more. Register early & save! >><http://p.sf.net/sfu/rim-blackberry-1>http://p.sf.net/sfu/rim-blackberry-1 >>_______________________________________________ >>xmlpipedb-developer mailing list >><mailto:xml...@li...>xml...@li... >>https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer > |