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
>
|