Re: [XMLPipeDB-developer] GenMAPP multitaxon support - CMSI 486T
Brought to you by:
kdahlquist,
zugzugglug
From: Richard B. <rbr...@gm...> - 2011-08-02 23:25:57
|
OK, submitted new code which added the selected SpeciesProfiles into selectedSpecies ArrayList. Using this as the argument for: databaseProfile.setSelectedSpeciesProfile( selectedSpecies ); Thought I would snag each value when surfaced in the Object selection loop then add to ArrayList. Richard On Tue, Aug 2, 2011 at 8:50 AM, Richard Brous <rbr...@gm...> wrote: > Ah yes, I see why you inlined the conditional and now the code is much more > elegant. > > Btw, neglected to mention i'm starting on chapter 2 in the db textbook > today. > > Look forward to our chat in 15 minutes > richard > On Tue, Aug 2, 2011 at 8:39 AM, John David N. Dionisio <do...@lm...>wrote: > >> OK, cool, the changes look good. >> >> I committed some comments and little tweaks, mainly for style and >> succinctness reasons. The primary logic through-line was not touched. If >> you have any questions on those changes, we can discuss that sometime; those >> are secondary to the main-line issues that you mentioned. >> >> John David N. Dionisio, PhD >> Assistant Professor, Computer Science >> Loyola Marymount University >> >> >> On Aug 2, 2011, at 12:31 AM, Richard Brous wrote: >> >> > Just committed some new code. Mainly adding the logic to append the >> selected species with either generic or custom in the >> speciesDescriptionTextArea and cleared out more old comments to keep me >> focused. >> > >> > Also read through the first part of the ExportToGenMAPP class to get a >> handle on how it is sent the DatabaseProfile databaseProfile with a single >> species packaged within. From that effort, I decided to start on the >> databaseProfile.setSelectedSpeciesProfile method which would be modified for >> a collection of SpeciesProfiles. >> > >> > But I need to create that collection first back on ExportPanel1, >> proceeding the JList selection/display code. I just need to wrap my head >> around how to grab them and place them in a newly created SpeciesProfile [] >> selectedProfiles, which would then be used as the argument in >> databaseProfile.setSelectedSpeciesProfiles( selectedProfiles ); >> > >> > We can discuss this further on our call tomorrow. >> > >> > Richard >> > >> > >> > >> > >> > On Aug 1, 2011, at 11:13 AM, Kam Dahlquist <kda...@lm...> wrote: >> > >> >> 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 <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 < >> 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 <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 < >> 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 < >> 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 <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 >> >>>>>> > >> <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 >> >>>>>> > >> <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" >> >>>>>> > >> <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" >> >>>>>> > >> <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 >> >>>>>> > >> <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 >> >>>>>> > >>>>>>>> _______________________________________________ >> >>>>>> > >>>>>>>> xmlpipedb-developer mailing list >> >>>>>> > >>>>>>>> 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 >> >>>>>> > >>>>>>> _______________________________________________ >> >>>>>> > >>>>>>> xmlpipedb-developer mailing list >> >>>>>> > >>>>>>> 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 >> >>>>>> > >>>>>> _______________________________________________ >> >>>>>> > >>>>>> xmlpipedb-developer mailing list >> >>>>>> > >>>>>> 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/ >> >>>>>> > >>>>> _______________________________________________ >> >>>>>> > >>>>> xmlpipedb-developer mailing list >> >>>>>> > >>>>> 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/ >> >>>>>> > >>> _______________________________________________ >> >>>>>> > >>> xmlpipedb-developer mailing list >> >>>>>> > >>> 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/ >> >>>>>> > >> _______________________________________________ >> >>>>>> > >> xmlpipedb-developer mailing list >> >>>>>> > >> 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/ >> >>>>>> > > _______________________________________________ >> >>>>>> > > xmlpipedb-developer mailing list >> >>>>>> > > 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/ >> >>>>>> > _______________________________________________ >> >>>>>> > xmlpipedb-developer mailing list >> >>>>>> > 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/ >> >>>>>> _______________________________________________ >> >>>>>> xmlpipedb-developer mailing list >> >>>>>> 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 >> >>>>>> _______________________________________________ >> >>>>>> xmlpipedb-developer mailing list >> >>>>>> 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 >> >>>>> _______________________________________________ >> >>>>> xmlpipedb-developer mailing list >> >>>>> 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 >> >>>> _______________________________________________ >> >>>> xmlpipedb-developer mailing list >> >>>> 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 >> >> _______________________________________________ >> >> xmlpipedb-developer mailing list >> >> xml...@li... >> >> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >> > <ATT00001..txt><ATT00002..txt> >> >> >> >> ------------------------------------------------------------------------------ >> 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 >> _______________________________________________ >> xmlpipedb-developer mailing list >> xml...@li... >> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >> > > |