Re: [XMLPipeDB-developer] GenMAPP multitaxon support - CMSI 486T
Brought to you by:
kdahlquist,
zugzugglug
|
From: Kam D. <kda...@lm...> - 2011-08-01 17:47:05
|
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
>
>
>
|