You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(18) |
Aug
(33) |
Sep
(30) |
Oct
(27) |
Nov
(59) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(67) |
Feb
(44) |
Mar
(70) |
Apr
(73) |
May
(119) |
Jun
(31) |
Jul
(92) |
Aug
(86) |
Sep
(76) |
Oct
(152) |
Nov
(156) |
Dec
(85) |
2008 |
Jan
(111) |
Feb
(121) |
Mar
(107) |
Apr
(102) |
May
(45) |
Jun
(65) |
Jul
(62) |
Aug
(133) |
Sep
(56) |
Oct
(56) |
Nov
(17) |
Dec
(15) |
2009 |
Jan
(10) |
Feb
(5) |
Mar
(10) |
Apr
(14) |
May
(49) |
Jun
(94) |
Jul
(67) |
Aug
(23) |
Sep
(9) |
Oct
(92) |
Nov
(26) |
Dec
(51) |
2010 |
Jan
(105) |
Feb
(83) |
Mar
(52) |
Apr
(59) |
May
(68) |
Jun
(71) |
Jul
(127) |
Aug
(49) |
Sep
(91) |
Oct
(27) |
Nov
(33) |
Dec
(26) |
2011 |
Jan
(26) |
Feb
(45) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(15) |
Jul
(45) |
Aug
(33) |
Sep
(50) |
Oct
(22) |
Nov
(10) |
Dec
(21) |
2012 |
Jan
(33) |
Feb
(24) |
Mar
(36) |
Apr
(60) |
May
(60) |
Jun
(43) |
Jul
(114) |
Aug
(19) |
Sep
(35) |
Oct
(24) |
Nov
(64) |
Dec
(12) |
2013 |
Jan
(54) |
Feb
(58) |
Mar
(51) |
Apr
(46) |
May
(21) |
Jun
(29) |
Jul
(25) |
Aug
(25) |
Sep
(13) |
Oct
(7) |
Nov
(14) |
Dec
(27) |
2014 |
Jan
(10) |
Feb
(7) |
Mar
(16) |
Apr
(14) |
May
(19) |
Jun
(8) |
Jul
(15) |
Aug
(11) |
Sep
(5) |
Oct
(11) |
Nov
(11) |
Dec
(4) |
2015 |
Jan
(52) |
Feb
(27) |
Mar
(22) |
Apr
(17) |
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(2) |
Oct
|
Nov
(2) |
Dec
|
2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(3) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
(2) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(4) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: <nl...@us...> - 2007-09-24 06:20:31
|
Revision: 929 http://obo.svn.sourceforge.net/obo/?rev=929&view=rev Author: nlw Date: 2007-09-23 23:20:35 -0700 (Sun, 23 Sep 2007) Log Message: ----------- A simple window for requesting a term. Its sitting under the 'help' menu, probably not the best place. This is incomplete, but its getting there. Intended to be used with an online tracking interface like ORB. Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/HelpMenu.java Added Paths: ----------- phenote/trunk/jars/swing-layout.jar phenote/trunk/src/java/phenote/gui/TermRequestGUI.java Added: phenote/trunk/jars/swing-layout.jar =================================================================== (Binary files differ) Property changes on: phenote/trunk/jars/swing-layout.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: phenote/trunk/src/java/phenote/gui/HelpMenu.java =================================================================== --- phenote/trunk/src/java/phenote/gui/HelpMenu.java 2007-09-21 19:15:22 UTC (rev 928) +++ phenote/trunk/src/java/phenote/gui/HelpMenu.java 2007-09-24 06:20:35 UTC (rev 929) @@ -19,6 +19,7 @@ import phenote.config.ConfigException; //import phenote.gui.prefswindow.PrefsWindowController; ??? import phenote.gui.SplashScreen; +import phenote.gui.TermRequestGUI; import phenote.main.PhenoteVersion; import phenote.main.HelpManager; @@ -26,6 +27,7 @@ private JMenuItem help; public SplashScreen splashScreen; + public TermRequestGUI termRequester; private String logoFile = "src/java/phenote/images/phenote_logo.jpg"; HelpMenu() { @@ -56,6 +58,15 @@ about.setActionCommand("about"); about.addActionListener(actionListener); add(about); + + JMenuItem request = new JMenuItem("Request Term"); + request.setEnabled(true); + request.setActionCommand("request"); +// termRequester.addMouseListener(splashScreenListener); + + request.addActionListener(actionListener); + add(request); + } private class HelpActionListener implements ActionListener { @@ -77,19 +88,27 @@ // splashScreenDestruct(); // System.out.println("about selected"); } - } + else if (e.getActionCommand().equals("request")) { + try { + termRequester = new TermRequestGUI(); + termRequester.setVisible(true); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } } private void splashScreenInit() { - ImageIcon myImage = new ImageIcon(logoFile); - SplashScreenListener splashScreenListener = new SplashScreenListener(); - splashScreen = new SplashScreen(myImage,true); // true->enable - splashScreen.setLocationRelativeTo(null); + ImageIcon myImage = new ImageIcon(logoFile); + SplashScreenListener splashScreenListener = new SplashScreenListener(); + splashScreen = new SplashScreen(myImage,true); // true->enable + splashScreen.setLocationRelativeTo(null); // splashScreen.setProgressMax(100); - splashScreen.setScreenVisible(true); - splashScreen.addMouseListener(splashScreenListener); - splashScreen.setProgress("Phenote version "+PhenoteVersion.versionString(), 0); - + splashScreen.setScreenVisible(true); + splashScreen.addMouseListener(splashScreenListener); + splashScreen.setProgress("Phenote version "+PhenoteVersion.versionString(), 0); + } private class SplashScreenListener implements MouseListener { Added: phenote/trunk/src/java/phenote/gui/TermRequestGUI.java =================================================================== --- phenote/trunk/src/java/phenote/gui/TermRequestGUI.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/TermRequestGUI.java 2007-09-24 06:20:35 UTC (rev 929) @@ -0,0 +1,286 @@ +package phenote.gui; + +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JRadioButton; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.JOptionPane; +import javax.swing.border.BevelBorder; +import org.jdesktop.layout.GroupLayout; +import org.jdesktop.layout.LayoutStyle; + +import phenote.datamodel.OntologyManager; +import phenote.datamodel.Ontology; + + +public class TermRequestGUI extends JFrame { + + private ButtonGroup buttonGroup = new ButtonGroup(); + private JComboBox ontologyComboBox; + private JRadioButton newRadioButton; + private JTextField newtermName; + private JTextArea newtermDef; + private JTextArea newtermComment; + + + + private JFrame thisframe = this; + + + /** + * Launch the application + * @param args + */ + public static void main(String args[]) { + try { + TermRequestGUI frame = new TermRequestGUI(); + frame.setVisible(true); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Create the frame + */ + public TermRequestGUI() { + super(); + setTitle("Term Request"); + setBounds(100, 100, 500, 375); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + final JPanel panel = new JPanel(); + getContentPane().add(panel, BorderLayout.CENTER); + + JLabel termLabel; + termLabel = new JLabel(); + termLabel.setText("Term:"); + +// JRadioButton newRadioButton; + newRadioButton = new JRadioButton(); + newRadioButton.setSelected(true); + buttonGroup.add(newRadioButton); + newRadioButton.setText("New"); + + JRadioButton modifyRadioButton; + modifyRadioButton = new JRadioButton(); + buttonGroup.add(modifyRadioButton); + modifyRadioButton.setText("Modify"); + + JLabel ontologyLabel; + ontologyLabel = new JLabel(); + ontologyLabel.setText("Ontology"); + + ontologyComboBox = new JComboBox(); + for (Ontology o : OntologyManager.inst().getAllOntologies()) { + ontologyComboBox.addItem(o.getName()); + } +// ontologyComboBox.addActionListener(new OntologyChooserListener()); + + + JLabel nameLabel; + nameLabel = new JLabel(); + nameLabel.setText("Name"); + + JLabel definitionLabel; + definitionLabel = new JLabel(); + definitionLabel.setText("Definition"); + + JLabel commentsLabel; + commentsLabel = new JLabel(); + commentsLabel.setText("Comments"); + +// JTextArea newtermDef; + newtermDef = new JTextArea(); + newtermDef.setWrapStyleWord(true); + newtermDef.setLineWrap(true); + newtermDef.setBorder(new BevelBorder(BevelBorder.LOWERED)); + +// JTextField newtermName; + newtermName = new JTextField(); + +// JTextArea newtermComment; + newtermComment = new JTextArea(); + newtermComment.setWrapStyleWord(true); + newtermComment.setLineWrap(true); + newtermComment.setBorder(new BevelBorder(BevelBorder.LOWERED)); + + JButton cancelButton; + cancelButton = new JButton(); + cancelButton.addActionListener(new ActionListener() { + public void actionPerformed(final ActionEvent arg0) { + thisframe.setVisible(false); + } }); + cancelButton.setText("Cancel"); + + final GroupLayout groupLayout = new GroupLayout(panel);; + groupLayout.setHorizontalGroup( + groupLayout.createParallelGroup(GroupLayout.LEADING) + .add(groupLayout.createSequentialGroup() + .addContainerGap() + .add(groupLayout.createParallelGroup(GroupLayout.LEADING) + .add(groupLayout.createSequentialGroup() + .add(ontologyLabel) + .add(20, 20, 20) + .add(ontologyComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + .add(groupLayout.createParallelGroup(GroupLayout.LEADING) + .add(groupLayout.createSequentialGroup() + .add(termLabel) + .add(42, 42, 42) + .add(newRadioButton) + .add(28, 28, 28) + .add(modifyRadioButton) + .add(252, 252, 252)) + .add(groupLayout.createSequentialGroup() + .add(groupLayout.createParallelGroup(GroupLayout.LEADING) + .add(definitionLabel) + .add(nameLabel) + .add(commentsLabel)) + .addPreferredGap(LayoutStyle.RELATED) + .add(groupLayout.createParallelGroup(GroupLayout.TRAILING) + .add(GroupLayout.LEADING, newtermName, GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE) + .add(GroupLayout.LEADING, newtermComment, GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE) + .add(GroupLayout.LEADING, newtermDef, GroupLayout.PREFERRED_SIZE, 320, GroupLayout.PREFERRED_SIZE)) + .add(82, 82, 82))))) + ); + groupLayout.setVerticalGroup( + groupLayout.createParallelGroup(GroupLayout.LEADING) + .add(groupLayout.createSequentialGroup() + .addContainerGap() + .add(groupLayout.createParallelGroup(GroupLayout.BASELINE) + .add(termLabel) + .add(newRadioButton) + .add(modifyRadioButton)) + .add(22, 22, 22) + .add(groupLayout.createParallelGroup(GroupLayout.BASELINE) + .add(ontologyLabel) + .add(ontologyComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .add(18, 18, 18) + .add(groupLayout.createParallelGroup(GroupLayout.BASELINE) + .add(nameLabel) + .add(newtermName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(LayoutStyle.RELATED) + .add(groupLayout.createParallelGroup(GroupLayout.BASELINE) + .add(definitionLabel) + .add(newtermDef, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(LayoutStyle.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .add(groupLayout.createParallelGroup(GroupLayout.BASELINE) + .add(commentsLabel) + .add(newtermComment, GroupLayout.PREFERRED_SIZE, 49, GroupLayout.PREFERRED_SIZE)) + .add(71, 71, 71)) + ); + + panel.setLayout(groupLayout); + + final JPopupMenu popupMenu = new JPopupMenu(); + addPopup(panel, popupMenu); + + final JMenuItem copyMenuItem = new JMenuItem(); + copyMenuItem.setText("Copy"); + popupMenu.add(copyMenuItem); + + final JMenuItem cutMenuItem = new JMenuItem(); + cutMenuItem.setText("Cut"); + popupMenu.add(cutMenuItem); + + final JMenuItem pasteMenuItem = new JMenuItem(); + pasteMenuItem.setText("Paste"); + popupMenu.add(pasteMenuItem); +//D_SIZE)) +// .add(71, 71, 71 + final JPanel buttons = new JPanel(); + getContentPane().add(buttons, BorderLayout.SOUTH); + + JButton submitButton; + submitButton = new JButton(); + submitButton.addActionListener(new submitButtonActionListener()); +//nebmilBu); + submitButton.setText("Submit"); + + final GroupLayout groupLayout_1 = new GroupLayout(buttons); + + groupLayout_1.setHorizontalGroup( + groupLayout_1.createParallelGroup(GroupLayout.TRAILING) + .add(groupLayout_1.createSequentialGroup() + .addContainerGap(278, Short.MAX_VALUE) + .add(cancelButton) + .add(21, 21, 21) + .add(submitButton) + .add(51, 51, 51)) + ); + groupLayout_1.setVerticalGroup( + groupLayout_1.createParallelGroup(GroupLayout.LEADING) + .add(groupLayout_1.createSequentialGroup() + .addContainerGap(17, Short.MAX_VALUE) + .add(groupLayout_1.createParallelGroup(GroupLayout.BASELINE) + .add(submitButton) + .add(cancelButton)) + .addContainerGap()) + ); + buttons.setLayout(groupLayout_1); +//tton)) +// .addContainerGap()) + // + } + + + + private static void addPopup(Component component, final JPopupMenu popup) { + component.addMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + if (e.isPopupTrigger()) + showMenu(e); + } + public void mouseReleased(MouseEvent e) { + if (e.isPopupTrigger()) + showMenu(e); + } + private void showMenu(MouseEvent e) { + popup.show(e.getComponent(), e.getX(), e.getY()); + } + }); + } + private class submitButtonActionListener implements ActionListener { + public void actionPerformed(ActionEvent arg0) { + String m= ("Will submit term via http request\n"); + m="[TYPE] "; + if (newRadioButton.isSelected()) { + m += "NEW\n"; + } else { + m += "MODIFY\n"; + } + m+="[ONTOLOGY] "+ontologyComboBox.getSelectedItem().toString()+"\n"; + m+="[NAME] "+newtermName.getText()+"\n"; + m+="[DEF] "+ newtermDef.getText()+"\n"; + m+="[COMMENT] "+ newtermComment.getText()+"\n"; + String newtermID = submitNewTermViaREST(); + if (newRadioButton.isSelected()) { + m = "<html><body>Your term <bold>"+newtermName.getText()+"</bold> has been successfully created.\n"; + m+= "It has been given a temporary ID <font color=red>"+newtermID+"</font></body></html>"; + } + if (newtermID!=null) { + } + JOptionPane.showMessageDialog(null, m, "Submission Successful", JOptionPane.PLAIN_MESSAGE); + thisframe.setVisible(false); + } + } + private String submitNewTermViaREST() { + return "nlw_temp:1234567"; + } +} Property changes on: phenote/trunk/src/java/phenote/gui/TermRequestGUI.java ___________________________________________________________________ Name: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-09-21 19:15:21
|
Revision: 928 http://obo.svn.sourceforge.net/obo/?rev=928&view=rev Author: balhoff Date: 2007-09-21 12:15:22 -0700 (Fri, 21 Sep 2007) Log Message: ----------- Fix for Phenote Requests item #1799776 - add initial blank row upon table creation and deletion of last row. Modified Paths: -------------- phenote/trunk/src/java/phenote/datamodel/CharacterList.java phenote/trunk/src/java/phenote/gui/CharacterTableController.java phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java Modified: phenote/trunk/src/java/phenote/datamodel/CharacterList.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharacterList.java 2007-09-20 01:37:42 UTC (rev 927) +++ phenote/trunk/src/java/phenote/datamodel/CharacterList.java 2007-09-21 19:15:22 UTC (rev 928) @@ -2,6 +2,7 @@ import ca.odell.glazedlists.BasicEventList; import ca.odell.glazedlists.EventList; +import ca.odell.glazedlists.GlazedLists; /** i made this as a transferable when i didnt get the whole transferable thing and now i dont whether to scrap it or not. all it is at the moment is a @@ -9,7 +10,8 @@ functionality - i guess ill keep it for now */ public class CharacterList implements CharacterListI { - private EventList<CharacterI> characterList = new BasicEventList<CharacterI>(); + // the thread safe version is required due to problems selecting the first character when the character table is first created + private EventList<CharacterI> characterList = GlazedLists.threadSafeList(new BasicEventList<CharacterI>()); public CharacterI get(int i) { // should this check if i is out of range - throw ex, or print error msg?? Modified: phenote/trunk/src/java/phenote/gui/CharacterTableController.java =================================================================== --- phenote/trunk/src/java/phenote/gui/CharacterTableController.java 2007-09-20 01:37:42 UTC (rev 927) +++ phenote/trunk/src/java/phenote/gui/CharacterTableController.java 2007-09-21 19:15:22 UTC (rev 928) @@ -65,6 +65,7 @@ this.tableFormat = new CharacterTableFormat(this.representedGroup); this.getEditManager().addCharChangeListener(new CharacterChangeListener()); this.initializeInterface(); + this.addInitialBlankCharacter(); } public JPanel getCharacterTablePanel() { @@ -86,6 +87,9 @@ final int rowToSelect = Math.min((this.filteredCharacters.size() - 1), maxSelectedRow); this.selectionModel.setSelectionInterval(rowToSelect, rowToSelect); } + if (this.getCharacterListManager().getCharacterList().isEmpty()) { + this.addInitialBlankCharacter(); + } } public void undo() { @@ -154,6 +158,10 @@ return Config.inst().getFieldColwidth(columnIndex); } + private void addInitialBlankCharacter() { + this.getEditManager().addInitialCharacter(); + } + private void setSelectionWithCharacters(List<CharacterI> characters) { this.filterField.setText(""); this.selectionModel.clearSelection(); Modified: phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-09-20 01:37:42 UTC (rev 927) +++ phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-09-21 19:15:22 UTC (rev 928) @@ -136,6 +136,7 @@ public void setListSelectionModel(EventSelectionModel<CharacterI> model) { this.selectionModel = model; this.selectionModel.addListSelectionListener(this); + this.setValueFromChars(this.selectionModel.getSelected()); } public void valueChanged(ListSelectionEvent e) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-09-20 01:37:41
|
Revision: 927 http://obo.svn.sourceforge.net/obo/?rev=927&view=rev Author: balhoff Date: 2007-09-19 18:37:42 -0700 (Wed, 19 Sep 2007) Log Message: ----------- Character table now selects the next row after a deletion. Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/CharacterTableController.java Modified: phenote/trunk/src/java/phenote/gui/CharacterTableController.java =================================================================== --- phenote/trunk/src/java/phenote/gui/CharacterTableController.java 2007-09-20 00:23:42 UTC (rev 926) +++ phenote/trunk/src/java/phenote/gui/CharacterTableController.java 2007-09-20 01:37:42 UTC (rev 927) @@ -80,7 +80,12 @@ } public void deleteSelectedCharacters() { + final int maxSelectedRow = this.selectionModel.getMaxSelectionIndex(); this.getEditManager().deleteChars(this.selectionModel.getSelected()); + if ((maxSelectedRow > -1) && (!this.filteredCharacters.isEmpty())) { + final int rowToSelect = Math.min((this.filteredCharacters.size() - 1), maxSelectedRow); + this.selectionModel.setSelectionInterval(rowToSelect, rowToSelect); + } } public void undo() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-09-20 00:24:08
|
Revision: 926 http://obo.svn.sourceforge.net/obo/?rev=926&view=rev Author: balhoff Date: 2007-09-19 17:23:42 -0700 (Wed, 19 Sep 2007) Log Message: ----------- Fixed a few warnings - mostly adding generics. Modified Paths: -------------- phenote/trunk/src/java/phenote/config/DataAdapterConfig.java phenote/trunk/src/java/phenote/dataadapter/nexus/NEXUSAdapter.java phenote/trunk/src/java/phenote/main/CommandLine.java phenote/trunk/src/java/phenote/util/FileUtil.java phenote/trunk/src/java/phenote/util/HtmlUtil.java Modified: phenote/trunk/src/java/phenote/config/DataAdapterConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/DataAdapterConfig.java 2007-09-19 21:24:49 UTC (rev 925) +++ phenote/trunk/src/java/phenote/config/DataAdapterConfig.java 2007-09-20 00:23:42 UTC (rev 926) @@ -1,17 +1,13 @@ package phenote.config; import phenote.config.xml.DataadapterDocument.Dataadapter; -//should this be: -//import phenote.dataadapter.*; -//so that programmers don't have to modify this file? - import phenote.dataadapter.DataAdapterI; import phenote.dataadapter.QueryableDataAdapterI; +import phenote.dataadapter.delimited.DelimitedFileAdapter; import phenote.dataadapter.fly.FlybaseDataAdapter; import phenote.dataadapter.nexus.NEXUSAdapter; import phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter; import phenote.dataadapter.phenoxml.PhenoXmlAdapter; -import phenote.dataadapter.delimited.DelimitedFileAdapter; class DataAdapterConfig { @@ -128,7 +124,7 @@ } private Object getInstanceForName() throws Exception { - Class c = Class.forName(getName()); //configString); + Class<?> c = Class.forName(getName()); //configString); return c.newInstance(); } Modified: phenote/trunk/src/java/phenote/dataadapter/nexus/NEXUSAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/nexus/NEXUSAdapter.java 2007-09-19 21:24:49 UTC (rev 925) +++ phenote/trunk/src/java/phenote/dataadapter/nexus/NEXUSAdapter.java 2007-09-20 00:23:42 UTC (rev 926) @@ -20,7 +20,6 @@ import org.geneontology.oboedit.datamodel.TermCategory; import phenote.dataadapter.AbstractFileAdapter; -import phenote.dataadapter.DataAdapterI; import phenote.datamodel.CharacterI; import phenote.datamodel.CharacterListI; @@ -158,10 +157,10 @@ continue; } NEXUSCharacter currentCharacter = new NEXUSCharacter(entityTerm, attributeTerm); - List<OBOClass> currentValueList = this.nexusCharacters.get(currentCharacter); - int indexOfCharacter = Arrays.asList(this.nexusCharacters.values().toArray()).indexOf(currentValueList); + List<OBOClass> currentValueList = this.getNexusCharacters().get(currentCharacter); + int indexOfCharacter = Arrays.asList(this.getNexusCharacters().values().toArray()).indexOf(currentValueList); int indexOfValue = currentValueList.indexOf(valueTerm); - this.genotypes.get(genotype).set(indexOfCharacter, indexOfValue); + this.getGenotypes().get(genotype).set(indexOfCharacter, indexOfValue); } } } @@ -175,10 +174,10 @@ } private OBOClass getAttributeForValue(OBOClass valueTerm) { - Set categories = valueTerm.getCategories(); + Set<TermCategory> categories = valueTerm.getCategories(); Set<String> categoryNames = new HashSet<String>(); - for (Object category : categories) { - categoryNames.add(((TermCategory)category).getName()); + for (TermCategory category : categories) { + categoryNames.add(category.getName()); } if (categoryNames.contains("attribute_slim")) { return valueTerm; @@ -191,9 +190,8 @@ } private OBOClass getParentForTerm(OBOClass term) { - Collection parents = term.getParents(); - for (Object o : parents) { - Link link = (Link)o; + Collection<Link> parents = term.getParents(); + for (Link link : parents) { if (link.getType().getName().equals("is_a")) { return (OBOClass)(link.getParent()); } @@ -206,11 +204,11 @@ BufferedWriter writer = new BufferedWriter(new FileWriter(f)); writer.write("#NEXUS\n[Generated by Phenote]\n\n"); writer.write("BEGIN TAXA;\n"); - writer.write("\tDIMENSIONS NTAX=" + this.genotypes.size() + ";\n"); + writer.write("\tDIMENSIONS NTAX=" + this.getGenotypes().size() + ";\n"); this.writeTaxLabels(writer); writer.write("END;\n\n"); writer.write("BEGIN CHARACTERS;\n"); - writer.write("\tDIMENSIONS NCHAR=" + this.nexusCharacters.size() + ";\n"); + writer.write("\tDIMENSIONS NCHAR=" + this.getNexusCharacters().size() + ";\n"); writer.write("\tFORMAT DATATYPE=STANDARD MISSING=? GAP=- SYMBOLS=\"" + NEXUSAdapter.STATE_SYMBOLS + "\";\n"); this.writeCharStateLabels(writer); this.writeMatrix(writer); @@ -223,7 +221,7 @@ private void writeTaxLabels(Writer writer) throws IOException { writer.write("\tTAXLABELS\n"); - for (String genotypeName : this.genotypes.keySet()) { + for (String genotypeName : this.getGenotypes().keySet()) { writer.write("\t\t" + NEXUSAdapter.nexusEscaped(genotypeName) + "\n"); } writer.write("\t\t;\n"); @@ -232,7 +230,7 @@ private void writeCharStateLabels(Writer writer) throws IOException { writer.write("\tCHARSTATELABELS\n"); int characterNum = 1; - Iterator <Entry<NEXUSCharacter, List<OBOClass>>> entryIterator = this.nexusCharacters.entrySet().iterator(); + Iterator <Entry<NEXUSCharacter, List<OBOClass>>> entryIterator = this.getNexusCharacters().entrySet().iterator(); while (entryIterator.hasNext()) { Entry<NEXUSCharacter, List<OBOClass>> entry = entryIterator.next(); NEXUSCharacter nexChar = entry.getKey(); Modified: phenote/trunk/src/java/phenote/main/CommandLine.java =================================================================== --- phenote/trunk/src/java/phenote/main/CommandLine.java 2007-09-19 21:24:49 UTC (rev 925) +++ phenote/trunk/src/java/phenote/main/CommandLine.java 2007-09-20 00:23:42 UTC (rev 926) @@ -1,11 +1,5 @@ package phenote.main; -import java.io.FileNotFoundException; - -import com.townleyenterprises.command.CommandOption; -import com.townleyenterprises.command.CommandParser; -import com.townleyenterprises.command.DefaultCommandListener; - import org.apache.log4j.xml.DOMConfigurator; import phenote.config.Config; @@ -14,6 +8,10 @@ import phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter; import phenote.dataadapter.phenoxml.PhenoXmlAdapter; +import com.townleyenterprises.command.CommandOption; +import com.townleyenterprises.command.CommandParser; +import com.townleyenterprises.command.DefaultCommandListener; + /** a lot of this is copied from apollo.main.CommandLine - theres potential for some generic super class but where would it go? in a jar file with one class? org.bdgp? */ @@ -295,7 +293,7 @@ private DataAdapterI getDataAdapter(String classString) throws AdapterEx { try { // introspection? or switch on string? - Class c = Class.forName(classString); + Class<?> c = Class.forName(classString); Object o = c.newInstance(); if (!(o instanceof DataAdapterI)) // shouldnt happen System.out.println("Class string is not data adapter "+o); Modified: phenote/trunk/src/java/phenote/util/FileUtil.java =================================================================== --- phenote/trunk/src/java/phenote/util/FileUtil.java 2007-09-19 21:24:49 UTC (rev 925) +++ phenote/trunk/src/java/phenote/util/FileUtil.java 2007-09-20 00:23:42 UTC (rev 926) @@ -1,10 +1,10 @@ package phenote.util; -import org.apache.log4j.Logger; -import org.apache.commons.lang.StringUtils; - -import java.io.*; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.nio.channels.FileChannel; @@ -13,6 +13,9 @@ import java.util.GregorianCalendar; import java.util.List; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + public class FileUtil { public static final String FILE_SEPARATOR = System.getProperty("file.separator"); @@ -66,10 +69,6 @@ return path.substring(lastSlashIndex); } - private static String getDotPhenoteString() { - return getDotPhenoteDir().getPath(); - } - private static String sep(String a, String b) { return a + FILE_SEPARATOR + b; } @@ -98,7 +97,7 @@ // better error message // split into getPossibleMaster?ConfigUrls & getPossibleOboUrls private static List<URL> getPossibleUrls(String filename) { - List<URL> urls = new ArrayList(5); + List<URL> urls = new ArrayList<URL>(5); if (filename == null) { System.out.println("cant find null file"); LOG.error("cant find null file"); Modified: phenote/trunk/src/java/phenote/util/HtmlUtil.java =================================================================== --- phenote/trunk/src/java/phenote/util/HtmlUtil.java 2007-09-19 21:24:49 UTC (rev 925) +++ phenote/trunk/src/java/phenote/util/HtmlUtil.java 2007-09-20 00:23:42 UTC (rev 926) @@ -330,7 +330,7 @@ private static StringBuffer getIntersectionChildren(OBOClass oboClass) { StringBuffer sb = new StringBuffer(); - Collection children = oboClass.getChildren(); + Collection<Link> children = oboClass.getChildren(); sb.append(getLinksString(linksList(children, true, true), true, true)); return (sb); } @@ -338,19 +338,19 @@ private static StringBuffer getIntersectionParents(OBOClass oboClass) { //these will be present if the term is a xp StringBuffer sb = new StringBuffer(); - Collection parents = oboClass.getParents(); + Collection<Link> parents = oboClass.getParents(); sb.append(xpDefs(linksList(parents,true,false))); return (sb); } private static StringBuffer getParentalString(OBOClass oboClass) { - Collection parents = oboClass.getParents(); + Collection<Link> parents = oboClass.getParents(); return (getLinksString(linksList(parents, false,false), false, false)); // return getLinksString(parents,false, false); } private static StringBuffer getChildrenString(OBOClass oboClass) { - Collection children = oboClass.getChildren(); + Collection<Link> children = oboClass.getChildren(); return (getLinksString(linksList(children, false,true), true, false)); // return getLinksString(children,true, false); @@ -363,7 +363,6 @@ //hope this isn't duplicating stuff //each link collection is for only one kind of relationship type private List<Link> links = new ArrayList<Link>(); - private boolean isChild; private String linkName; private OBOProperty linkType; private boolean xp; //true=this list is for cross-products @@ -390,7 +389,7 @@ public boolean getXP() { return xp; } - public List getLinks() { + public List<Link> getLinks() { return links; } public Link get(int i) { @@ -407,12 +406,12 @@ } } - private static List<LinkCollection> linksList(Collection links, boolean xp, boolean isChild) { + private static List<LinkCollection> linksList(Collection<Link> links, boolean xp, boolean isChild) { //given a collection of oboclass links, this processes the collection to //separate out the links and group by releationship type+parent/child+xp state - HashSet relSet= new HashSet(); + HashSet<OBOProperty> relSet= new HashSet<OBOProperty>(); List<LinkCollection> allLinks = new ArrayList<LinkCollection>(); - for (Iterator it = links.iterator(); it.hasNext(); ) { + for (Iterator<Link> it = links.iterator(); it.hasNext(); ) { Link link = (Link)it.next(); if (((OBORestriction)link).completes()==xp) { //only add to links list those that match the desired xp state @@ -425,7 +424,7 @@ else allLinks.add(linkSet); } else { - for (ListIterator lit=allLinks.listIterator();lit.hasNext();) { + for (ListIterator<LinkCollection> lit=allLinks.listIterator();lit.hasNext();) { LinkCollection temp = (LinkCollection)lit.next(); if (temp.get(0).getType()==type) { temp.addLink(link); @@ -443,13 +442,13 @@ * >1 is_a xp genus terms, i think the xp display will be screwy */ StringBuffer sb = new StringBuffer(); - for (ListIterator lit=allLinks.listIterator();lit.hasNext();) { + for (ListIterator<LinkCollection> lit=allLinks.listIterator();lit.hasNext();) { //for each relationship type LinkCollection temp = (LinkCollection)lit.next(); String tempType = temp.getLinkName(); List<Link> links = temp.getLinks(); StringBuffer tempSB = new StringBuffer(); - for (Iterator it = links.iterator(); it.hasNext(); ) { + for (Iterator<Link> it = links.iterator(); it.hasNext(); ) { //create all the clickable links first Link link = (Link)it.next(); appendLink(tempSB,isChild,link,xp); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-09-19 21:24:45
|
Revision: 925 http://obo.svn.sourceforge.net/obo/?rev=925&view=rev Author: mgibson Date: 2007-09-19 14:24:49 -0700 (Wed, 19 Sep 2007) Log Message: ----------- delimited file adapter now uses the column headings to map columns rather than the previous strict ordering this means delim data can survive through reconfigurations as happened at birn it also ignores any columns it doesnt have a config for (and just plods on) DelimitedChar creates DelimFieldParsers which know how to parse a particular field Modified Paths: -------------- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedFileAdapter.java phenote/trunk/src/java/phenote/gui/field/TermCompList.java Added Paths: ----------- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimFieldParser.java phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedEx.java Added: phenote/trunk/src/java/phenote/dataadapter/delimited/DelimFieldParser.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimFieldParser.java (rev 0) +++ phenote/trunk/src/java/phenote/dataadapter/delimited/DelimFieldParser.java 2007-09-19 21:24:49 UTC (rev 925) @@ -0,0 +1,82 @@ +package phenote.dataadapter.delimited; + +import org.apache.log4j.Logger; + +import phenote.datamodel.CharacterI; +import phenote.datamodel.CharField; +import phenote.datamodel.CharFieldValue; +import phenote.datamodel.CharFieldException; +import phenote.datamodel.OntologyManager; +import phenote.datamodel.TermNotFoundException; + +/** A class that parses a single field out of a tab delimited line. + Gets its info from header line. static method makeNextParser + is used to iterate */ + +class DelimFieldParser { + + private static Logger LOG = Logger.getLogger(DelimFieldParser.class); + + private CharField charField; + private int columnIndex; // 0 based + + /** Given array of column headers and index col to start looking, find next valid + field -- a field that is in datamodel/configged -- and return Parser for it + throws DelimitedEx if fails to find a char field for all headers at index col + and greater*/ + static DelimFieldParser makeNextParser(String[] colHeaders,int col) + throws DelimitedEx { + for (int i=col; i<colHeaders.length; i++) { + String head = colHeaders[i]; + CharField cf=null; + try { + // should i strip "ID" now, or see if there is afield with ID at end? + // which of course would be awkward but not inconceivable + cf = OntologyManager.inst().getCharFieldForName(head); + } + catch (CharFieldException e) { // column not a char field + // so term id headers have ID at end so try stripping off + if (head.endsWith("ID")) { + head = head.substring(0,head.length()-3); + try { cf = OntologyManager.inst().getCharFieldForName(head); } + catch (CharFieldException x) { cf = null; } // already is really + } + } + if (cf == null) + LOG.error("Header column "+head+" not configged, skipping"); + else + return new DelimFieldParser(cf,i); + } + // no parser found, end of line hit - throw ex? + throw new DelimitedEx("Header Fields at end not found"); //?? + //return null; + } + + private DelimFieldParser(CharField c, int i) { + charField = c; + columnIndex = i; + } + + int getLastParseField() { + if (isTerm()) return columnIndex + 1; // id col & name col + else return columnIndex; // just 1 col + } + + private boolean isTerm() { return charField.isTerm(); } + + void parseField(String items[],CharacterI chr) { + // if term, first id then name + String value = items[columnIndex]; + try { + CharFieldValue cfv = chr.setValue(charField,value); + // if term, and id not found, dangler -> set name of dangler + if (cfv.isDangler()) // throw error if not term? + cfv.setName(items[columnIndex+1]); + } + // no longer thrown really - dangler created instead! + catch (TermNotFoundException e) { + LOG.error("Error: Term not found ("+value+") "+e.getMessage()+ + " (and no dangler created)"); + } + } +} Modified: phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java 2007-09-19 21:19:22 UTC (rev 924) +++ phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedChar.java 2007-09-19 21:24:49 UTC (rev 925) @@ -1,5 +1,6 @@ package phenote.dataadapter.delimited; +import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -29,6 +30,7 @@ private String delimitedString; private String delimitedHeaderString; private String delimiter; + private List<DelimFieldParser> fieldParsers = new ArrayList<DelimFieldParser>(); DelimitedChar() {} @@ -76,7 +78,7 @@ sb.append(Config.inst().getLabelForCharField(cf)); //for now, i'll call on the syntax abbrev, but i'll want to use the acutal name // if (!isFreeText(cf)) { // } // now have third type isInt, so can't just negate 2007 07 09 - if (isOntology(cf)) { + if (isTerm(cf)) { sb.append(" ID").append(delimiter); sb.append(Config.inst().getLabelForCharField(cf)).append(" Name"); } @@ -107,7 +109,7 @@ // sb.append(Config.inst().getLabelForCharField(cf)); sb.append(makeValue(character.getValue(cf))); } - else if (isOntology(cf)) sb.append(delimiter); + else if (isTerm(cf)) sb.append(delimiter); //need to make sure to add extra delimiter for ontology fields sb.append(delimiter); } @@ -127,8 +129,8 @@ return cf.isFreeText(); } - private boolean isOntology(CharField cf) { - return cf.hasOntologies(); + private boolean isTerm(CharField cf) { + return cf.isTerm(); //hasOntologies(); } // this may be more general than just this class @@ -148,30 +150,69 @@ return term.getID() + delimiter + term.getName(); } - // READ + // READ - split read & write into 2 classes? - /** Parse syntax line into character */ - //try just splitting at tab. - void parseLine(String line) throws SyntaxParseException { + /** make DelimFieldParsers from headerLine, throw exception + if line fails to be a header */ + void setHeader(String headerLine) throws DelimitedEx { + String[] colHeaders = splitLine(headerLine); + if (colHeaders.length == 0) throw new DelimitedEx(headerLine); + int i=0; + boolean done = false; + while (i<colHeaders.length && !done) { + try { + DelimFieldParser p = DelimFieldParser.makeNextParser(colHeaders,i); + fieldParsers.add(p); + // may parse 1 field, may parse 2, may also skip unfound fields + i = p.getLastParseField() + 1; + } //?? thrown if rest of fields not configged + catch (DelimitedEx e) { done = true; } + } + if (fieldParsers.isEmpty()) + throw new DelimitedEx(headerLine); + } + + private String[] splitLine(String line) { + //parse based on tab...will be delimiter in future + Pattern p = Pattern.compile("\t"); + return p.split(line); + } + + + void parseLine(String line) throws DelimitedEx { character = CharacterIFactory.makeChar(); + String[] items = splitLine(line); + if (items.length==0) throw new DelimitedEx(line); // BlankEx? + for (DelimFieldParser p : fieldParsers) { + p.parseField(items,character); // add cfv to char or ret cfv? + } + } + + /** Parse syntax line into character - throw DelimitedEx if blank line/no + columns found - just splitting at tab. */ + void parseLineOld_DELETE(String line) throws DelimitedEx { // cf list? + character = CharacterIFactory.makeChar(); // System.out.println("input line="+line); - Pattern p = Pattern.compile("\t"); - //parse based on tab...will be delimiter in future - String[] items = p.split(line); + String[] items = splitLine(line); + + // doesnt split always return at least 1 item even for empty line??? boolean found = (items.length>0); //m.find(); // System.out.println("numcols="+items.length); if (!found) - throw new SyntaxParseException(line); // skips whitespace lines + throw new DelimitedEx(line); // skips whitespace lines ?? int colCount = 0; int fieldCount = 0; while (found) { String value = items[colCount]; - addDelValToChar(fieldCount,value); + // this aint right - this hardwires column # to field, should use column name! CharField c = Config.inst().getEnbldCharField(fieldCount); -// System.out.println("col="+colCount+"; fieldCount="+fieldCount+"; val="+value+"; charfieldname ="+c.getName()); - if (isOntology(c)) { +//System.out.println("col="+colCount+"; fieldCount="+fieldCount+"; val="+value+"; charfieldname ="+c.getName()); + String termName = null; + if (c.isTerm()) { colCount++; //skip over the Name, only keep ID + termName = items[colCount]; } + addDelValToChar(fieldCount,value,termName); // termName null if not term colCount++; fieldCount++; found = (colCount<items.length); // if parsing last tag found will be false - at end @@ -191,8 +232,9 @@ } - - private void addDelValToChar(int fieldNum, String value) { + /** if term then value is ID and termName is name of term, if free text then + value is free text and termName is null */ + private void addDelValToChar(int fieldNum, String value, String termName) { // it doesn't really matter if there's a blank column in this mode if (value.equals("")) { // log().error("No value given for column"+fieldNum); @@ -211,10 +253,14 @@ try { //System.out.println("column="+fieldNum+"; value = "+value); // set String -> for obo class automatically find term + // if term not found makes a dangler //this assumes that you are loading data the same order you saved it - character.setValue(cf,value); // throws TermNotFoundEx + CharFieldValue v = character.setValue(cf,value); // throws TermNotFoundEx + if (v.isDangler()) + v.setName(termName); // ??? return; // if no ex thrown were done } + // no longer thrown really - dangler created instead! catch (TermNotFoundException e) { System.out.println("Error1: term not found ("+value+") "+e.getMessage()); log().error("Error2: Term not found ("+value+") "+e.getMessage()); Added: phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedEx.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedEx.java (rev 0) +++ phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedEx.java 2007-09-19 21:24:49 UTC (rev 925) @@ -0,0 +1,23 @@ +package phenote.dataadapter.delimited; + +class DelimitedEx extends Exception { + private String line; + private int lineNumber = -1; + + DelimitedEx(String line) { + this.line = line; + } + DelimitedEx(String line, int lineNum) { + this(line); + lineNumber = lineNum; + } + public String getMessage() { + if (line.trim().equals("")) + return ""; // just whitespace - who cares + StringBuffer s = new StringBuffer(); + s.append("TabDelim Parse Error: "); + if (lineNumber != -1) s.append("Line number "+lineNumber); + s.append("Line: "+line+" -- ignoring"); + return s.toString(); + } +} Modified: phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedFileAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedFileAdapter.java 2007-09-19 21:19:22 UTC (rev 924) +++ phenote/trunk/src/java/phenote/dataadapter/delimited/DelimitedFileAdapter.java 2007-09-19 21:24:49 UTC (rev 925) @@ -9,11 +9,15 @@ import java.io.LineNumberReader; import java.util.List; import java.util.Arrays; +import java.util.regex.Pattern; +import org.apache.log4j.Logger; + import phenote.datamodel.CharacterI; import phenote.datamodel.CharacterListI; import phenote.datamodel.CharacterList; import phenote.dataadapter.CharacterListManager; +import phenote.datamodel.CharField; import phenote.dataadapter.DataAdapterI; import phenote.dataadapter.AbstractFileAdapter; import phenote.dataadapter.phenoxml.PhenoXmlAdapter; @@ -29,8 +33,8 @@ private File file; private static String[] extensions = {"tab", "xls"}; private static String desc = "Tab Delimited [.tab, .xls]"; + private static Logger LOG = Logger.getLogger(DelimitedFileAdapter.class); - public DelimitedFileAdapter() { super(extensions,desc); } @@ -49,26 +53,41 @@ public CharacterListI load(File f) { CharacterListI charList = new CharacterList(); try { - LineNumberReader lnr = new LineNumberReader(new FileReader(f)); - DelimitedChar delChar = new DelimitedChar(); - System.out.println("Reading tab-delimited data from file "+f); - try { - String line=lnr.readLine(); //reading header line - System.out.println(line); - } catch (IOException e) { - System.out.println("Tab-delimited read failure "+e); + LineNumberReader lnr = new LineNumberReader(new FileReader(f)); + DelimitedChar delChar = new DelimitedChar(); + System.out.println("Reading tab-delimited data from file "+f); + //List<CharField> fields; + try { + // the header is being tossed and it should be used for char field mapping! + // the standard for headers is 1 col for free texts, 2 cols for terms + // term cols: fieldName(space)ID(tab)fieldName(space)Name + boolean isHeader = false; + while (!isHeader) { + String headerLine=lnr.readLine(); //reading header line + try { + delChar.setHeader(headerLine); + isHeader = true; // no ex thrown - success + } catch (DelimitedEx e) { + isHeader = false; + LOG.error("Invalid header: "+headerLine); //for debug?log? } - for (String line=lnr.readLine(); line != null; line = lnr.readLine()) { - try { - delChar.parseLine(line); - CharacterI ch = delChar.getCharacter(); - charList.add(ch); - System.out.println(line); - } catch (DelimitedChar.SyntaxParseException e) { - System.out.println(e.getMessage()); // jut "" for whitespace line - } - } - lnr.close(); + } + //fields = headerToCharFields(headerLine); + } catch (IOException e) { + LOG.error("Tab-delimited read failure "+e); + } + for (String line=lnr.readLine(); line != null; line = lnr.readLine()) { + try { + delChar.parseLine(line); + CharacterI ch = delChar.getCharacter(); + charList.add(ch); + System.out.println(line); + } catch (DelimitedEx e) { // thrown for blank line - who cares right + // log? errorEvent? do nothing - does it even throw for blanks? + //(e.getMessage()); // jut "" for whitespace line + } + } + lnr.close(); } catch (IOException e) { System.out.println("Tab-delimited read failure "+e); @@ -76,6 +95,29 @@ return charList; } +// /** Takes header line and maps it into char fields, error if char field +// doesnt exist -- pase --> DelChar.setHeader */ +// private List<DelimFieldParser> headerToParsers(String headerLine) { +// Pattern p = Pattern.compile("\t"); +// //parse based on tab...will be delimiter in future +// String[] headers = p.split(headerLine); +// if (headers.length==0) throw new DelimitedEx(headerLine,0); +// //List<CharField> fields = new ArrayList<CharField>(); + +// int i=0; +// List<DelimFieldParser> parsers = new ArrayList<DelimFieldParser>(); +// while (i<headers.length) { +// // if a field is not found/configged then insert null to be ignored +// // but theres 2 kinds of ignore term & free text +// // or do int to field mapping/hash? +// DelimFieldParser p = DelimFieldParser.makeNextParser(headers,i); +// parsers.add(p); +// // may parse 1 field, may parse 2, may also skip unfound fields +// i = p.getLastParseField() + 1; +// } +// return parsers; +// } + /** returns null if user fails to pick a file */ // private File getFileFromUser(File dir) { // return PhenoXmlAdapter.getFileFromUser(dir); // perhaps a util class @@ -140,6 +182,12 @@ commit(charList); } + // im changing my mind - should just go to log and have appender from log + // rather than vice versa +// private void debug(String s) { +// phenote.error.ErrorManager.inst().debug(this,s); +// } + // public List<String> getExtensions() { // return Arrays.asList(extensions); // } Modified: phenote/trunk/src/java/phenote/gui/field/TermCompList.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-09-19 21:19:22 UTC (rev 924) +++ phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-09-19 21:24:49 UTC (rev 925) @@ -147,8 +147,11 @@ // return; // debug stack trace? // } currentOboClass = term; - if (TermUtil.isDangling(currentOboClass)) + if (TermUtil.isDangling(currentOboClass)) { + // this doesnt work on a mac!!! this.setForegroundColor(Color.RED); + //phenote.error.ErrorManager.inst().error(new phenote.error.ErrorEvent(this,"setting dangle color to red")); + } else this.setForegroundColor(this.getEnabledTextColor()); String val = term == null ? "" : term.getName(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-09-19 21:19:21
|
Revision: 924 http://obo.svn.sourceforge.net/obo/?rev=924&view=rev Author: balhoff Date: 2007-09-19 14:19:22 -0700 (Wed, 19 Sep 2007) Log Message: ----------- Just fixed some warnings. Modified Paths: -------------- phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java phenote/trunk/src/java/phenote/datamodel/Ontology.java Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-09-19 20:33:05 UTC (rev 923) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-09-19 21:19:22 UTC (rev 924) @@ -559,7 +559,7 @@ /** Returns enabled data adapters - empty list if none enabled */ public List<DataAdapterI> getDataAdapters() { if (dataAdapConfList==null) return null; // ex? - ArrayList daList = new ArrayList(dataAdapConfList.size()); + ArrayList<DataAdapterI> daList = new ArrayList<DataAdapterI>(dataAdapConfList.size()); for (DataAdapterConfig d : dataAdapConfList) { if (d.isEnabled()) daList.add(d.getFileAdapter()); @@ -696,7 +696,7 @@ } private Object getInstanceForString(String classString) throws Exception { - Class c = Class.forName(classString); + Class<?> c = Class.forName(classString); return c.newInstance(); } @@ -1111,10 +1111,6 @@ name.replaceAll("-"," "); } - private String getConfigFile() { - return configFile; - } - public String getConfigDesc() { String desc = phenoConfigBean.getDescription(); return desc; @@ -1140,7 +1136,7 @@ public List<String> getFieldsInGroup(String groupName) { List<String> fields = new ArrayList<String>(); for (Field aField : this.phenoConfigBean.getFieldArray()) { - final List groups = aField.getGroups(); + final List<?> groups = aField.getGroups(); if (groups != null) { for (Object aGroup : groups) { if (((String)aGroup).equals(groupName)) { @@ -1212,8 +1208,8 @@ if (classString == null) return null; try { // should we cache in hash and insure 1 instance??? - Class c = Class.forName(classString); - Constructor cr = c.getConstructor(String.class); + Class<?> c = Class.forName(classString); + Constructor<?> cr = c.getConstructor(String.class); Object o = cr.newInstance(groupStr); if (!(o instanceof GroupAdapterI)) { log().error("group_adapter cfg is not a GroupAdapterI "+classString); Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-09-19 20:33:05 UTC (rev 923) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-09-19 21:19:22 UTC (rev 924) @@ -1,60 +1,45 @@ package phenote.dataadapter; -import java.io.*; - import java.io.BufferedReader; import java.io.File; -import java.io.FileOutputStream; import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.IOException; -import java.nio.channels.FileChannel; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.Channels; import java.net.MalformedURLException; import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.FileChannel; +import java.nio.channels.ReadableByteChannel; +import java.text.ParsePosition; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Collection; import java.util.Date; -import java.text.SimpleDateFormat; -import java.text.ParsePosition; -import java.util.Calendar; import java.util.HashMap; -import java.util.Iterator; -import java.util.List; import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import javax.swing.JOptionPane; -import javax.swing.JDialog; -import javax.swing.JComponent; -import java.awt.Component; import org.apache.log4j.Logger; - import org.geneontology.dataadapter.DataAdapterException; -import org.geneontology.dataadapter.FileAdapterConfiguration; import org.geneontology.dataadapter.IOOperation; - -import org.geneontology.oboedit.datamodel.Namespace; -import org.geneontology.oboedit.datamodel.OBOSession; -import org.geneontology.oboedit.datamodel.impl.OBOSessionImpl; import org.geneontology.oboedit.dataadapter.OBOFileAdapter; import org.geneontology.oboedit.dataadapter.OBOMetaData; +import org.geneontology.oboedit.datamodel.Namespace; +import org.geneontology.oboedit.datamodel.OBOSession; -import phenote.util.FileUtil; +import phenote.config.Config; +import phenote.config.FieldConfig; +import phenote.config.OntologyConfig; import phenote.datamodel.CharField; -import phenote.datamodel.CharFieldEnum; import phenote.datamodel.Ontology; import phenote.datamodel.OntologyException; import phenote.datamodel.OntologyManager; -import phenote.config.Config; -import phenote.config.FieldConfig; -import phenote.config.OntologyConfig; import phenote.error.ErrorEvent; import phenote.error.ErrorManager; import phenote.gui.SynchOntologyDialog; +import phenote.util.FileUtil; /** is this really a data adapter? - OntologyLoader? this isnt a data adapter it doesnt load & commit character data - just loads ontologies. rename OntologyLoader @@ -68,7 +53,6 @@ private boolean initializingOntologies = false; private Map<String,Ontology> fileToOntologyCache = new HashMap<String,Ontology>(); private OBOMetaData adapterMetaData; - private SynchOntologyDialog synchDialog; private static final Logger LOG = Logger.getLogger(OntologyDataAdapter.class); @@ -294,7 +278,7 @@ if ((autoUpdate && (timer==0)) && (reposDate > loc)) { useRepos = true; } else if (reposDate > loc || useRepos) { - useRepos = synchDialog.queryUserForOntologyUpdate(ontol); + useRepos = SynchOntologyDialog.queryUserForOntologyUpdate(ontol); } } if (useRepos) { @@ -407,7 +391,7 @@ if (oboUrl == null) throw new OntologyException("No url to retrieve"); - Collection fileList = new ArrayList(); + Collection<String> fileList = new ArrayList<String>(); fileList.add(oboUrl.toString()); return getOboSession(fileList); } Modified: phenote/trunk/src/java/phenote/datamodel/Ontology.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/Ontology.java 2007-09-19 20:33:05 UTC (rev 923) +++ phenote/trunk/src/java/phenote/datamodel/Ontology.java 2007-09-19 21:19:22 UTC (rev 924) @@ -181,7 +181,7 @@ public List<OBOProperty> getSortedRelations() { if (sortedRelations == null) { //sortedRelations=new ArrayList<OBOProperty>(); not Comparable! - List sorRel = new ArrayList(); + List<OBOProperty> sorRel = new ArrayList<OBOProperty>(); // if (oboSession == null) ? shouldnt happen sorRel.addAll(TermUtil.getRelationshipTypes(oboSession)); Collections.sort(sorRel,new RelComparator()); @@ -190,7 +190,7 @@ return sortedRelations; } - private class RelComparator<OBOProperty> implements Comparator<OBOProperty> { + private class RelComparator implements Comparator<OBOProperty> { public int compare(OBOProperty r1, OBOProperty r2) { return r1.toString().compareTo(r2.toString()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-09-19 20:30:56
|
Revision: 922 http://obo.svn.sourceforge.net/obo/?rev=922&view=rev Author: balhoff Date: 2007-09-19 13:31:00 -0700 (Wed, 19 Sep 2007) Log Message: ----------- Updated test class to compile. The tests still have errors because of assumptions about ontology content. Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/TestPhenote.java phenote/trunk/src/java/phenote/main/Phenote.java Modified: phenote/trunk/src/java/phenote/gui/TestPhenote.java =================================================================== --- phenote/trunk/src/java/phenote/gui/TestPhenote.java 2007-09-19 19:03:49 UTC (rev 921) +++ phenote/trunk/src/java/phenote/gui/TestPhenote.java 2007-09-19 20:31:00 UTC (rev 922) @@ -2,35 +2,35 @@ // move to main package?? +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.event.KeyEvent; -import java.util.Calendar; -import javax.swing.JList; + import javax.swing.event.HyperlinkEvent; import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; // wierd -import static org.junit.Assert.assertTrue; -import phenote.datamodel.CharacterI; -import phenote.datamodel.CharacterListI; import phenote.dataadapter.CharacterListManager; -import phenote.dataadapter.fly.FlyCharacter; import phenote.dataadapter.fly.FlyCharList; import phenote.dataadapter.fly.FlyCharListTransferable; +import phenote.dataadapter.fly.FlyCharacter; import phenote.dataadapter.fly.FlybaseDataAdapter; -import phenote.util.HtmlUtil; -import phenote.main.Phenote; +import phenote.datamodel.CharacterI; +import phenote.datamodel.CharacterListI; +import phenote.gui.field.AbstractAutoCompList; import phenote.gui.field.FieldPanel; import phenote.gui.field.SearchParamPanel; -import phenote.gui.field.AbstractAutoCompList; +import phenote.main.Phenote; +import phenote.util.HtmlUtil; // making same package as phenotes giving us access to package methods! @@ -44,7 +44,7 @@ private static AbstractAutoCompList entityComboBox; private static AbstractAutoCompList qualityComboBox; private static TermInfo termInfo; - private static CharacterTablePanel characterTablePanel; + private static CharacterTableController tableController; /** @BeforeClass says to run this once before all the tests */ @BeforeClass public static void init() { @@ -64,7 +64,7 @@ qualityComboBox = fieldPanel.getQualityComboBox(); qualityComboBox.setTestMode(true); termInfo = phenote.getTermInfo(); - characterTablePanel = phenote.getCharacterTablePanel(); + tableController = phenote.getCharacterTableController(); } /** @Test is an annotation defined in Test - Test looks for Test methods */ @@ -136,10 +136,12 @@ table in entity column */ private void comboTermSelectionGoesToTableTest() { // selecting item should make it go in table... + tableController.addNewCharacter(); + tableController.getSelectionModel().setSelectionInterval(0,0); System.out.println("Selecting 3rd entity item"); qualityComboBox.getJComboBox().setSelectedIndex(2); // 2 is 3rd String selectedQualityTerm = getQualityThirdAutoTerm(); - CharacterI selPheno = characterTablePanel.getSelectedCharacter(); + CharacterI selPheno = tableController.getSelectionModel().getSelected().get(0); String tableQuality = selPheno.getQuality().getName(); // oboclass assertEquals(selectedQualityTerm,tableQuality); System.out.println("term to table test passed, selected quality term " @@ -225,8 +227,8 @@ } private void flyDataAdapterTest() { - CharacterListI cl = characterTablePanel.getCharacterList(); - characterTablePanel.pressCommitButtonTest(); + CharacterListI cl = CharacterListManager.main().getCharacterList(); + DataFlavor charListFlavor = FlyCharListTransferable.getCharListDataFlavor(); try { Object o = getClipboard().getData(charListFlavor); Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-09-19 19:03:49 UTC (rev 921) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-09-19 20:31:00 UTC (rev 922) @@ -53,11 +53,11 @@ private static Logger LOG = Logger.getLogger(Phenote.class); private static boolean standalone = false; // default for servlet - private JPanel characterTablePanel; private FieldPanel mainFieldPanel; private static Phenote phenote; private TermInfo termInfo; private SelectionHistory selectionHistory; + private CharacterTableController tableController; private CommandLine commandLine = CommandLine.inst(); private JFrame frame; public SplashScreen splashScreen; @@ -349,11 +349,10 @@ JPanel infoHistoryPanel = new JPanel(new GridBagLayout()); infoHistoryPanel.setBorder(new EmptyBorder(10,10,10,10)); - CharacterTableController tableController = new CharacterTableController(group.getName()); - characterTablePanel = tableController.getCharacterTablePanel(); + this.tableController = new CharacterTableController(group.getName()); // need to do different selection & edit mgrs - FieldPanel groupFieldPanel = new FieldPanel(true,false,group.getName(), tableController.getSelectionModel()); + FieldPanel groupFieldPanel = new FieldPanel(true,false,group.getName(), this.tableController.getSelectionModel()); groupFieldPanel.setBorder(new EmptyBorder(10,10,10,10)); // for testing - thats it if (group == null || group.getName().equals("default")) @@ -374,7 +373,7 @@ - JSplitPane outerSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, innerSplitPane, characterTablePanel); + JSplitPane outerSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, innerSplitPane, this.tableController.getCharacterTablePanel()); mainPanel.add(outerSplitPane); return mainPanel; } @@ -427,6 +426,7 @@ public FieldPanel getFieldPanel() { return mainFieldPanel; } public TermInfo getTermInfo() { return termInfo; } //public CharacterTablePanel getCharacterTablePanel() { return characterTablePanel; } + public CharacterTableController getCharacterTableController() { return this.tableController; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ba...@us...> - 2007-09-19 19:03:51
|
Revision: 921 http://obo.svn.sourceforge.net/obo/?rev=921&view=rev Author: balhoff Date: 2007-09-19 12:03:49 -0700 (Wed, 19 Sep 2007) Log Message: ----------- Updated phenomap config to use new teleost anatomy ontology. Modified Paths: -------------- phenote/trunk/conf/phenomap.cfg Modified: phenote/trunk/conf/phenomap.cfg =================================================================== --- phenote/trunk/conf/phenomap.cfg 2007-09-19 18:32:56 UTC (rev 920) +++ phenote/trunk/conf/phenomap.cfg 2007-09-19 19:03:49 UTC (rev 921) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <ns:phenote-configuration version="1.0" xmlns:ns="phenote/config/xml" name="PhenoMaP Configuration" author="Jim Balhoff" description="This configuration is used by curators with the PhenoMaP project at NESCent."> - <ns:master-to-local-config mode="WIPEOUT" when="ALWAYS" overriding-master-url="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/phenote/trunk/conf/phenomap.cfg"/> + <ns:master-to-local-config mode="WIPEOUT" when="ALWAYS"/> <ns:log config-file="conf/log4j-phenomap.xml"/> <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> @@ -27,14 +27,14 @@ <ns:field name="Preparation" syntax-abbrev="SpecimenPreparation" enable="true" colwidth="150" groups="default specimen-list"/> <ns:field name="Entity" syntax-abbrev="E" enable="true" colwidth="150" groups="default"> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> - <ns:ontology name="Entity" file="zebrafish_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" namespace="zebrafish_anatomy"/> + <ns:ontology name="Entity" file="teleost_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" namespace="teleost_anatomy"/> </ns:field> <ns:field name="Quality" syntax-abbrev="Q" enable="true" colwidth="150" groups="default"> <ns:ontology name="Quality" file="quality.obo" repos-subdir="phenotype"/> </ns:field> <ns:field name="Additional Entity" syntax-abbrev="E2" enable="true" colwidth="150" groups="default"> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> - <ns:ontology name="Additional Entity" file="zebrafish_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish"/> + <ns:ontology name="Additional Entity" file="teleost_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish"/> </ns:field> <ns:field name="Measurement" syntax-abbrev="M" enable="true" colwidth="150" groups="default"/> <ns:field name="Unit" syntax-abbrev="U" enable="true" colwidth="150" groups="default"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-09-19 18:32:58
|
Revision: 920 http://obo.svn.sourceforge.net/obo/?rev=920&view=rev Author: mgibson Date: 2007-09-19 11:32:56 -0700 (Wed, 19 Sep 2007) Log Message: ----------- moved test classes from separate test dirctory (with same package name) into the actual packages themselves - as the separate test directory was totally screwing up eclipse this just means test classes will intermingle with regular classes no biggie Added Paths: ----------- phenote/trunk/src/java/phenote/UnitTests.java phenote/trunk/src/java/phenote/gui/TestPhenote.java phenote/trunk/src/java/phenote/util/FileUtilTest.java phenote/trunk/src/java/phenote/util/TermLinkComparatorTest.java Removed Paths: ------------- phenote/trunk/src/java/test/phenote/UnitTests.java phenote/trunk/src/java/test/phenote/gui/TestPhenote.java phenote/trunk/src/java/test/phenote/util/FileUtilTest.java phenote/trunk/src/java/test/phenote/util/TermLinkComparatorTest.java Copied: phenote/trunk/src/java/phenote/UnitTests.java (from rev 919, phenote/trunk/src/java/test/phenote/UnitTests.java) =================================================================== --- phenote/trunk/src/java/phenote/UnitTests.java (rev 0) +++ phenote/trunk/src/java/phenote/UnitTests.java 2007-09-19 18:32:56 UTC (rev 920) @@ -0,0 +1,26 @@ +package phenote; + +import junit.framework.TestSuite; +import junit.framework.JUnit4TestAdapter; +import junit.textui.TestRunner; +import phenote.util.FileUtilTest; +import phenote.gui.TestPhenote; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +/** + * This is the master unit test class that runs all registered unit tests (suite). + * Add your new unit test here if it is ready to be included in regular builds. + */ +@RunWith(Suite.class) +...@Su...iteClasses({ + FileUtilTest.class, + TestPhenote.class + }) + +public class UnitTests { + + public static junit.framework.Test suite() { + return new JUnit4TestAdapter(UnitTests.class); + } +} Copied: phenote/trunk/src/java/phenote/gui/TestPhenote.java (from rev 919, phenote/trunk/src/java/test/phenote/gui/TestPhenote.java) =================================================================== --- phenote/trunk/src/java/phenote/gui/TestPhenote.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/TestPhenote.java 2007-09-19 18:32:56 UTC (rev 920) @@ -0,0 +1,298 @@ +package phenote.gui; + +// move to main package?? + +import java.awt.Toolkit; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.ClipboardOwner; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.event.KeyEvent; +import java.util.Calendar; +import javax.swing.JList; +import javax.swing.event.HyperlinkEvent; + +import org.junit.BeforeClass; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; // wierd +import static org.junit.Assert.assertTrue; + +import phenote.datamodel.CharacterI; +import phenote.datamodel.CharacterListI; +import phenote.dataadapter.CharacterListManager; +import phenote.dataadapter.fly.FlyCharacter; +import phenote.dataadapter.fly.FlyCharList; +import phenote.dataadapter.fly.FlyCharListTransferable; +import phenote.dataadapter.fly.FlybaseDataAdapter; +import phenote.util.HtmlUtil; +import phenote.main.Phenote; +import phenote.gui.field.FieldPanel; +import phenote.gui.field.SearchParamPanel; +import phenote.gui.field.AbstractAutoCompList; + +// making same package as phenotes giving us access to package methods! + +// dont need to subclass TestCase - does tests thgough annotations (1.5) +public class TestPhenote { + + // dont have handle on instance - have to do statics - wierd + private static Phenote phenote; + private static FieldPanel fieldPanel; + private static SearchParamPanel searchParamPanel; + private static AbstractAutoCompList entityComboBox; + private static AbstractAutoCompList qualityComboBox; + private static TermInfo termInfo; + private static CharacterTablePanel characterTablePanel; + + /** @BeforeClass says to run this once before all the tests */ + @BeforeClass public static void init() { + System.out.println("Initializing Phenote..."); + Phenote.main(null); + // so the gui actually needs a little time to do layout on gui thread + // or else ACB.doComp() showPopup causes a hang - wierd! +// System.out.println("sleeping..."); +// try {Thread.currentThread().sleep(5000); } // millis +// catch (InterruptedException e) { System.out.println(e); } +// System.out.println("^^^done sleeping - is gui ready?"); + phenote = Phenote.getPhenote(); + fieldPanel = phenote.getFieldPanel(); + searchParamPanel = fieldPanel.getSearchParamPanel(); + entityComboBox = fieldPanel.getEntityComboBox(); + entityComboBox.setTestMode(true); // turns off popup, hanging bug only in test + qualityComboBox = fieldPanel.getQualityComboBox(); + qualityComboBox.setTestMode(true); + termInfo = phenote.getTermInfo(); + characterTablePanel = phenote.getCharacterTablePanel(); + } + + /** @Test is an annotation defined in Test - Test looks for Test methods */ + @Test public void test() { + //selectionPopupTest(); not done proper + compListSelectionTest(); + displayTermInfoOnCompMouseOverTest(); + comboTermSelectionGoesToTableTest(); + //synonymDupTest(); -- uses pase searchParamPanel + termInfoSelectTermTest(); + //attributeInQualityCompletionTest(); --> need 3 keystrokes 'ttr' + //backspaceInComboBoxTest(); cant sim backspace..... + //flyDataAdapterTest(); out of date its now doing phenoxml - soon will be syntax + } + + private void displayTermInfoOnCompMouseOverTest() { + System.out.println("Testing comp list mouse over term info..."); + // "he" should have plenty of completion terms associated, heart, head... + boolean doCompletion = true; + System.out.println("set entity text to hea"); + //entityComboBox.setText("hea",doCompletion); + // already have list from l from previous test - for some reason 2nd l doesnt jibe + // even though there are lots of quality terms with 'll' ??? + //qualityComboBox.simulateLKeyStroke(); // just does 'l' + System.out.println("set text - getting 3rd term"); + //JList entityJList = entityComboBox.getJList(); + // pick 3rd item + //String thirdTerm = (String)entityJList.getModel().getElementAt(2); + //String thirdTerm = getEntityThirdAutoTerm(); + String thirdTerm = getQualityThirdAutoTerm(); + assertNotNull("3rd term from quality combo shouldnt be null",thirdTerm); + //entityJList.setSelectedIndex(2); + //entityComboBox.doMouseOver(2); // 2 is 3rd - 0 indexing + qualityComboBox.doMouseOver(2); + + //String info = termInfo.getText(); + // gets text in term field part where name is displayed + String info = termInfo.getTermFieldText(); + //String properInfoPrefix = "Term: "+thirdTerm; + // this doesnt work anymore with mtml stuff in there... + //boolean isInfoProper = info.startsWith(properInfoPrefix); + boolean isInfoProper = info.contains(thirdTerm); + + String msg = "term info should contain '"+thirdTerm + +"' not getting mouseover but its ["+info+"]"; + assertTrue(msg,isInfoProper); + System.out.println("Completion mouse over term info test succeeded!"); + } + + private String getEntityThirdAutoTerm() { + return entityComboBox.getJComboBox().getModel().getElementAt(2).toString(); + } + + private String getQualityThirdAutoTerm() { + assertNotNull(qualityComboBox.getJComboBox().getModel()); + assertNotNull("3rd term from quality combo shouldnt be null", + qualityComboBox.getJComboBox().getModel().getElementAt(2)); + return qualityComboBox.getJComboBox().getModel().getElementAt(2).toString(); + } + + private String getQualityTerm(int index) { + assertNotNull(qualityComboBox.getJComboBox().getModel()); + assertNotNull(index+" term from quality combo shouldnt be null", + qualityComboBox.getJComboBox().getModel().getElementAt(index)); + return qualityComboBox.getJComboBox().getModel().getElementAt(index).toString(); + } + + /** Selecting item in entity combo box should cause that item to appear in + table in entity column */ + private void comboTermSelectionGoesToTableTest() { + // selecting item should make it go in table... + System.out.println("Selecting 3rd entity item"); + qualityComboBox.getJComboBox().setSelectedIndex(2); // 2 is 3rd + String selectedQualityTerm = getQualityThirdAutoTerm(); + CharacterI selPheno = characterTablePanel.getSelectedCharacter(); + String tableQuality = selPheno.getQuality().getName(); // oboclass + assertEquals(selectedQualityTerm,tableQuality); + System.out.println("term to table test passed, selected quality term " + +selectedQualityTerm+" quality in table "+tableQuality+"\n"); + } + + /** Test that attributes are being filtered out of quality term completion list */ + private void attributeInQualityCompletionTest() { + boolean doCompletion = true; + System.out.println("Testing quality for attribute filtering"); + // need to do this with key strokes now - set text doesnt work + // need at least 3 key strokes 'ttr' for attributes - i seem to have problems + // getting more than one key stroke in - hmmmmm + qualityComboBox.setText("attribute",doCompletion); + int count = qualityComboBox.getJComboBox().getItemCount(); + String m = "Attributes are not being filtered out of Quality completion "+ + "There are "+count+" terms with 'attribute'"; + System.out.println("There are "+count+" attributes in comp list"); + assertTrue(m,count == 0); + } + + // cant get null pointer to fly - gotta love testing guis + /** theres a null pointer on selcting item for 1st time, not sure i can replicate + this is an awful test - assumes lacking physical part is the 2nd indexed + L term in quality + ontology - assumes theres a quality ontology */ + private void compListSelectionTest() { + //qualityComboBox.setText("larg",true); + qualityComboBox.simulateLKeyStroke(); + qualityComboBox.getJComboBox().setSelectedIndex(2); + // this is admittedly presumptious of quality + assertEquals("lacking physical part",qualityComboBox.getText()); + System.out.println("comp list sel ok "+qualityComboBox.getText()); + } + + /** After term selected in comp list popup should not come up - this doesnt actually + test this - the popup does go away with setSelInd - only with mouse click it + sometimes doesnt - need simulated mouse click! */ + private void selectionPopupTest() { + qualityComboBox.setText("larg",true); + qualityComboBox.getJComboBox().setSelectedIndex(2); + assertFalse(qualityComboBox.getJComboBox().isPopupVisible()); + } + + /** with searching on synonyms hit bug where terms come in more than once if have + 2 syns */ + private void synonymDupTest() { + qualityComboBox.setText(""); + // searchParamPanel not used anymore - need to set in menu + //searchParamPanel.setTermSearch(false); + //searchParamPanel.setSynonymSearch(true); + SearchParams.inst().setParam(SearchFilterType.TERM,false); + SearchParams.inst().setParam(SearchFilterType.SYN,true); + simulateAQualityKeyStroke(); + String first = getQualityTerm(0); + String second = getQualityTerm(1); + assertFalse(first.equals(second)); + } + + // utlimatley need to do mouse click on term - how to do that??? + private void termInfoSelectTermTest() { + simulatePhenoteHyperlinkUpdate(); + String m = "term info hyper link test fail, term info should have body tone val " + +" term info: "+termInfo.getTermFieldText(); + // how to make this test not so pato specific?? + assertTrue(m,termInfo.getTermFieldText().contains("body tone value")); + } + + private void simulatePhenoteHyperlinkUpdate() { + HyperlinkEvent.EventType type = HyperlinkEvent.EventType.ACTIVATED; + // 0000732 -> "BodyToneValue" + String desc = HtmlUtil.makePhenoIdLink("PATO:0000732"); + HyperlinkEvent e = new HyperlinkEvent(termInfo,type,null,desc); + termInfo.simulateHyperlinkEvent(e); + } + + private void simulateAQualityKeyStroke() { + simulateQualityKeyStroke(KeyEvent.VK_A,'a'); + } + + private void simulateQualityKeyStroke(int keyCode, char c) { + qualityComboBox.simulateKeyStroke(keyCode,c); + } + + private void flyDataAdapterTest() { + CharacterListI cl = characterTablePanel.getCharacterList(); + characterTablePanel.pressCommitButtonTest(); + DataFlavor charListFlavor = FlyCharListTransferable.getCharListDataFlavor(); + try { + Object o = getClipboard().getData(charListFlavor); + String m = "Failure: clipboard transferrable is not a FlyCharList "+o; + assertTrue(m,o instanceof FlyCharList); + FlyCharList fcl = (FlyCharList)o; + CharacterListI clipboardCharList = fcl.getCharacterList(); + //assertEquals(clipboardCharList,cl); // its a clone??? + assertTrue(clipboardCharList.equals(cl)); + + // simulate proforma - grab strings and recreate char list & shove in clipboard + // & load it up + FlyCharList newFlyCharList = new FlyCharList(); + for (FlyCharacter fc : fcl.getFlyCharList()) { + FlyCharacter fcNew = new FlyCharacter(fc.getGenotype(),fc.getEVString()); + newFlyCharList.addFlyChar(fcNew); + } + Transferable tr = new FlyCharListTransferable(newFlyCharList); + ClipboardOwner clipboardOwner = FlybaseDataAdapter.getClipboardOwner(); + getClipboard().setContents(tr,clipboardOwner); + + MenuManager.inst().getFileMenu().clickLoad(); + CharacterListI newCL = CharacterListManager.inst().getCharacterList(); + //assertEquals(cl,newCL); == NOT .equals() + assertTrue(cl.equals(newCL)); + } + catch (Exception e) { + System.out.println("FAILURE: Exception thrown "+e); + e.printStackTrace(); + } + } + +// // put in CharList class? +// private boolean charListEquals(CharacterListI c1, CharacterListI c2) { +// if (c1.size() != c2.size()) return false; +// for (int i=0; i<c1.size(); i++) { +// if (!c1.get(i).equals(c2,get(i))) +// return false; +// } +// return true; +// } + + private Clipboard getClipboard() { + Toolkit t = Toolkit.getDefaultToolkit(); + return t.getSystemClipboard(); + } + + + // I cant find a way to simulate a backspace in jcombobox - very frustrating!! +// /** there is/was a bug where delete/backspace was not triggering a new +// completion list */ +// private void backspaceInComboBoxTest() { +// boolean doCompletion = true; +// qualityComboBox.clear(); +// qualityComboBox.setText("larg",doCompletion); +// int preBackspaceCount = qualityComboBox.getItemCount(); + +// // simulate backspace/delete key +// KeyEvent ke = new KeyEvent(qualityComboBox,KeyEvent.VK_DELETE,Calendar.getInstance().getTimeInMillis(),0,KeyEvent.VK_UNDEFINED,KeyEvent.CHAR_UNDEFINED); +// //qualityComboBox.processKeyEvent(ke); +// qualityComboBox.getEditor().getEditorComponent().processKeyEvent(ke); + +// String postDelText = qualityComboBox.getText(); +// int postBackspaceCount = qualityComboBox.getItemCount(); +// System.out.println("post text "+postDelText+" pre count "+preBackspaceCount+" post count "+postBackspaceCount); +// assertTrue(preBackspaceCount != postBackspaceCount); +// } + +} Copied: phenote/trunk/src/java/phenote/util/FileUtilTest.java (from rev 919, phenote/trunk/src/java/test/phenote/util/FileUtilTest.java) =================================================================== --- phenote/trunk/src/java/phenote/util/FileUtilTest.java (rev 0) +++ phenote/trunk/src/java/phenote/util/FileUtilTest.java 2007-09-19 18:32:56 UTC (rev 920) @@ -0,0 +1,126 @@ +package phenote.util; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import org.junit.After; +import org.junit.Before; + +import java.io.File; +import java.io.IOException; + +/** + * Unit test class for FileUtil. + */ +public class FileUtilTest { + + private static final File testArchiveDir = new File("src" + FileUtil.FILE_SEPARATOR + + "java" + FileUtil.FILE_SEPARATOR + + "test", "test-archive-dir"); + private static final File testLoadDirectory = new File("src" + FileUtil.FILE_SEPARATOR + + "java" + FileUtil.FILE_SEPARATOR + + "test", "test-load-dir"); + private File testLoadFile; + private File testPurgeFile; + + @Before + public void setUp() { + setTestDirectories(); + } + + @After + public void tearDown() { + cleanupTestFilesStructure(); + } + + /** + * Create a single file and archive it. Make sure it moved into the archive directory. + */ + @Test + public void archiveFile() { + File archivedFile = FileUtil.archiveFile(testLoadFile, testArchiveDir); + File[] files = testArchiveDir.listFiles(); + assertEquals("Number of files", 1, files.length); + assertEquals("File Name", archivedFile.getName(), files[0].getName()); + assertTrue("Original File still exists", testLoadFile.exists()); + } + + /** + * Create a single file and archive it. Make sure it moved into the archive directory. + * Sleep for a second and then archive another file and then purge the first file while the + * second file does not get purged. + */ + @Test + public void purgeArchiveFile() { + File archivedFile = FileUtil.archiveFile(testLoadFile, testArchiveDir); + File[] files = testArchiveDir.listFiles(); + assertEquals("Number of files", 1, files.length); + assertEquals("File Name", archivedFile.getName(), files[0].getName()); + assertTrue("Original File still exists", testLoadFile.exists()); + + // create the second file and wait a second before archiving it. + testPurgeFile = new File(testLoadDirectory, "test-file-two.txt"); + try { + Thread.sleep(1000); + testPurgeFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + + archivedFile = FileUtil.archiveFile(testPurgeFile, testArchiveDir); + files = testArchiveDir.listFiles(); + assertEquals("Number of files", 2, files.length); + FileUtil.purgeArchiveDirectory(testArchiveDir, 990); + + files = testArchiveDir.listFiles(); + assertEquals("Number of files", 1, files.length); + assertEquals("File Name", archivedFile.getName(), files[0].getName()); + + } + + @Test + public void pureFilename() { + String fileNameOnly = "filenameAlpha.txt"; + String filename = FileUtil.FILE_SEPARATOR + "dire" + FileUtil.FILE_SEPARATOR + fileNameOnly; + String pureFilename = FileUtil.getPureFileName(filename); + assertEquals("Pure File Name", fileNameOnly, pureFilename); + + fileNameOnly = ""; + pureFilename = FileUtil.getPureFileName(fileNameOnly); + assertEquals("Pure File Name", fileNameOnly, pureFilename); + } + + + /** + * Create the test directories before the tests are run. + */ + private void setTestDirectories() { + testLoadDirectory.mkdir(); + + testLoadFile = new File(testLoadDirectory, "test-file-one.txt"); + testPurgeFile = new File(testLoadDirectory, "test-file-two.txt"); + try { + testLoadFile.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * Remove test directories after the tests are done. + */ + private void cleanupTestFilesStructure() { + testLoadFile.delete(); + testPurgeFile.delete(); + testLoadDirectory.delete(); + File[] files = testArchiveDir.listFiles(); + if (files != null) + for (File file : files) { + file.delete(); + } + testArchiveDir.delete(); + } + +} Copied: phenote/trunk/src/java/phenote/util/TermLinkComparatorTest.java (from rev 919, phenote/trunk/src/java/test/phenote/util/TermLinkComparatorTest.java) =================================================================== --- phenote/trunk/src/java/phenote/util/TermLinkComparatorTest.java (rev 0) +++ phenote/trunk/src/java/phenote/util/TermLinkComparatorTest.java 2007-09-19 18:32:56 UTC (rev 920) @@ -0,0 +1,90 @@ +package phenote.util; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import junit.textui.TestRunner; +import org.geneontology.oboedit.datamodel.Link; +import org.geneontology.oboedit.datamodel.OBOProperty; +import org.geneontology.oboedit.datamodel.impl.InstancePropertyValue; +import org.geneontology.oboedit.datamodel.impl.OBOPropertyImpl; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Unit test class for FileUtil. + */ +public class TermLinkComparatorTest extends TestCase { + + public static void main(String args[]) { + TestRunner.run(TermLinkComparatorTest.suite()); + } + + public static Test suite() { + return new TestSuite(TermLinkComparatorTest.class); + } + + /** + * Create a single file and archive it. Make sure it moved into the archive directory. + */ + public void testIS_A_Before_PART_Of() { + List<InstancePropertyValue> links = new ArrayList<InstancePropertyValue>(); + links.add(getLinkUnknownOne()); + links.add(getLinkUnknownTwo()); + links.add(getLinkDevelops_From()); + links.add(getLinkPart_Of()); + links.add(getLinkIS_A()); + + Collections.sort(links, new TermLinkComparator()); + + Link link = (Link) links.get(0); + assertEquals("IS a first", "is_a", link.getType().getName()); + link = (Link) links.get(1); + assertEquals("Part of is second", "part of", link.getType().getName()); + link = (Link) links.get(2); + assertEquals("Part of is second", "develops from", link.getType().getName()); + link = (Link) links.get(3); + assertEquals("IS a first", "Unknown A", link.getType().getName()); + link = (Link) links.get(4); + assertEquals("IS a first", "Unknown B", link.getType().getName()); + + } + + private InstancePropertyValue getLinkIS_A(){ + InstancePropertyValue link = new InstancePropertyValue(); + OBOProperty prop = new OBOPropertyImpl(TermLinkComparator.RelationshipEnum.IS_A.getName()); + link.setType(prop); + return link; + } + + private InstancePropertyValue getLinkPart_Of(){ + InstancePropertyValue link = new InstancePropertyValue(); + OBOProperty prop = new OBOPropertyImpl(TermLinkComparator.RelationshipEnum.PART_OF.getName()); + link.setType(prop); + return link; + } + + private InstancePropertyValue getLinkDevelops_From(){ + InstancePropertyValue link = new InstancePropertyValue(); + OBOProperty prop = new OBOPropertyImpl(TermLinkComparator.RelationshipEnum.DEVELOPS_FROM.getName()); + link.setType(prop); + return link; + } + + private InstancePropertyValue getLinkUnknownOne(){ + InstancePropertyValue link = new InstancePropertyValue(); + OBOProperty prop = new OBOPropertyImpl("Unknown B"); + link.setType(prop); + return link; + } + + private InstancePropertyValue getLinkUnknownTwo(){ + InstancePropertyValue link = new InstancePropertyValue(); + OBOProperty prop = new OBOPropertyImpl("Unknown A"); + link.setType(prop); + return link; + } + +} Deleted: phenote/trunk/src/java/test/phenote/UnitTests.java =================================================================== --- phenote/trunk/src/java/test/phenote/UnitTests.java 2007-09-18 17:46:08 UTC (rev 919) +++ phenote/trunk/src/java/test/phenote/UnitTests.java 2007-09-19 18:32:56 UTC (rev 920) @@ -1,26 +0,0 @@ -package phenote; - -import junit.framework.TestSuite; -import junit.framework.JUnit4TestAdapter; -import junit.textui.TestRunner; -import phenote.util.FileUtilTest; -import phenote.gui.TestPhenote; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -/** - * This is the master unit test class that runs all registered unit tests (suite). - * Add your new unit test here if it is ready to be included in regular builds. - */ -@RunWith(Suite.class) -...@Su...iteClasses({ - FileUtilTest.class, - TestPhenote.class - }) - -public class UnitTests { - - public static junit.framework.Test suite() { - return new JUnit4TestAdapter(UnitTests.class); - } -} Deleted: phenote/trunk/src/java/test/phenote/gui/TestPhenote.java =================================================================== --- phenote/trunk/src/java/test/phenote/gui/TestPhenote.java 2007-09-18 17:46:08 UTC (rev 919) +++ phenote/trunk/src/java/test/phenote/gui/TestPhenote.java 2007-09-19 18:32:56 UTC (rev 920) @@ -1,298 +0,0 @@ -package phenote.gui; - -// move to main package?? - -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.event.KeyEvent; -import java.util.Calendar; -import javax.swing.JList; -import javax.swing.event.HyperlinkEvent; - -import org.junit.BeforeClass; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; // wierd -import static org.junit.Assert.assertTrue; - -import phenote.datamodel.CharacterI; -import phenote.datamodel.CharacterListI; -import phenote.dataadapter.CharacterListManager; -import phenote.dataadapter.fly.FlyCharacter; -import phenote.dataadapter.fly.FlyCharList; -import phenote.dataadapter.fly.FlyCharListTransferable; -import phenote.dataadapter.fly.FlybaseDataAdapter; -import phenote.util.HtmlUtil; -import phenote.main.Phenote; -import phenote.gui.field.FieldPanel; -import phenote.gui.field.SearchParamPanel; -import phenote.gui.field.AbstractAutoCompList; - -// making same package as phenotes giving us access to package methods! - -// dont need to subclass TestCase - does tests thgough annotations (1.5) -public class TestPhenote { - - // dont have handle on instance - have to do statics - wierd - private static Phenote phenote; - private static FieldPanel fieldPanel; - private static SearchParamPanel searchParamPanel; - private static AbstractAutoCompList entityComboBox; - private static AbstractAutoCompList qualityComboBox; - private static TermInfo termInfo; - private static CharacterTablePanel characterTablePanel; - - /** @BeforeClass says to run this once before all the tests */ - @BeforeClass public static void init() { - System.out.println("Initializing Phenote..."); - Phenote.main(null); - // so the gui actually needs a little time to do layout on gui thread - // or else ACB.doComp() showPopup causes a hang - wierd! -// System.out.println("sleeping..."); -// try {Thread.currentThread().sleep(5000); } // millis -// catch (InterruptedException e) { System.out.println(e); } -// System.out.println("^^^done sleeping - is gui ready?"); - phenote = Phenote.getPhenote(); - fieldPanel = phenote.getFieldPanel(); - searchParamPanel = fieldPanel.getSearchParamPanel(); - entityComboBox = fieldPanel.getEntityComboBox(); - entityComboBox.setTestMode(true); // turns off popup, hanging bug only in test - qualityComboBox = fieldPanel.getQualityComboBox(); - qualityComboBox.setTestMode(true); - termInfo = phenote.getTermInfo(); - characterTablePanel = phenote.getCharacterTablePanel(); - } - - /** @Test is an annotation defined in Test - Test looks for Test methods */ - @Test public void test() { - //selectionPopupTest(); not done proper - compListSelectionTest(); - displayTermInfoOnCompMouseOverTest(); - comboTermSelectionGoesToTableTest(); - //synonymDupTest(); -- uses pase searchParamPanel - termInfoSelectTermTest(); - //attributeInQualityCompletionTest(); --> need 3 keystrokes 'ttr' - //backspaceInComboBoxTest(); cant sim backspace..... - //flyDataAdapterTest(); out of date its now doing phenoxml - soon will be syntax - } - - private void displayTermInfoOnCompMouseOverTest() { - System.out.println("Testing comp list mouse over term info..."); - // "he" should have plenty of completion terms associated, heart, head... - boolean doCompletion = true; - System.out.println("set entity text to hea"); - //entityComboBox.setText("hea",doCompletion); - // already have list from l from previous test - for some reason 2nd l doesnt jibe - // even though there are lots of quality terms with 'll' ??? - //qualityComboBox.simulateLKeyStroke(); // just does 'l' - System.out.println("set text - getting 3rd term"); - //JList entityJList = entityComboBox.getJList(); - // pick 3rd item - //String thirdTerm = (String)entityJList.getModel().getElementAt(2); - //String thirdTerm = getEntityThirdAutoTerm(); - String thirdTerm = getQualityThirdAutoTerm(); - assertNotNull("3rd term from quality combo shouldnt be null",thirdTerm); - //entityJList.setSelectedIndex(2); - //entityComboBox.doMouseOver(2); // 2 is 3rd - 0 indexing - qualityComboBox.doMouseOver(2); - - //String info = termInfo.getText(); - // gets text in term field part where name is displayed - String info = termInfo.getTermFieldText(); - //String properInfoPrefix = "Term: "+thirdTerm; - // this doesnt work anymore with mtml stuff in there... - //boolean isInfoProper = info.startsWith(properInfoPrefix); - boolean isInfoProper = info.contains(thirdTerm); - - String msg = "term info should contain '"+thirdTerm - +"' not getting mouseover but its ["+info+"]"; - assertTrue(msg,isInfoProper); - System.out.println("Completion mouse over term info test succeeded!"); - } - - private String getEntityThirdAutoTerm() { - return entityComboBox.getJComboBox().getModel().getElementAt(2).toString(); - } - - private String getQualityThirdAutoTerm() { - assertNotNull(qualityComboBox.getJComboBox().getModel()); - assertNotNull("3rd term from quality combo shouldnt be null", - qualityComboBox.getJComboBox().getModel().getElementAt(2)); - return qualityComboBox.getJComboBox().getModel().getElementAt(2).toString(); - } - - private String getQualityTerm(int index) { - assertNotNull(qualityComboBox.getJComboBox().getModel()); - assertNotNull(index+" term from quality combo shouldnt be null", - qualityComboBox.getJComboBox().getModel().getElementAt(index)); - return qualityComboBox.getJComboBox().getModel().getElementAt(index).toString(); - } - - /** Selecting item in entity combo box should cause that item to appear in - table in entity column */ - private void comboTermSelectionGoesToTableTest() { - // selecting item should make it go in table... - System.out.println("Selecting 3rd entity item"); - qualityComboBox.getJComboBox().setSelectedIndex(2); // 2 is 3rd - String selectedQualityTerm = getQualityThirdAutoTerm(); - CharacterI selPheno = characterTablePanel.getSelectedCharacter(); - String tableQuality = selPheno.getQuality().getName(); // oboclass - assertEquals(selectedQualityTerm,tableQuality); - System.out.println("term to table test passed, selected quality term " - +selectedQualityTerm+" quality in table "+tableQuality+"\n"); - } - - /** Test that attributes are being filtered out of quality term completion list */ - private void attributeInQualityCompletionTest() { - boolean doCompletion = true; - System.out.println("Testing quality for attribute filtering"); - // need to do this with key strokes now - set text doesnt work - // need at least 3 key strokes 'ttr' for attributes - i seem to have problems - // getting more than one key stroke in - hmmmmm - qualityComboBox.setText("attribute",doCompletion); - int count = qualityComboBox.getJComboBox().getItemCount(); - String m = "Attributes are not being filtered out of Quality completion "+ - "There are "+count+" terms with 'attribute'"; - System.out.println("There are "+count+" attributes in comp list"); - assertTrue(m,count == 0); - } - - // cant get null pointer to fly - gotta love testing guis - /** theres a null pointer on selcting item for 1st time, not sure i can replicate - this is an awful test - assumes lacking physical part is the 2nd indexed - L term in quality - ontology - assumes theres a quality ontology */ - private void compListSelectionTest() { - //qualityComboBox.setText("larg",true); - qualityComboBox.simulateLKeyStroke(); - qualityComboBox.getJComboBox().setSelectedIndex(2); - // this is admittedly presumptious of quality - assertEquals("lacking physical part",qualityComboBox.getText()); - System.out.println("comp list sel ok "+qualityComboBox.getText()); - } - - /** After term selected in comp list popup should not come up - this doesnt actually - test this - the popup does go away with setSelInd - only with mouse click it - sometimes doesnt - need simulated mouse click! */ - private void selectionPopupTest() { - qualityComboBox.setText("larg",true); - qualityComboBox.getJComboBox().setSelectedIndex(2); - assertFalse(qualityComboBox.getJComboBox().isPopupVisible()); - } - - /** with searching on synonyms hit bug where terms come in more than once if have - 2 syns */ - private void synonymDupTest() { - qualityComboBox.setText(""); - // searchParamPanel not used anymore - need to set in menu - //searchParamPanel.setTermSearch(false); - //searchParamPanel.setSynonymSearch(true); - SearchParams.inst().setParam(SearchFilterType.TERM,false); - SearchParams.inst().setParam(SearchFilterType.SYN,true); - simulateAQualityKeyStroke(); - String first = getQualityTerm(0); - String second = getQualityTerm(1); - assertFalse(first.equals(second)); - } - - // utlimatley need to do mouse click on term - how to do that??? - private void termInfoSelectTermTest() { - simulatePhenoteHyperlinkUpdate(); - String m = "term info hyper link test fail, term info should have body tone val " - +" term info: "+termInfo.getTermFieldText(); - // how to make this test not so pato specific?? - assertTrue(m,termInfo.getTermFieldText().contains("body tone value")); - } - - private void simulatePhenoteHyperlinkUpdate() { - HyperlinkEvent.EventType type = HyperlinkEvent.EventType.ACTIVATED; - // 0000732 -> "BodyToneValue" - String desc = HtmlUtil.makePhenoIdLink("PATO:0000732"); - HyperlinkEvent e = new HyperlinkEvent(termInfo,type,null,desc); - termInfo.simulateHyperlinkEvent(e); - } - - private void simulateAQualityKeyStroke() { - simulateQualityKeyStroke(KeyEvent.VK_A,'a'); - } - - private void simulateQualityKeyStroke(int keyCode, char c) { - qualityComboBox.simulateKeyStroke(keyCode,c); - } - - private void flyDataAdapterTest() { - CharacterListI cl = characterTablePanel.getCharacterList(); - characterTablePanel.pressCommitButtonTest(); - DataFlavor charListFlavor = FlyCharListTransferable.getCharListDataFlavor(); - try { - Object o = getClipboard().getData(charListFlavor); - String m = "Failure: clipboard transferrable is not a FlyCharList "+o; - assertTrue(m,o instanceof FlyCharList); - FlyCharList fcl = (FlyCharList)o; - CharacterListI clipboardCharList = fcl.getCharacterList(); - //assertEquals(clipboardCharList,cl); // its a clone??? - assertTrue(clipboardCharList.equals(cl)); - - // simulate proforma - grab strings and recreate char list & shove in clipboard - // & load it up - FlyCharList newFlyCharList = new FlyCharList(); - for (FlyCharacter fc : fcl.getFlyCharList()) { - FlyCharacter fcNew = new FlyCharacter(fc.getGenotype(),fc.getEVString()); - newFlyCharList.addFlyChar(fcNew); - } - Transferable tr = new FlyCharListTransferable(newFlyCharList); - ClipboardOwner clipboardOwner = FlybaseDataAdapter.getClipboardOwner(); - getClipboard().setContents(tr,clipboardOwner); - - MenuManager.inst().getFileMenu().clickLoad(); - CharacterListI newCL = CharacterListManager.inst().getCharacterList(); - //assertEquals(cl,newCL); == NOT .equals() - assertTrue(cl.equals(newCL)); - } - catch (Exception e) { - System.out.println("FAILURE: Exception thrown "+e); - e.printStackTrace(); - } - } - -// // put in CharList class? -// private boolean charListEquals(CharacterListI c1, CharacterListI c2) { -// if (c1.size() != c2.size()) return false; -// for (int i=0; i<c1.size(); i++) { -// if (!c1.get(i).equals(c2,get(i))) -// return false; -// } -// return true; -// } - - private Clipboard getClipboard() { - Toolkit t = Toolkit.getDefaultToolkit(); - return t.getSystemClipboard(); - } - - - // I cant find a way to simulate a backspace in jcombobox - very frustrating!! -// /** there is/was a bug where delete/backspace was not triggering a new -// completion list */ -// private void backspaceInComboBoxTest() { -// boolean doCompletion = true; -// qualityComboBox.clear(); -// qualityComboBox.setText("larg",doCompletion); -// int preBackspaceCount = qualityComboBox.getItemCount(); - -// // simulate backspace/delete key -// KeyEvent ke = new KeyEvent(qualityComboBox,KeyEvent.VK_DELETE,Calendar.getInstance().getTimeInMillis(),0,KeyEvent.VK_UNDEFINED,KeyEvent.CHAR_UNDEFINED); -// //qualityComboBox.processKeyEvent(ke); -// qualityComboBox.getEditor().getEditorComponent().processKeyEvent(ke); - -// String postDelText = qualityComboBox.getText(); -// int postBackspaceCount = qualityComboBox.getItemCount(); -// System.out.println("post text "+postDelText+" pre count "+preBackspaceCount+" post count "+postBackspaceCount); -// assertTrue(preBackspaceCount != postBackspaceCount); -// } - -} Deleted: phenote/trunk/src/java/test/phenote/util/FileUtilTest.java =================================================================== --- phenote/trunk/src/java/test/phenote/util/FileUtilTest.java 2007-09-18 17:46:08 UTC (rev 919) +++ phenote/trunk/src/java/test/phenote/util/FileUtilTest.java 2007-09-19 18:32:56 UTC (rev 920) @@ -1,126 +0,0 @@ -package phenote.util; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.junit.Test; -import org.junit.After; -import org.junit.Before; - -import java.io.File; -import java.io.IOException; - -/** - * Unit test class for FileUtil. - */ -public class FileUtilTest { - - private static final File testArchiveDir = new File("src" + FileUtil.FILE_SEPARATOR + - "java" + FileUtil.FILE_SEPARATOR + - "test", "test-archive-dir"); - private static final File testLoadDirectory = new File("src" + FileUtil.FILE_SEPARATOR + - "java" + FileUtil.FILE_SEPARATOR + - "test", "test-load-dir"); - private File testLoadFile; - private File testPurgeFile; - - @Before - public void setUp() { - setTestDirectories(); - } - - @After - public void tearDown() { - cleanupTestFilesStructure(); - } - - /** - * Create a single file and archive it. Make sure it moved into the archive directory. - */ - @Test - public void archiveFile() { - File archivedFile = FileUtil.archiveFile(testLoadFile, testArchiveDir); - File[] files = testArchiveDir.listFiles(); - assertEquals("Number of files", 1, files.length); - assertEquals("File Name", archivedFile.getName(), files[0].getName()); - assertTrue("Original File still exists", testLoadFile.exists()); - } - - /** - * Create a single file and archive it. Make sure it moved into the archive directory. - * Sleep for a second and then archive another file and then purge the first file while the - * second file does not get purged. - */ - @Test - public void purgeArchiveFile() { - File archivedFile = FileUtil.archiveFile(testLoadFile, testArchiveDir); - File[] files = testArchiveDir.listFiles(); - assertEquals("Number of files", 1, files.length); - assertEquals("File Name", archivedFile.getName(), files[0].getName()); - assertTrue("Original File still exists", testLoadFile.exists()); - - // create the second file and wait a second before archiving it. - testPurgeFile = new File(testLoadDirectory, "test-file-two.txt"); - try { - Thread.sleep(1000); - testPurgeFile.createNewFile(); - } catch (IOException e) { - e.printStackTrace(); - } catch (InterruptedException e) { - e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. - } - - archivedFile = FileUtil.archiveFile(testPurgeFile, testArchiveDir); - files = testArchiveDir.listFiles(); - assertEquals("Number of files", 2, files.length); - FileUtil.purgeArchiveDirectory(testArchiveDir, 990); - - files = testArchiveDir.listFiles(); - assertEquals("Number of files", 1, files.length); - assertEquals("File Name", archivedFile.getName(), files[0].getName()); - - } - - @Test - public void pureFilename() { - String fileNameOnly = "filenameAlpha.txt"; - String filename = FileUtil.FILE_SEPARATOR + "dire" + FileUtil.FILE_SEPARATOR + fileNameOnly; - String pureFilename = FileUtil.getPureFileName(filename); - assertEquals("Pure File Name", fileNameOnly, pureFilename); - - fileNameOnly = ""; - pureFilename = FileUtil.getPureFileName(fileNameOnly); - assertEquals("Pure File Name", fileNameOnly, pureFilename); - } - - - /** - * Create the test directories before the tests are run. - */ - private void setTestDirectories() { - testLoadDirectory.mkdir(); - - testLoadFile = new File(testLoadDirectory, "test-file-one.txt"); - testPurgeFile = new File(testLoadDirectory, "test-file-two.txt"); - try { - testLoadFile.createNewFile(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * Remove test directories after the tests are done. - */ - private void cleanupTestFilesStructure() { - testLoadFile.delete(); - testPurgeFile.delete(); - testLoadDirectory.delete(); - File[] files = testArchiveDir.listFiles(); - if (files != null) - for (File file : files) { - file.delete(); - } - testArchiveDir.delete(); - } - -} Deleted: phenote/trunk/src/java/test/phenote/util/TermLinkComparatorTest.java =================================================================== --- phenote/trunk/src/java/test/phenote/util/TermLinkComparatorTest.java 2007-09-18 17:46:08 UTC (rev 919) +++ phenote/trunk/src/java/test/phenote/util/TermLinkComparatorTest.java 2007-09-19 18:32:56 UTC (rev 920) @@ -1,90 +0,0 @@ -package phenote.util; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; -import org.geneontology.oboedit.datamodel.Link; -import org.geneontology.oboedit.datamodel.OBOProperty; -import org.geneontology.oboedit.datamodel.impl.InstancePropertyValue; -import org.geneontology.oboedit.datamodel.impl.OBOPropertyImpl; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * Unit test class for FileUtil. - */ -public class TermLinkComparatorTest extends TestCase { - - public static void main(String args[]) { - TestRunner.run(TermLinkComparatorTest.suite()); - } - - public static Test suite() { - return new TestSuite(TermLinkComparatorTest.class); - } - - /** - * Create a single file and archive it. Make sure it moved into the archive directory. - */ - public void testIS_A_Before_PART_Of() { - List<InstancePropertyValue> links = new ArrayList<InstancePropertyValue>(); - links.add(getLinkUnknownOne()); - links.add(getLinkUnknownTwo()); - links.add(getLinkDevelops_From()); - links.add(getLinkPart_Of()); - links.add(getLinkIS_A()); - - Collections.sort(links, new TermLinkComparator()); - - Link link = (Link) links.get(0); - assertEquals("IS a first", "is_a", link.getType().getName()); - link = (Link) links.get(1); - assertEquals("Part of is second", "part of", link.getType().getName()); - link = (Link) links.get(2); - assertEquals("Part of is second", "develops from", link.getType().getName()); - link = (Link) links.get(3); - assertEquals("IS a first", "Unknown A", link.getType().getName()); - link = (Link) links.get(4); - assertEquals("IS a first", "Unknown B", link.getType().getName()); - - } - - private InstancePropertyValue getLinkIS_A(){ - InstancePropertyValue link = new InstancePropertyValue(); - OBOProperty prop = new OBOPropertyImpl(TermLinkComparator.RelationshipEnum.IS_A.getName()); - link.setType(prop); - return link; - } - - private InstancePropertyValue getLinkPart_Of(){ - InstancePropertyValue link = new InstancePropertyValue(); - OBOProperty prop = new OBOPropertyImpl(TermLinkComparator.RelationshipEnum.PART_OF.getName()); - link.setType(prop); - return link; - } - - private InstancePropertyValue getLinkDevelops_From(){ - InstancePropertyValue link = new InstancePropertyValue(); - OBOProperty prop = new OBOPropertyImpl(TermLinkComparator.RelationshipEnum.DEVELOPS_FROM.getName()); - link.setType(prop); - return link; - } - - private InstancePropertyValue getLinkUnknownOne(){ - InstancePropertyValue link = new InstancePropertyValue(); - OBOProperty prop = new OBOPropertyImpl("Unknown B"); - link.setType(prop); - return link; - } - - private InstancePropertyValue getLinkUnknownTwo(){ - InstancePropertyValue link = new InstancePropertyValue(); - OBOProperty prop = new OBOPropertyImpl("Unknown A"); - link.setType(prop); - return link; - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-18 17:46:11
|
Revision: 919 http://obo.svn.sourceforge.net/obo/?rev=919&view=rev Author: nlw Date: 2007-09-18 10:46:08 -0700 (Tue, 18 Sep 2007) Log Message: ----------- a placeholder for the roadmap until we've got one put up Added Paths: ----------- phenote/trunk/doc/phenote-website/roadmap.shtml Added: phenote/trunk/doc/phenote-website/roadmap.shtml =================================================================== --- phenote/trunk/doc/phenote-website/roadmap.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/roadmap.shtml 2007-09-18 17:46:08 UTC (rev 919) @@ -0,0 +1,29 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + <div class="catch_phrase"> + Phenote Software Roadmap + </div> + + <p> + Please stay tuned, we'll be adding our roadmap soon. + </p> + + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + + </body> +</html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-18 00:10:38
|
Revision: 918 http://obo.svn.sourceforge.net/obo/?rev=918&view=rev Author: nlw Date: 2007-09-17 17:10:36 -0700 (Mon, 17 Sep 2007) Log Message: ----------- Modified Paths: -------------- phenote/trunk/doc/phenote-website/irc_chat/index.shtml Modified: phenote/trunk/doc/phenote-website/irc_chat/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/irc_chat/index.shtml 2007-09-18 00:07:19 UTC (rev 917) +++ phenote/trunk/doc/phenote-website/irc_chat/index.shtml 2007-09-18 00:10:36 UTC (rev 918) @@ -2,13 +2,13 @@ <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <!--#include virtual="http://www.phenote.org/ssi/head.html" --> + <!--#include virtual="/ssi/head.html" --> <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> </head> <body> - <!--#include virtual="http://www.phenote.org/ssi/header.html" --> + <!--#include virtual="/ssi/header.html" --> <div id="main_container_aux"> <div id="main_content_aux"> @@ -42,7 +42,7 @@ </div> </div> -<!--#include virtual="http://www.phenote.org/ssi/footer.shtml" --> +<!--#include virtual="/ssi/footer.shtml" --> </body> </html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-18 00:07:25
|
Revision: 917 http://obo.svn.sourceforge.net/obo/?rev=917&view=rev Author: nlw Date: 2007-09-17 17:07:19 -0700 (Mon, 17 Sep 2007) Log Message: ----------- fix up the irc page Modified Paths: -------------- phenote/trunk/doc/phenote-website/irc_chat/index.shtml Modified: phenote/trunk/doc/phenote-website/irc_chat/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/irc_chat/index.shtml 2007-09-18 00:03:29 UTC (rev 916) +++ phenote/trunk/doc/phenote-website/irc_chat/index.shtml 2007-09-18 00:07:19 UTC (rev 917) @@ -2,13 +2,13 @@ <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <!--#include virtual="ssi/head.html" --> + <!--#include virtual="http://www.phenote.org/ssi/head.html" --> <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> </head> <body> - <!--#include virtual="ssi/header.html" --> + <!--#include virtual="http://www.phenote.org/ssi/header.html" --> <div id="main_container_aux"> <div id="main_content_aux"> @@ -42,7 +42,7 @@ </div> </div> -<!--#include virtual="/ssi/footer.shtml" --> +<!--#include virtual="http://www.phenote.org/ssi/footer.shtml" --> </body> </html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-18 00:03:25
|
Revision: 916 http://obo.svn.sourceforge.net/obo/?rev=916&view=rev Author: nlw Date: 2007-09-17 17:03:29 -0700 (Mon, 17 Sep 2007) Log Message: ----------- Modified Paths: -------------- phenote/trunk/doc/phenote-website/faq.shtml phenote/trunk/doc/phenote-website/faq.shtml~ Modified: phenote/trunk/doc/phenote-website/faq.shtml =================================================================== --- phenote/trunk/doc/phenote-website/faq.shtml 2007-09-17 23:50:43 UTC (rev 915) +++ phenote/trunk/doc/phenote-website/faq.shtml 2007-09-18 00:03:29 UTC (rev 916) @@ -18,7 +18,7 @@ <h1>General</h1> <h3>How do I get started?</h3> - + <p> You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/download.shtml">Downloads</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. </p> <h3>What's the best forum to ask my burning questions?</h3> Modified: phenote/trunk/doc/phenote-website/faq.shtml~ =================================================================== --- phenote/trunk/doc/phenote-website/faq.shtml~ 2007-09-17 23:50:43 UTC (rev 915) +++ phenote/trunk/doc/phenote-website/faq.shtml~ 2007-09-18 00:03:29 UTC (rev 916) @@ -18,8 +18,8 @@ <h1>General</h1> <h3>How do I get started?</h3> - <p> - You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/software.shtml">Software</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. + + You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/download.shtml">Downloads</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. </p> <h3>What's the best forum to ask my burning questions?</h3> <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-17 23:50:41
|
Revision: 915 http://obo.svn.sourceforge.net/obo/?rev=915&view=rev Author: nlw Date: 2007-09-17 16:50:43 -0700 (Mon, 17 Sep 2007) Log Message: ----------- ok, last change for awhile... bad link Modified Paths: -------------- phenote/trunk/doc/phenote-website/faq.shtml phenote/trunk/doc/phenote-website/faq.shtml~ Modified: phenote/trunk/doc/phenote-website/faq.shtml =================================================================== --- phenote/trunk/doc/phenote-website/faq.shtml 2007-09-17 23:43:28 UTC (rev 914) +++ phenote/trunk/doc/phenote-website/faq.shtml 2007-09-17 23:50:43 UTC (rev 915) @@ -18,8 +18,8 @@ <h1>General</h1> <h3>How do I get started?</h3> - <p> - You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/software.shtml">Software</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. + + You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/download.shtml">Downloads</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. </p> <h3>What's the best forum to ask my burning questions?</h3> <p> Modified: phenote/trunk/doc/phenote-website/faq.shtml~ =================================================================== --- phenote/trunk/doc/phenote-website/faq.shtml~ 2007-09-17 23:43:28 UTC (rev 914) +++ phenote/trunk/doc/phenote-website/faq.shtml~ 2007-09-17 23:50:43 UTC (rev 915) @@ -19,7 +19,7 @@ <h1>General</h1> <h3>How do I get started?</h3> <p> - You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/downloads.shtml">Downloads</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. + You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/software.shtml">Software</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. </p> <h3>What's the best forum to ask my burning questions?</h3> <p> @@ -72,7 +72,6 @@ <p> Sometimes a term you are looking for is really just a synonym of another term. Make sure you have "synonyms" selected under the "Settings" menu. </p> <p>If you still can't find it, it might be that the ontology is really missing a term. Ontologies, while extensive, are never complete, and are under active development. There are usually online term request resources for each ontology. You will need to contact each ontology resource separately. </p> - </p> <h3>Can I output my data in RDF-OWL?</h3> <p> Not yet, but that feature is coming soon. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-17 23:43:24
|
Revision: 914 http://obo.svn.sourceforge.net/obo/?rev=914&view=rev Author: nlw Date: 2007-09-17 16:43:28 -0700 (Mon, 17 Sep 2007) Log Message: ----------- a few last changes to the website now that its deployed Modified Paths: -------------- phenote/trunk/doc/phenote-website/faq.shtml phenote/trunk/doc/phenote-website/irc_chat/index.shtml phenote/trunk/doc/phenote-website/ssi/header.html Added Paths: ----------- phenote/trunk/doc/phenote-website/phenote-release-notes.shtml phenote/trunk/doc/phenote-website/ssi/side.html Removed Paths: ------------- phenote/trunk/doc/phenote-website/LiteTemplate phenote/trunk/doc/phenote-website/coordination.shtml phenote/trunk/doc/phenote-website/index.shtml.~1.4.~ phenote/trunk/doc/phenote-website/ontologies.shtml phenote/trunk/doc/phenote-website/ontologies.txt phenote/trunk/doc/phenote-website/participate.shtml phenote/trunk/doc/phenote-website/phenote-release-notes.html phenote/trunk/doc/phenote-website/relatedprojects.shtml phenote/trunk/doc/phenote-website/release-notes.shtml Deleted: phenote/trunk/doc/phenote-website/LiteTemplate =================================================================== Deleted: phenote/trunk/doc/phenote-website/coordination.shtml =================================================================== --- phenote/trunk/doc/phenote-website/coordination.shtml 2007-09-17 23:29:46 UTC (rev 913) +++ phenote/trunk/doc/phenote-website/coordination.shtml 2007-09-17 23:43:28 UTC (rev 914) @@ -1,122 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - - <!--#include virtual="ssi/head.html" --> - <title>Open Biomedical Ontologies Foundry</title> - - </head> - <body> - - <!--#include virtual="ssi/header.html" --> - - <div id="main_container_aux"> - <div id="main_content_aux"> - - <div class="catch_phrase"> - Coordination of the OBO Foundry - </div> - - <p> - The coordinators of the OBO Foundry are - <a href="http://www.gen.cam.ac.uk/Research/ashburner.htm"> - Michael Ashburner - </a> - (NCBO, GO), - <a href="http://www.berkeleybop.org/content/people/cjm/"> - Chris Mungall - </a> - (NCBO, GO, BBOP), - Suzanna Lewis - (NCBO, GO, BBOP), and - <a href="http://ontology.buffalo.edu/smith/"> - Barry Smith - </a> - (NCBO, ORG). - </p> - - <p> - The intention is to provide light-weight management, - although the growth of OBO may, in the future, necessitate a - more formal structure. It is appropriate to view these - people as facilitators who assist independent ontology - developers: by organizing meetings, making introductions - between different groups, offering comments when requested, - engaging in e-mail discussions, making resources available, - and other means. They work to ensure that the ontologies - being developed are mutually compatible, expandable, and - correctable in line with advances in biomedical - science. Ontologies are tools of communication, and their - utility rests on the network effects that come with wide - acceptance. Experience thus far confirms that adherence to - OBO principles is largely self-policing because of the - positive benefits that accrue to individual members. The - task of the OBO coordinators is to help to build this - community. - </p> - - <h1>Affiliations</h1> - - <h3> - <a href="http://bioontology.org/"> - National Center for Biomedical Ontology (NCBO) - </a> - </h3> - <p> - The NCBO is a consortium of leading biologists, clinicians, - informaticians, and ontologists who develop innovative - technology and methods that allow scientists to create, - disseminate, and manage biomedical information and knowledge - in machine-processable form. - </p> - - <h3> - <a href="http://org.buffalo.edu/"> - Ontology Research Group (ORG) - </a> - </h3> - <p> - The ORG is located in the New York State Center of - Excellence in Bioinformatics and Life Sciences - http://bioinformatics.buffalo.edu/ in Buffalo. It is engaged - in foundational ontology research and in biomedical ontology - development in the domain of biology and clinical - medicine. A special focus of research is electronic health - records. - </p> - - <h3> - <a href="http://www.geneontology.org"> - Gene Ontology (GO) - </a> - </h3> - <p> - The GO project provides a controlled voc abulary to describe - gene and gene product attributes in any organism. Members of - the GO Consortium supply annotations of gene products using - this vocabulary which can be viewed and downloaded via the - GO website. - </p> - <h3> - <a href="http://www.berkeleybop.org/"> - Berkeley Bioinformatics and Ontologies Project (BBOP) - </a> - </h3> - <p> - The BBOP is located at the Lawrence Berkeley National Labs, - is a diverse group of scientific researchers and software - engineers dedicated to developing tools and applying - computational technologies to solve biological - problems. Members of the group contribute to a number of - projects, including The Gene Ontology, The National Center - for Biomedical Ontology, and the Generic Model Organism - Database Project. - </p> - - </div> - </div> - - <!--#include virtual="ssi/footer.html" --> - - </body> -</html> Modified: phenote/trunk/doc/phenote-website/faq.shtml =================================================================== --- phenote/trunk/doc/phenote-website/faq.shtml 2007-09-17 23:29:46 UTC (rev 913) +++ phenote/trunk/doc/phenote-website/faq.shtml 2007-09-17 23:43:28 UTC (rev 914) @@ -19,7 +19,7 @@ <h1>General</h1> <h3>How do I get started?</h3> <p> - You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/downloads.shtml">Downloads</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. + You can lauch Phenote directly from your browser. Simply click on the Launch Phenote 'quick link' from the <a href="http://www.phenote.org/">main page</a> or the <a href="http://www.phenote.org/software.shtml">Software</a> page, and it will launch directly from your browser. It will take a couple of minutes to download all the components, but that's it. </p> <h3>What's the best forum to ask my burning questions?</h3> <p> Deleted: phenote/trunk/doc/phenote-website/index.shtml.~1.4.~ =================================================================== --- phenote/trunk/doc/phenote-website/index.shtml.~1.4.~ 2007-09-17 23:29:46 UTC (rev 913) +++ phenote/trunk/doc/phenote-website/index.shtml.~1.4.~ 2007-09-17 23:43:28 UTC (rev 914) @@ -1,114 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" - "http://www.w3.org/TR/html4/strict.dtd"> -<html lang="en"> -<head> - <title>OBO Main</title> - <link href="/css/stylesheet.css" rel="stylesheet" type="text/css" media="screen" /> - <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> - <meta name="description" content="Open Biomedical Ontologies, a collection of freely available well-structured controlled vocabularies." /> -<script src="obfuscate.js" type="text/javascript"></script> -</head> -<body> - -<div id="header"> - <h1>the obo foundry </h1> -</div> - -<div id="content"> - -<div class="main-text"> - <div id="about"> -<p>The Open Biomedical Ontologies (OBO) Foundry is a collaborative experiment: to produce well-structured vocabularies for shared use across different biological and medical domains. - The OBO Foundry introduces a new paradigm for biomedical ontology development by the establishment of gold standard reference ontologies for individual domains of inquiry. -</p> - -<p> -Those involved comprise a group of biological researchers and ontology developers who agree in advance to the adoption of a growing set of principles specifying best practices in ontology development. These principles are designed to foster interoperability of ontologies within the broader OBO framework, and also to ensure a gradual improvement of quality and formal rigor in ontologies, in ways designed to meet the increasing needs of data and information integration in the biomedical domain. -</p> -<p> -By joining the OBO Foundry, the authors of an ontology commit to its maintenance in light of scientific advance, and to soliciting community feedback for its improvement. They also give an assurance that they will work with other Foundry members to ensure that, for any particular domain, there is community convergence on a single reference ontology. Application ontologies developed for specific purposes can then be referred back to this common reference, which will be updated in light of scientific advance. In this way application ontologies, too, for example the application ontologies developed for purposes of managing clinical trial data, can take advantage of the Foundry methodology. -</p> -<p> -This site contains ontologies and points to some other efforts within the community. Ideally we see a range of ontologies being designed for biomedical domains. Some of these will be generic and apply across all organisms and others will be more restricted in scope, for example to specific taxonomic groups. -</p> - <ul> - <li> - <a href="../cgi-bin/table.cgi" class="site">View the OBO Foundry ontologies in table form</a> - </li> - <li> - <a href="browse.shtml" class="site">Browse the index of the OBO Foundry ontologies</a> - </li> - </ul> - </div> - <div> - <h2>coordinators</h2> - <p><br> - -The coordinators of the OBO Foundry are <a -href="http://www.gen.cam.ac.uk/Research/ashburner.htm">Michael Ashburner</a> -(NCBO, GO), <a href="http://www.berkeleybop.org/content/people/cjm/">Chris -Mungall</a> (NCBO, GO, BBOP), Suzanna Lewis (NCBO, GO, BBOP), and <a -href="http://ontology.buffalo.edu/smith/">Barry Smith</a> (NCBO, ORG). - - </p> - <h3><a href="http://bioontology.org/">National Center for Biomedical Ontology (NCBO)</a></h3> - <p class="description"> - The NCBO is a consortium of leading biologists, clinicians, informaticians, and ontologists who develop innovative technology and methods that allow scientists to create, disseminate, and manage biomedical information and knowledge in machine-processable form. - </p> - <h3> <a href="http://org.buffalo.edu/">Ontology Research Group (ORG)</a></h3> - <p class="description"> - The ORG is located in the New York State Center of Excellence in Bioinformatics and Life Sciences http://bioinformatics.buffalo.edu/ in Buffalo. It is engaged in foundational ontology research and in biomedical ontology development in the domain of biology and clinical medicine. A special focus of research is electronic health records. - </p> - <h3><a href="http://www.geneontology.org">Gene Ontology (GO)</a></h3> - <p class="description"> - The GO project provides a controlled voc abulary to describe gene and gene product attributes in any organism. Members of the GO Consortium supply annotations of gene products using this vocabulary which can be viewed and downloaded via the GO website. - </p> - <h3><a href="http://www.berkeleybop.org/">Berkeley Bioinformatics and Ontologies Project (BBOP)</a></h3> - <p class="description"> - The BBOP is located at the Lawrence Berkeley National Labs, is a diverse group of scientific researchers and software engineers dedicated to developing tools and applying computational technologies to solve biological problems. Members of the group contribute to a number of projects, including The Gene Ontology, The National Center for Biomedical Ontology, and the Generic Model Organism Database Project. - </p> - </div> - <div> - <h2>related projects</h2> - <h3> <a href="http://www.gmod.org/">Generic Model Organism Databases</a></h3> - <p class="description"> - The Generic Model Organism Project (GMOD) is a joint effort by the model organism system databases WormBase, FlyBase, MGI, SGD, Gramene, Rat Genome Database, EcoCyc, and TAIR to develop reusable components suitable for creating new community databases of biology. - </p> - <h3><a href="http://ifomis.org">Institute for Formal Ontology and Medical Information Science -(IFOMIS)</a></h3> - <p class="description"> -The Institute for Formal Ontology and Medical Information Science -(IFOMIS) comprehends an interdisciplinary research group with members -from Philosophy, Computer and Information Science, Logic, Medicine, -and Medical Informatics, focusing on theoretically grounded research -in both formal and applied ontology. - </p> - <h3><a href="http://mged.sf.net/">MGED</a></h3> - <p class="description"> - The Microarray Gene Expression Data (MGED) Society is an international organisation of biologists, computer scientists, and data analysts that aims to facilitate the sharing of microarray data generated by functional genomics and proteomics experiments. - </p> - <h3><a href="http://www.ebi.ac.uk/ontology-lookup/">Ontology Lookup Service</a></h3> - <p class="description"> - The Ontology Lookup Service is a spin-off of the PRIDE project, which required a centralized query interface for ontology and controlled vocabulary lookup. While many of the ontologies queriable by the OLS are available online, each has its own query interface and output format. The OLS provides a web service interface to query multiple ontologies from a single location with a unified output format. - </p> - <h3><a href="http://www.plantontology.org/">Plant Ontology Consortium</a></h3> - <p class="description"> - The Plant Ontology Consortium (POC) aims to develop, curate and share structured controlled vocabularies (ontologies) that describe plant structures and growth/developmental stages. Through this effort, the project aims to facilitate cross database querying by fostering consistent use of these vocabularies in the annotation of tissue and/or growth stage specific expression of genes, proteins and phenotypes. - </p> - <h3><a href="http://www.psidev.info/index.php?q=node/258">Proteomics Standards Initiative</a></h3> - <p class="description"> - Is also interested in guidelines for the development of Controlled Vocabularies. - </p> - <h3><a href="http://www.sofg.org/">Standards and Ontologies for Functional Genomics</a></h3> - <p class="description"> - SOFG is both a meeting and a website; it aims to bring together biologists, bioinformaticians, and computer scientists who are developing and using standards and ontologies with an emphasis on describing high-throughput functional genomics experiments. - </p> - </div> -</div> - -<!--#include virtual="/ssi/navi_bar.html" --> - -</div> - -</body> -</html> Modified: phenote/trunk/doc/phenote-website/irc_chat/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/irc_chat/index.shtml 2007-09-17 23:29:46 UTC (rev 913) +++ phenote/trunk/doc/phenote-website/irc_chat/index.shtml 2007-09-17 23:43:28 UTC (rev 914) @@ -1,11 +1,21 @@ -<!--#include virtual="/ssi/header.html" --> -<div id="page_body"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> -<!--#include virtual="/ssi/navi_home.html" --> + <!--#include virtual="ssi/head.html" --> + <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> -<div id="main_content"> -<h2>Phenote Working Group IRC Chat</h2> + </head> + <body> + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + <div class="catch_phrase"> + Phenote Working Group IRC Chat + </div> + When: First Tuesday of every month; 8:30am <br/> <p>You will need an IRC client to visit our chats. You can download any number of <a href="/irc_chat/irc_clients.shtml">free clients</a> to do this. You'll need to connect to the <b>irc.sf.net</b> and join the <b>#phenote</b> channel. </p> @@ -34,3 +44,5 @@ <!--#include virtual="/ssi/footer.shtml" --> + </body> +</html> \ No newline at end of file Deleted: phenote/trunk/doc/phenote-website/ontologies.shtml =================================================================== --- phenote/trunk/doc/phenote-website/ontologies.shtml 2007-09-17 23:29:46 UTC (rev 913) +++ phenote/trunk/doc/phenote-website/ontologies.shtml 2007-09-17 23:43:28 UTC (rev 914) @@ -1,85 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - - <!--#include virtual="ssi/head.html" --> - <title>Open Biomedical Ontologies Foundry</title> - - </head> - <body> - - <!--#include virtual="ssi/header.html" --> - - <div id="main_container_aux"> - <div id="main_content_aux"> - <div class="catch_phrase"> - The Ontologies of the OBO Foundry - </div> - - <h3> - <a href="crit.shtml"> - Current Principles - </a> - </h3> - <p> - OBO consists of ontologies which either conform to, or are - committed to working towards conforming to, the OBO Foundry - principles. The OBO coordinators are committed to working - with ontology developers to aid this process, and they are - also committed to keeping these Foundry Principles under - review. - </p> - - <h3> - <a href="http://www.obofoundry.org"> - Ontology Table - </a> - </h3> - <p> - Our main page contains a tabular listing of the current set - of ontologies in the OBO Foundry. The table can be sorted by - clicking on column headings, and you can find further - information by clicking on the ontology name. - </p> - - <h3> - <a href="browse.shtml"> - Ontology Browser - </a> - </h3> - <p> - An indexed view of the current set of ontologies in the OBO - Foundry organized by domains. Nodes can be expanded and - collapsed, and the leaf nodes link to further information. - </p> - - <h3> - <a href="http://www.berkeleybop.org/ontologies"> - Downloads - </a> - </h3> - <p> - All of the current set of ontologies in the OBO Foundry are - available here to download in a variety of different - representations: obo_xml, obo format, owl, chadoxml, rdf, - tabular, prolog, and others. Updated nightly. - </p> - - <h3> - <a href="http://sourceforge.net/cvs/?group_id=76834"> - Ontology repository - </a> - </h3> - <p> - Many of the OBO Foundry ontologies are maintained in this - CVS repository. You can browse and download the active - versions of these ontologies here. - </p> - - </div> - </div> - - <!--#include virtual="ssi/footer.html" --> - - </body> -</html> Deleted: phenote/trunk/doc/phenote-website/ontologies.txt =================================================================== Deleted: phenote/trunk/doc/phenote-website/participate.shtml =================================================================== --- phenote/trunk/doc/phenote-website/participate.shtml 2007-09-17 23:29:46 UTC (rev 913) +++ phenote/trunk/doc/phenote-website/participate.shtml 2007-09-17 23:43:28 UTC (rev 914) @@ -1,74 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - - <!--#include virtual="ssi/head.html" --> - <title>Open Biomedical Ontologies Foundry</title> - - </head> - <body> - - <!--#include virtual="ssi/header.html" --> - - <div id="main_container_aux"> - <div id="main_content_aux"> - <div class="catch_phrase"> - Participation in the OBO Foundry - </div> - - <h3><a href="join.shtml">Join</a></h3> - <p> - How any group that is in the process of developing an - ontology and who would like to join the foundry can do this. - </p> - - <h3> - <a href="http://obofoundry.org/wiki/index.php/Main_Page"> - OBO Wiki - </a> - </h3> - <p> - Not much here yet, but contributions are welcome. If you - would like an account on the wiki, please contact the - <script type="text/javascript"> - obfuscate("lbl.gov","sjcarbon","OBO webmaster"); - </script>. - </p> - - <h3> - <a href="http://www.obofoundry.org/cgi-bin/discussion.cgi"> - Discussion - </a> - </h3> - <p> - A list of all of the OBO Foundry discussion lists, archives, - and how to subscribe. - </p> - - <h3> - <a href="http://lists.sourceforge.net/lists/listinfo/obo-discuss"> - Subscribe - </a> - </h3> - <p> - Click here to subscribe (or unsubscribe) to the primary OBO - discussion list. - </p> - - <h3> - <a href="mailto:obo...@li..."> - Contact - </a> - </h3> - <p> - Send us an e-mail with your questions, perspectives, and - critiques. - </p> - - </div> - </div> - - <!--#include virtual="ssi/footer.html" --> - - </body> -</html> Deleted: phenote/trunk/doc/phenote-website/phenote-release-notes.html =================================================================== --- phenote/trunk/doc/phenote-website/phenote-release-notes.html 2007-09-17 23:29:46 UTC (rev 913) +++ phenote/trunk/doc/phenote-website/phenote-release-notes.html 2007-09-17 23:43:28 UTC (rev 914) @@ -1,654 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - - - <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> - - - - <title>Phenote Release Notes</title> -</head> - - -<body> - -<h1>Phenote Release Notes</h1> - -<h2>1.4 </h2> -08.28.2007, version <a href="phenote/1.4-beta3/phenote.jnlp">1.4-beta3</a><br> -<ul> - <li>feature: Native look-and-feel enabled for interface. Users should now see Mac or Windows style depending on their system.</li> - <li>feature: read-only field (needs work)</li> - <li>feature: config disabling of copy of field (for db ids)</li> - <li>feature: display property values of terms in term info</li> - <li>feature: Phylogeny Chooser for NESCent/PhenoMap project. A user can import a phylogenetic tree in Newick format. The user can use the tree - viewer to select rows within the character template - typically taxonomic groups.</li> - <li>feature: term fields can be nullified</li> - <li>feature: separate queries to backend for different groups, implemented in worm</li> - <li>feature: ID field type, requires ":"</li> - <li>feature: can get unique list of deleted annots</li> - <li>feature: added group adapter framework</li> - <li>feature: fly genotype group adapter makes fly genotype strings from tab/group</li> - <li>feature: worm group adapter makes reference terms from ref query</li> - <li>change: on term completion if adding a letter use previous completion list</li> - <li>change: worm adapter query tab working properly</li> - <li>change: build file takes param for webstart version deployment, and puts in jnlp</li> - <li>change: group adapters can listen for CharList changes</li> - <li>change: added/corrected birn ontologies</li> - <li>bugfix: load of file doesnt crash on post comp parsing bug</li> - <li>bugfix: doesnt load obo files specified twice twice</li> - <li>bugfix: view menu show up at initialization</li> - <li>bugfix: layout of term history with split pane proper</li> -</ul> -<br> -07.20.2007, version <a href="phenote/1.4-beta2/phenote.jnlp">1.4-beta2</a><br> - -<ul> - - <li>feature: RESTful data input for BIRN's smart atlas</li> - - <li>feature: Character Template for NESCent/CToL (Jim Balhoff). This -is an additional window which edits a separate list of characters using -a subset of the fields in the main window. The fields to include are -denoted by a group in the config file. This functionality will be used -by the PhenoMap project to create a specimen list. The same EQ -statement can be applied to many specimens at once by selecting the -relevant specimens and generating characters in the main window with -the template fields pre-filled. All the new characters are selected and -can then be bulk edited.</li> - - <li>feature: Progress on gui for config (in progress)</li> - - <li>feature: Progress on field groups (genotype maker, pub querying...)</li> - - <li>feature: right-click editing functions for free-text fields in data input frame. right-click copy in table.</li> - - <li>feature: incorporation of help documentation into Phenote under menu item Help->PhenoteHelp </li> - - <li>feature: added plant_grammene.cfg configuration, plus appropriate obo files.</li> - - <li>feature: navigation bar added to top of term info; buttons to traverse worn paths; term name moved up to top of box [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1685540&group_id=76834&atid=887913">1685540</a>]</li> - - <li>feature: dbxrefs are listed in term info (no external links yet) [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1739399&group_id=76834&atid=887913">1739399</a>]</li> - - <li>change: ontology files can be read with dangling references</li> - - <li>change: Command line read & write of .tab</li> - - <li>change: 'use term' button moved and replaced with checkmark button in navigation bar</li> - - <li>change: ncbo.cfg changed to always update from master file at url</li> - - <li>change: birn2.cfg gene_ontology replaced with gene_ontology_edit.obo reference</li> - - <li>change: Windows splash screen text edited from 'biomedial' to 'biomedical'</li> - - <li>bugfix: obsolete terms were not being read in from annotation files as Ontology.getTerm was only looking at non obsoleted terms</li> - - <li>known bug: ontology files using import statements not properly read</li> - -</ul> - - -<h3>version 1.4-beta1 - oops - skipped!</h3> - - - -<h2>1.3</h2> - - -05.24.2007, version <a href="phenote/1.3/phenote.jnlp">1.3 release</a><br> - -<ul> - - <li>feature: <a href="http://www.phenote.org/help/">Web-based documentation and Help features.</a></li> - - <li>feature: Metadata fields added to configuration. User can name their configuration, add a description, and author [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1676756&group_id=76834&atid=887913">1676756</a>, <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1672080&group_id=76834&atid=887913">1672080</a>]</li> - - <li>feature: Descriptions can be added for fields </li> - - <li>feature: Master-to-local overwrite stuff</li> - - <li>feature: Dialog allows user to back out of exiting from File->Exit</li> - - <li>feature: Autocompletion search default settings configurable <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1677411&group_id=76834&atid=887913">1677411</a>, <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1669579&group_id=76834&atid=887913">1669579</a>] - </li> - - <li>feature: User can save search setting defaults if changed during Phenote session</li> - - <li>change: File->New is disabled until next version</li> - - <li>change: ncbo, zfin-standalone, flybase, demo configurations -modified to include master-overwrite feature; keeping track of revision -history in file comments </li> - - <li>change: can read http, https, ftp, ftps for ontology update URLs, not just http [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1718945&group_id=76834&atid=887913">1718945</a>]</li> - - <li>bugfix: Bulk-editing functions are working again</li> - - <li>bugfix: Undo wasn't working for several functions due to a bug in the Copy function [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1721044&group_id=76834&atid=887913"> 1721044</a>]</li> - - <li>bugfix: multi-select deletes free-text content replaces with * [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1721032&group_id=76834&atid=887913">1721032</a>]</li> - - <li>bugfix: pre 1.2 post comp data wasnt able to load<big> </big>[<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1721470&group_id=76834&atid=887913">1721470</a>]</li> - -</ul> - - - - -05.09.2007, version <a href="phenote/1.3-beta1/phenote.jnlp">1.3-beta1</a><br> - - - -<ul> - - <li>feature: Added sample config for BIRN</li> - - <li>feature: Added SAO.obo ontology for BIRN</li> - - <li>feature: Namespace config writes back</li> - - <li>feature: Can specify more than one website for ontology update</li> - - <li>feature: Empty field shows all terms in ontology rather than none</li> - - <li>feature: Can add more differentia to post comp</li> - - <li>bugfix: Config update/merge bug where fields in wrong order fixed.</li> - - <li>known bug: can't read post-compositions from phenote versions 1.1 and prior</li> - -</ul> - - - - -<h2>1.2 -<hr></h2> - - - -05.02.2007, version <a href="phenote/1.2/phenote.jnlp">1.2</a><br> - - -<ul> - - <li>feature: Can post-compose with >2 terms </li> - - <li>feature: Term history display can be toggled on/off (Settings->Term History menu)</li> - - <li>feature: Synonyms delineated by scope in Term Info: Exact, -Narrow, Broad, General, Related. If the synonym category is given, it -is displayed. For example, the term 'water' has the <i>related</i> synonym H2O, which has the category of a chemical <i>formula</i>.</li> - - <li>feature: Obsolete replacements or consideration terms are displayed in term info with links</li> - - <li>feature: Display term comments in Term Info beneath relationships</li> - - <li>feature: Loading splash screen </li> - - <li>feature: Can configure by namespace for ontologies</li> - - <li>feature: Can automatically update ontologies during startup (configurable)</li> - - <li>feature: Timer added to configuration during ontology update check (configurable)</li> - - <li>feature: Can check which version of phenote is running by selecting Help->About.</li> - - <li>feature: Added common configuration for OMIM curation for use by NCBO (ncbo.cfg).</li> - - <li>feature: can forward and reverse sort columns by repeatedly clicking on column header [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1574916&group_id=76834&atid=887913">1574916</a>]</li> - - <li>feature: display ontology namespace in term info box [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1598048&group_id=76834&atid=887913">1598048</a>]</li> - - <li>change: Search filters moved into menu </li> - - <li>change: Updates to the zfin-standalone.cfg for the zebrafish community annotation; only includes GO and ZFanatomy ontologies. </li> - - <li>bugfix: Free-text field text not sticking in "new" or blank rows </li> - -</ul> - - - - -<h2>1.1 -<hr></h2> - - - -04.06.2007, version <a href="phenote/1.1/phenote.jnlp">1.1.3</a><br> - - -<ul> - - <li>feature: User can change the configuration they want to use at -initialization from file menu; change takes effect after restart. -(previously user had to edit the .phenote/conf/my-phenote file).</li> - -</ul> - - - -03.28.2007, version 1.1.1<br> - - - -<ul> - - <li>feature: Phenote is now a single webstart app; user chooses -their configuration at startup (used to be hard wired to a -configuration)</li> - - <li>feature: Phenote will merge its default configuration with users' configuration, -preserving user changes as well as adding anything new from phenote -upgrade.</li> - - <li>feature: Beginnings of term history to display recently used ontology terms. Will be clickable in future.</li> - - <li>feature: Data entry panel will spill over into multiple tabs if >12 fields included</li> - - <li>feature: Tab delimited data adapter; data in/output format compatible with excel and other spreadsheet software [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1661778&group_id=76834&atid=887913">1661778</a>]</li> - - <li>feature: QueryableDataAdapter interface for developers; enables -connection between input fields and a database backend for quering. -Queryable fields get a retrieve button.</li> - - <li>feature: Autocompletion search with ALL ontologies in a field instead of just one [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1575241&group_id=76834&atid=887913">1575241</a>]</li> - - <li>feature: Retrieve ontology files from URL if more up to date or no local found; only from a single repository for all [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1648337&group_id=76834&atid=887913">1648337</a>, <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1574906&group_id=76834&atid=887913">1574906</a>]</li> - - <li>feature: fixed releases available for checkout via sourceforge [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1670345&group_id=76834&atid=887913">1670345</a>]</li> - - <li>feature: display xtns in load/save menu choices [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1594508&group_id=76834&atid=887913">1594508</a>]</li> - - <li>change: Refactored code for field guis</li> - - <li>change: Layout improved</li> - - <li>change: OBSOLETE is displayed in red next to obsolete term in term info [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1581589&group_id=76834&atid=887913">1581589</a>]</li> - - <li>change: human.cfg configuration to include obo foundary ontologies GO, SO, CL, ChEBI, PATO, OBI, Relations, unit, and spatial [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1633287&group_id=76834&atid=887913">1633287</a>]</li> - - <li>bugfix: Ontology chooser reflects current term</li> - - <li>bugfix: phenosyntax reader broken [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1684591&group_id=76834&atid=887913">1684591</a>]</li> - - <li>bugfix: post-composed terms not loading [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1661728&group_id=76834&atid=887913">1661728</a>]</li> - -</ul> - - - -<h2>1.0 -<hr></h2> - - - -02.06.2007, version <a href="phenote/1.0/phenote-flybase.jnlp">1.0.5-fly</a>, <a href="1.0/phenote-zfin.jnlp">1.0.5-zfin</a><br> - - - -01.12.2007, version1.0, -<a href="http://reaper.lbl.gov/phenote/html/ncbo.html">Webby -Phenote(components used by Zfin)</a><br> - - - -<ul> - - - - <li>change: refactoring of the data model to allow addition of any -field desired, not just E,Q,GC,GT,Pub. Stage, Evidence, Description, -Abnormal, and Absent have been added through this new mechanism in the -newest configurations. [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1574912&group_id=76834&atid=887913">1574912</a>]</li> - - <li>change: Webby phenote is now using JSP and Spring.</li> - - <li>change: There has been some recent work with UVictoria for ontology graph -visualization. This is coming along well and hopefully will be seen in -the next release.</li> - - <li>bugfix: absent fields not displaying in human 1.03 [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1661973&group_id=76834&atid=887913">1661973</a>]</li> - -</ul> - - - -<h2>0.9 -<hr></h2> - - - -11.15.2006, version <a href="phenote/0.9/phenote-flybase.jnlp">0.9-fly</a>, -<a href="phenote/0.9/phenote-zfin.jnlp">0.9-zfin</a>, -<a href="http://165.124.152.194/web/html/interface.html">DictyBase -webby phenote</a><br> - - - -11.09.2006, version 0.9<br> - - - -<ul> - - - - <li>feature: Undo - can step backward through previous actions</li> - - <li>feature: Quartz scheduler used to schedule when to check for new obo files. Added by Christian Pich of Zfin. [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1588669&group_id=76834&atid=887913">1588669</a>]</li> - - <li>change: upgraded PhenoteServlet to Spring framework. Added by Christian Pich [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1588670&group_id=76834&atid=887913">1588670</a>]</li> - - <li>feature: Synonyms are displayed from autocomplete with [syn]; when -selected the term name (not the synonym) goes into the field and table (webby & standalone)</li> - - <li>feature: obsoletes are displayed from autocomplete with [obs]</li> - - <li>feature: Bulk update & copy in standalone. [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1579885&group_id=76834&atid=887913">1579885</a>, <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1579882&group_id=76834&atid=887913">1579882</a>] </li> - - <li>change: search types interface changed from radio buttons to checkboxes (j. balhoff)</li> - - <li>bugfix: file-save button changed to say "save" not "load"</li> - - <li>feature: file-save recognizes and chooses appropriate data -adapter based on file extension (.psx for phenosyntax and .xml for -phenoxml)</li> - - <li>change: Single quotes escaped for javascript fns.</li> - -</ul> - - - -<h2>0.8 -<hr></h2> - - -10.02.2006, version <a href="phenote/0.8/phenote-flybase.jnlp">0.8-fly</a>, -<a href="phenote/0.8/phenote-zfin.jnlp">0.8-zfin</a>, -<a href="http://165.124.152.194/web/html/interface.html">DictyBase -webby phenote</a><br> - - - -<ul> - - <li>feature: Added post composition to standalone phenote. </li> - - <li>feature: Actions are logged for both webby/servlet & standalone.</li> - - <li>feature: Pheno-xml reader (thanks to Jim Balhoff) and improvements to pheno-xml -writer (does pub & genetic context)</li> - - <li> feature: Command line reading & writing of phenoxml & phenosyntax.</li> - - <li>feature: Application exits on window exit (unless servlet)</li> - - <li>feature: Can filter out stage terms from zfin anatomy</li> - -</ul> - - - - -<h2>0.7 -<hr></h2> - - - -08.23.2007, version <a href="phenote/0.7/phenote-flybase.jnlp">0.7-fly.</a>, -<a href="0.7/phenote-zfin.jnlp">0.7-zfin</a><br> - - - -<ul> - - - - <li>feature: entity chooser (web)</li> - - <li>feature: can configure to check for new obo files and load -them. (These are installed at zfin, if anyone would like to see them -publicly let me know).</li> - - <li>feature: entity field and term info installed into zfin (web) -phenotype site. Term info & completion are scrollable.</li> - - <li>feature: standalone version can read & write pheno-syntax with ids & term names in comments</li> - - <li>feature: standalone entity chooser</li> - - <li>feature: added pub field</li> - - <li>feature: added 'use term' button in term info</li> - - <li>feature: can sort table by any field in forward order by clicking on headers</li> - - <li>change: personal config file gets copied out of jar</li> - - <li>change: directory for file load/save remembered</li> - - <li>change: layout fixed</li> - - <li>bugfix: paste for mac fixed</li> - -</ul> - - - -<h2>0.6 -<hr></h2> - - - -07.28.2006, version <a href="phenote/0.6/phenote-flybase.jnlp">0.6-fly</a>, <a href="phenote/0.6/phenote-zfin.jnlp">0.6-zfin</a>, -<a href="http://reaper.lbl.gov/phenote/html/ncbo.html">Webby Phenote -(0.6)</a><br> - - - -<ul> - - - - <li>new: webbified phenote. This is in its extremely early stages -(very little functionality and buggy). At this point it only does -Entity and Quality fields and term info and thats it, and even thats -buggy, but more coming soon! </li> - - <li> feature: writing pheno-xml format, and uses the latest -PATO ontology (as of July 28, 2006).</li> - -</ul> - - - -<h2>0.5 -<hr></h2> - - - -05.12.2006, version <a href="phenote/0.5/phenote-flybase.jnlp">0.5-FlyBase</a>, <a href="phenote/0.5/phenote-zfin.jnlp">0.5-ZFIN</a><br> - - - -<p> -No new additions to the gui here. In preparation for my visit to -Cambridge/FlyBase, I worked on a FlyBase dataadapter. This is phenote -first data adapter so I also laid down the foundations for data -adapters. The FlyBase data adapter simply cuts and pastes phenotype -character objects to the system clipboard. The idea is that FlyBase's -Proforma java application will also cut and paste to the clipboard. -This is a simple way to pass objects between applications, to get us -off the ground. Proforma is not there yet so this has not been -tested yet with Proforma, but it works in the test suite. Added special -FlyBase character wrappers that do the parsing and creating of Proforma -character strings.</p> - - - - -<h2>0.4 -<hr></h2> - - - -04.26.2006, version <a href="phenote/0.4/phenote-flybase.jnlp">0.4-flybase</a>, <a href="phenote/0.4/phenote-zfin.jnlp">0.4-zfin</a><br> - - -<ul> - - <li>feature: Added Genetic Context field.</li> - - <li>feature: Parent & child terms in term info are now clickable/navigable.</li> - - <li>feature: HTML Links in descriptions are clickable (should bring up default browser)</li> - - <li>feature: configuration files to configure ontologies & fields. This is -currently at a devloper level (xml file) not a user level(gui - todo). -There is a command line argument for which configuration file to use. -This allows for having separate zf & fb releases without having to -change the code to do it (like was done for the ctol release). The -configuration for now is for developers (internal xml file), on the -todo is to have a gui configuration for users.</li> - - <li>bugfix: can't delete to 0 rows</li> - - <li>bugfix: synonym search duplicates removed</li> - - <li>Development: Refactored for configuration & adding field. -Made the internal code much more generic for adding new fields from -configuration, got rid of a lot of hard wiring. Part of this was -instituring model-view-controller in some places where views were -improperly talking to other views. In theory this should also make it -easier to plop a web gui on top of the current phenote model & -controller.</li> - - <li>Development: Renamed Phenotype to Character. Added Character interface CharacterI.</li> - - <li>Development: Added tests to test suite.</li> - -</ul> - - - - -<h2>0.3 -<hr></h2> - - - -04.07.2006, version <a href="phenote/0.3/phenote-webstart.jnlp">0.3</a>, <a href="phenote/0.3.1/phenote-webstart.jnlp">0.3.1 (for CToL)</a><br> - - - -<p>Note: 0.3.1 is identical to 0.3 except that it has ontologies for CToL -(fish evolution group). In particular it uses a fish taxonomy<br> - - - -ontology for the id (in this taxonomy) choosing. On the todo is the -ability to configure ontologies, but not there yet, so for now need to -hardwire with seaparate jar file. This clearly makes the todo item a -bit more pressing.</p> - - - -<p> Release for NESCent fish eveolution meeting. No major new functionality -here. Cleaned up and fixed a lot of the bugs in 0.2, which was rather -buggy.</p> - - - -<ul> - - <li>feature: Completion terms now sorted alphabeitcally.</li> - - <li>feature: Obsoletes are now in addition to regular terms, not in lieu of.</li> - - <li>feature: Filtering out attribute values (todo: change to actually filter in -values)</li> - - <li>change: Html formatting of term info (todo: make terms selectable)</li> - - <li>feature: Children relations are in term info</li> - - <li>change: Term info layout greatly improved</li> - - <li>change: Term info in scroller</li> - - <li>change: Border with label around term info</li> - - <li>change: Put definition at end of term info</li> - - <li>bugfix: Backspace in ontology combo box</li> - - <li>bugfix: Selection of item in comp list causing exception, not going in term box</li> - - <li>bugfix: No terms with just 1 char</li> - - <li>bugfix: Popup was staying up after selection</li> - - <li>development: Test suite added! (todo: add more tests)</li> - - <li>development: Migrated to jdk 1.5 (which caused some of the bugs above)</li> - - <li>development: Ant file made build.xml.</li> - - <li>development: CompletionList refactored into Ontology (prompted by sorting)</li> - -</ul> - - - - -<h2>0.2 -<hr></h2> - - - -03.27.2006, version <a href="phenote/0.2/phenote-webstart.jnlp">0.2</a><br> - - - -<ul> - - <li>feature: term completion on Synonyms, Definitions and Obsoletes</li> - - <li>feature: mouse-over on term in completion list displays info in 'term info' text area</li> - - <li>Todo: layout, scrollbar, border w title, ordering & lumping -parents -& children, formatting. Also perhaps have children & parents be -clickable in some fashion either html-like clickable text or as buttons.</li> - - <li>known bugs: If you hit backspace in term completion fields it gets wacky </li> - -</ul> - - - -<h2>0.1 -<hr></h2> - - - -03.01.2006, version <a href="phenote/0.1/phenote-webstart.jnlp">0.1</a><br> - - - -<p> 0.1 was the initial phenote release (known briefly as the plumper at -the time). It just had a genotype, anatomy and pato fields, where -anatomy and pato did term completion (just on term names) with there -ontologies in a drop down list. There was also the phenotype table that -tracked phenotype instances being edited in the above fields. This very -limited functionality was demo'd at the cbio meeting 3/3/06 at Stanford.</p> - - -</body> -</html> Copied: phenote/trunk/doc/phenote-website/phenote-release-notes.shtml (from rev 912, phenote/trunk/doc/phenote-website/release-notes.shtml) =================================================================== --- phenote/trunk/doc/phenote-website/phenote-release-notes.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/phenote-release-notes.shtml 2007-09-17 23:43:28 UTC (rev 914) @@ -0,0 +1,579 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + <div class="catch_phrase"> + Phenote Release Notes + </div> + + <h1>1.4 </h1> + <h2>08.28.2007, version <a href="phenote/1.4-beta3/phenote.jnlp">1.4-beta3</a></h2> + <ul> + <li>feature: Native look-and-feel enabled for interface. Users should now see Mac or Windows style depending on their system.</li> + <li>feature: read-only field (needs work)</li> + <li>feature: config disabling of copy of field (for db ids)</li> + <li>feature: display property values of terms in term info</li> + <li>feature: Phylogeny Chooser for NESCent/PhenoMap project. A user can import a phylogenetic tree in Newick format. The user can use the tree + viewer to select rows within the character template - typically taxonomic groups.</li> + <li>feature: term fields can be nullified</li> + <li>feature: separate queries to backend for different groups, implemented in worm</li> + <li>feature: ID field type, requires ":"</li> + <li>feature: can get unique list of deleted annots</li> + <li>feature: added group adapter framework</li> + <li>feature: fly genotype group adapter makes fly genotype strings from tab/group</li> + <li>feature: worm group adapter makes reference terms from ref query</li> + <li>change: on term completion if adding a letter use previous completion list</li> + <li>change: worm adapter query tab working properly</li> + <li>change: build file takes param for webstart version deployment, and puts in jnlp</li> + <li>change: group adapters can listen for CharList changes</li> + <li>change: added/corrected birn ontologies</li> + <li>bugfix: load of file doesnt crash on post comp parsing bug</li> + <li>bugfix: doesnt load obo files specified twice twice</li> + <li>bugfix: view menu show up at initialization</li> + <li>bugfix: layout of term history with split pane proper</li> +</ul> + +<h2>07.20.2007, version <a href="phenote/1.4-beta2/phenote.jnlp">1.4-beta2</a></h2> + +<ul> + + <li>feature: RESTful data input for BIRN's smart atlas</li> + + <li>feature: Character Template for NESCent/CToL (Jim Balhoff). This +is an additional window which edits a separate list of characters using +a subset of the fields in the main window. The fields to include are +denoted by a group in the config file. This functionality will be used +by the PhenoMap project to create a specimen list. The same EQ +statement can be applied to many specimens at once by selecting the +relevant specimens and generating characters in the main window with +the template fields pre-filled. All the new characters are selected and +can then be bulk edited.</li> + + <li>feature: Progress on gui for config (in progress)</li> + + <li>feature: Progress on field groups (genotype maker, pub querying...)</li> + + <li>feature: right-click editing functions for free-text fields in data input frame. right-click copy in table.</li> + + <li>feature: incorporation of help documentation into Phenote under menu item Help->PhenoteHelp </li> + + <li>feature: added plant_grammene.cfg configuration, plus appropriate obo files.</li> + + <li>feature: navigation bar added to top of term info; buttons to traverse worn paths; term name moved up to top of box [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1685540&group_id=76834&atid=887913">1685540</a>]</li> + + <li>feature: dbxrefs are listed in term info (no external links yet) [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1739399&group_id=76834&atid=887913">1739399</a>]</li> + + <li>change: ontology files can be read with dangling references</li> + + <li>change: Command line read & write of .tab</li> + + <li>change: 'use term' button moved and replaced with checkmark button in navigation bar</li> + + <li>change: ncbo.cfg changed to always update from master file at url</li> + + <li>change: birn2.cfg gene_ontology replaced with gene_ontology_edit.obo reference</li> + + <li>change: Windows splash screen text edited from 'biomedial' to 'biomedical'</li> + + <li>bugfix: obsolete terms were not being read in from annotation files as Ontology.getTerm was only looking at non obsoleted terms</li> + + <li>known bug: ontology files using import statements not properly read</li> + +</ul> + + +<h2>version 1.4-beta1 - oops - skipped!</h2> + + + +<h1>1.3</h1> + + +<h2>05.24.2007, version <a href="phenote/1.3/phenote.jnlp">1.3 release</a></h2> + +<ul> + + <li>feature: <a href="http://www.phenote.org/help/">Web-based documentation and Help features.</a></li> + + <li>feature: Metadata fields added to configuration. User can name their configuration, add a description, and author [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1676756&group_id=76834&atid=887913">1676756</a>, <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1672080&group_id=76834&atid=887913">1672080</a>]</li> + + <li>feature: Descriptions can be added for fields </li> + + <li>feature: Master-to-local overwrite stuff</li> + + <li>feature: Dialog allows user to back out of exiting from File->Exit</li> + + <li>feature: Autocompletion search default settings configurable <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1677411&group_id=76834&atid=887913">1677411</a>, <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1669579&group_id=76834&atid=887913">1669579</a>] + </li> + + <li>feature: User can save search setting defaults if changed during Phenote session</li> + + <li>change: File->New is disabled until next version</li> + + <li>change: ncbo, zfin-standalone, flybase, demo configurations +modified to include master-overwrite feature; keeping track of revision +history in file comments </li> + + <li>change: can read http, https, ftp, ftps for ontology update URLs, not just http [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1718945&group_id=76834&atid=887913">1718945</a>]</li> + + <li>bugfix: Bulk-editing functions are working again</li> + + <li>bugfix: Undo wasn't working for several functions due to a bug in the Copy function [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1721044&group_id=76834&atid=887913"> 1721044</a>]</li> + + <li>bugfix: multi-select deletes free-text content replaces with * [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1721032&group_id=76834&atid=887913">1721032</a>]</li> + + <li>bugfix: pre 1.2 post comp data wasnt able to load<big> </big>[<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1721470&group_id=76834&atid=887913">1721470</a>]</li> + +</ul> + + + + +<h2>05.09.2007, version <a href="phenote/1.3-beta1/phenote.jnlp">1.3-beta1</a></h2> + + + +<ul> + + <li>feature: Added sample config for BIRN</li> + + <li>feature: Added SAO.obo ontology for BIRN</li> + + <li>feature: Namespace config writes back</li> + + <li>feature: Can specify more than one website for ontology update</li> + + <li>feature: Empty field shows all terms in ontology rather than none</li> + + <li>feature: Can add more differentia to post comp</li> + + <li>bugfix: Config update/merge bug where fields in wrong order fixed.</li> + + <li>known bug: can't read post-compositions from phenote versions 1.1 and prior</li> + +</ul> + + + + +<h1>1.2</h1> + +<h2>05.02.2007, version <a href="phenote/1.2/phenote.jnlp">1.2</a></h2> +<ul> + + <li>feature: Can post-compose with >2 terms </li> + + <li>feature: Term history display can be toggled on/off (Settings->Term History menu)</li> + + <li>feature: Synonyms delineated by scope in Term Info: Exact, +Narrow, Broad, General, Related. If the synonym category is given, it +is displayed. For example, the term 'water' has the <i>related</i> synonym H2O, which has the category of a chemical <i>formula</i>.</li> + + <li>feature: Obsolete replacements or consideration terms are displayed in term info with links</li> + + <li>feature: Display term comments in Term Info beneath relationships</li> + + <li>feature: Loading splash screen </li> + + <li>feature: Can configure by namespace for ontologies</li> + + <li>feature: Can automatically update ontologies during startup (configurable)</li> + + <li>feature: Timer added to configuration during ontology update check (configurable)</li> + + <li>feature: Can check which version of phenote is running by selecting Help->About.</li> + + <li>feature: Added common configuration for OMIM curation for use by NCBO (ncbo.cfg).</li> + + <li>feature: can forward and reverse sort columns by repeatedly clicking on column header [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1574916&group_id=76834&atid=887913">1574916</a>]</li> + + <li>feature: display ontology namespace in term info box [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1598048&group_id=76834&atid=887913">1598048</a>]</li> + + <li>change: Search filters moved into menu </li> + + <li>change: Updates to the zfin-standalone.cfg for the zebrafish community annotation; only includes GO and ZFanatomy ontologies. </li> + + <li>bugfix: Free-text field text not sticking in "new" or blank rows </li> + +</ul> + + + + +<h1>1.1</h1> + + + +<h2>04.06.2007, version <a href="phenote/1.1/phenote.jnlp">1.1.3</a></h2> + + +<ul> + + <li>feature: User can change the configuration they want to use at +initialization from file menu; change takes effect after restart. +(previously user had to edit the .phenote/conf/my-phenote file).</li> + +</ul> + + + +<h2>03.28.2007, version 1.1.1</h2> + +<ul> + + <li>feature: Phenote is now a single webstart app; user chooses +their configuration at startup (used to be hard wired to a +configuration)</li> + + <li>feature: Phenote will merge its default configuration with users' configuration, +preserving user changes as well as adding anything new from phenote +upgrade.</li> + + <li>feature: Beginnings of term history to display recently used ontology terms. Will be clickable in future.</li> + + <li>feature: Data entry panel will spill over into multiple tabs if >12 fields included</li> + + <li>feature: Tab delimited data adapter; data in/output format compatible with excel and other spreadsheet software [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1661778&group_id=76834&atid=887913">1661778</a>]</li> + + <li>feature: QueryableDataAdapter interface for developers; enables +connection between input fields and a database backend for quering. +Queryable fields get a retrieve button.</li> + + <li>feature: Autocompletion search with ALL ontologies in a field instead of just one [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1575241&group_id=76834&atid=887913">1575241</a>]</li> + + <li>feature: Retrieve ontology files from URL if more up to date or no local found; only from a single repository for all [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1648337&group_id=76834&atid=887913">1648337</a>, <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1574906&group_id=76834&atid=887913">1574906</a>]</li> + + <li>feature: fixed releases available for checkout via sourceforge [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1670345&group_id=76834&atid=887913">1670345</a>]</li> + + <li>feature: display xtns in load/save menu choices [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1594508&group_id=76834&atid=887913">1594508</a>]</li> + + <li>change: Refactored code for field guis</li> + + <li>change: Layout improved</li> + + <li>change: OBSOLETE is displayed in red next to obsolete term in term info [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1581589&group_id=76834&atid=887913">1581589</a>]</li> + + <li>change: human.cfg configuration to include obo foundary ontologies GO, SO, CL, ChEBI, PATO, OBI, Relations, unit, and spatial [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1633287&group_id=76834&atid=887913">1633287</a>]</li> + + <li>bugfix: Ontology chooser reflects current term</li> + + <li>bugfix: phenosyntax reader broken [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1684591&group_id=76834&atid=887913">1684591</a>]</li> + + <li>bugfix: post-composed terms not loading [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1661728&group_id=76834&atid=887913">1661728</a>]</li> + +</ul> + + + +<h1>1.0</h1> + + + +<h2>02.06.2007, version <a href="phenote/1.0/phenote-flybase.jnlp">1.0.5-fly</a>, <a href="1.0/phenote-zfin.jnlp">1.0.5-zfin</a></h2> + + + +<h2>01.12.2007, version1.0, +<a href="http://reaper.lbl.gov/phenote/html/ncbo.html">Webby +Phenote(components used by Zfin)</a></h2> + +<ul> + <li>change: refactoring of the data model to allow addition of any +field desired, not just E,Q,GC,GT,Pub. Stage, Evidence, Description, +Abnormal, and Absent have been added through this new mechanism in the +newest configurations. [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1574912&group_id=76834&atid=887913">1574912</a>]</li> + + <li>change: Webby phenote is now using JSP and Spring.</li> + + <li>change: There has been some recent work with UVictoria for ontology graph +visualization. This is coming along well and hopefully will be seen in +the next release.</li> + + <li>bugfix: absent fields not displaying in human 1.03 [<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1661973&group_id=76834&atid=887913">1661973</a>]</li> + +</ul> + + + +<h1>0.9</h1> + +<h2>11.15.2006, version <a href="phenote/0.9/phenote-flybase.jnlp">0.9-fly</a>, +<a href="phenote/0.9/phenote-zfin.jnlp">0.9-zfin</a>, +<a href="http://165.124.152.194/web/html/interface.html">DictyBase +webby phenote</a></h2> + +<h2>11.09.2006, version 0.9</... [truncated message content] |
From: <nl...@us...> - 2007-09-17 23:29:44
|
Revision: 913 http://obo.svn.sourceforge.net/obo/?rev=913&view=rev Author: nlw Date: 2007-09-17 16:29:46 -0700 (Mon, 17 Sep 2007) Log Message: ----------- for some reason this wasn't in here Added Paths: ----------- phenote/trunk/doc/phenote-website/ssi/head.html Added: phenote/trunk/doc/phenote-website/ssi/head.html =================================================================== --- phenote/trunk/doc/phenote-website/ssi/head.html (rev 0) +++ phenote/trunk/doc/phenote-website/ssi/head.html 2007-09-17 23:29:46 UTC (rev 913) @@ -0,0 +1,34 @@ +<meta http-equiv="Content-Type" + content="text/html; charset=iso-8859-1" /> +<meta name="description" + content="Phenote, + a phenotype annotation tool using ontologies." /> + +<link href="http://www.phenote.org/new/css/main.css" + media="all" + rel="Stylesheet" + type="text/css" /> +<link href="http://www.phenote.org/new/css/table.css" + media="all" + rel="Stylesheet" + type="text/css" /> +<link href="http://www.phenote.org/new/css/menu.css" + media="all" + rel="Stylesheet" + type="text/css" /> +<link href="http://www.phenote.org/new/css/detail.css" + media="all" + rel="Stylesheet" + type="text/css" /> +<link href="http://www.phenote.org/new/css/list.css" + media="all" + rel="Stylesheet" + type="text/css" /> +<link rel="shortcut icon" + href="http://www.phenote.org/images/elephant_icon.jpg" + type="image/x-icon" /> + +<script src="http://www.phenote.org/javascript/obfuscate.js" + type="text/javascript"></script> +<script src="http://www.phenote.org/new/js/menu.js" + type="text/javascript"></script> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-17 23:16:23
|
Revision: 912 http://obo.svn.sourceforge.net/obo/?rev=912&view=rev Author: nlw Date: 2007-09-17 16:16:26 -0700 (Mon, 17 Sep 2007) Log Message: ----------- moved the new site to the main page Modified Paths: -------------- phenote/trunk/doc/phenote-website/index.shtml phenote/trunk/doc/phenote-website/new/events.shtml phenote/trunk/doc/phenote-website/new/team.shtml phenote/trunk/doc/phenote-website/ssi/footer.html phenote/trunk/doc/phenote-website/ssi/header.html Added Paths: ----------- phenote/trunk/doc/phenote-website/LiteTemplate phenote/trunk/doc/phenote-website/about.shtml phenote/trunk/doc/phenote-website/about.shtml~ phenote/trunk/doc/phenote-website/contact.shtml phenote/trunk/doc/phenote-website/contact.shtml~ phenote/trunk/doc/phenote-website/coordination.shtml phenote/trunk/doc/phenote-website/css/detail.css phenote/trunk/doc/phenote-website/css/enhancer.css phenote/trunk/doc/phenote-website/css/list.css phenote/trunk/doc/phenote-website/css/main.css phenote/trunk/doc/phenote-website/css/main.css~ phenote/trunk/doc/phenote-website/css/menu.css phenote/trunk/doc/phenote-website/css/table.css phenote/trunk/doc/phenote-website/download.shtml phenote/trunk/doc/phenote-website/download.shtml~ phenote/trunk/doc/phenote-website/events.shtml phenote/trunk/doc/phenote-website/events.shtml~ phenote/trunk/doc/phenote-website/faq.shtml phenote/trunk/doc/phenote-website/faq.shtml~ phenote/trunk/doc/phenote-website/features.shtml phenote/trunk/doc/phenote-website/features.shtml~ phenote/trunk/doc/phenote-website/funding.shtml phenote/trunk/doc/phenote-website/funding.shtml~ phenote/trunk/doc/phenote-website/help.shtml phenote/trunk/doc/phenote-website/help.shtml~ phenote/trunk/doc/phenote-website/images/about_section.jpg phenote/trunk/doc/phenote-website/images/arrow.gif phenote/trunk/doc/phenote-website/images/arrow1_se.gif phenote/trunk/doc/phenote-website/images/back.gif phenote/trunk/doc/phenote-website/images/calendar.gif phenote/trunk/doc/phenote-website/images/document.gif phenote/trunk/doc/phenote-website/images/down.gif phenote/trunk/doc/phenote-website/images/email.gif phenote/trunk/doc/phenote-website/images/favicon.ico phenote/trunk/doc/phenote-website/images/favicon.xcf phenote/trunk/doc/phenote-website/images/minus.gif phenote/trunk/doc/phenote-website/images/nav_bg.gif phenote/trunk/doc/phenote-website/images/nihlogo.gif phenote/trunk/doc/phenote-website/images/obo.gif phenote/trunk/doc/phenote-website/images/obofoundry_logo.gif phenote/trunk/doc/phenote-website/images/obofoundry_logo.xcf phenote/trunk/doc/phenote-website/images/plus.gif phenote/trunk/doc/phenote-website/images/spacer.gif phenote/trunk/doc/phenote-website/images/star.gif phenote/trunk/doc/phenote-website/images/tools.gif phenote/trunk/doc/phenote-website/images/x.gif phenote/trunk/doc/phenote-website/index.shtml.~1.4.~ phenote/trunk/doc/phenote-website/index.shtml~ phenote/trunk/doc/phenote-website/js/ phenote/trunk/doc/phenote-website/js/enhancer.js phenote/trunk/doc/phenote-website/js/menu.js phenote/trunk/doc/phenote-website/js/obfuscate.js phenote/trunk/doc/phenote-website/old/ phenote/trunk/doc/phenote-website/ontologies.shtml phenote/trunk/doc/phenote-website/ontologies.txt phenote/trunk/doc/phenote-website/participate.shtml phenote/trunk/doc/phenote-website/related.shtml phenote/trunk/doc/phenote-website/related.shtml~ phenote/trunk/doc/phenote-website/relatedprojects.shtml phenote/trunk/doc/phenote-website/release-notes.shtml phenote/trunk/doc/phenote-website/release-notes.shtml~ phenote/trunk/doc/phenote-website/resources.shtml phenote/trunk/doc/phenote-website/resources.shtml~ phenote/trunk/doc/phenote-website/screenshots.shtml phenote/trunk/doc/phenote-website/screenshots.shtml~ phenote/trunk/doc/phenote-website/svn-commit.tmp phenote/trunk/doc/phenote-website/team.shtml phenote/trunk/doc/phenote-website/team.shtml~ phenote/trunk/doc/phenote-website/template.shtml phenote/trunk/doc/phenote-website/users.shtml phenote/trunk/doc/phenote-website/users.shtml~ Added: phenote/trunk/doc/phenote-website/LiteTemplate =================================================================== Added: phenote/trunk/doc/phenote-website/about.shtml =================================================================== --- phenote/trunk/doc/phenote-website/about.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/about.shtml 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,71 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + <div class="catch_phrase"> + About Phenote + </div> + + <p> + Phenote is both a complete piece of software and a software toolkit designed to facilitate the annotation of biological phenotypes using ontologies. It provides an interface to record genotype-phenotype pairs, together with the provenance for the annotation. Typical users of Phenote include literature curators, laboratory researchers, and clinicians looking for a method to record data in a user-friendly and computable way. + </p> + <p> + Data annotated with Phenote is based on the <a href="http://www.fruitfly.org/~cjm/obd/formats.html">EQ model</a> for representing phenotypes, combining entities from any ontology with qualities (such as PATO). + </p> + + <h3> + <a href="contact.shtml"> + Contact us + </a> + </h3> + <p> + Who to ask for assistance (and to complain to). + </p> + + <h3> + <a href="related.shtml"> + Related Projects + </a> + </h3> + <p> + Brief descriptions and links to projects who are relevant + to Phenote, ontologies, and annotation. + </p> + + <h3> + <a href="faq.shtml"> + Frequently Asked Questions (FAQs) + </a> + </h3> + <p> + Common questions about Phenote, ontologies, and annotation, + along with their answers. + </p> + + <h3> + <a href="events.shtml"> + Upcoming and Past Events + </a> + </h3> + <p> + A listing of upcoming and past events related to Phenote and + phenotype annotation, including presentations at meetings, + online workshops, user group meetings, etc. + </p> + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + + </body> +</html> Added: phenote/trunk/doc/phenote-website/about.shtml~ =================================================================== --- phenote/trunk/doc/phenote-website/about.shtml~ (rev 0) +++ phenote/trunk/doc/phenote-website/about.shtml~ 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,60 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + <div class="catch_phrase"> + About Phenote + </div> + + <p> + Phenote is both a complete piece of software and a software toolkit designed to facilitate the annotation of biological phenotypes using ontologies. It provides an interface to record genotype-phenotype pairs, together with the provenance for the annotation. Typical users of Phenote include literature curators, laboratory researchers, and clinicians looking for a method to record data in a user-friendly and computable way. + </p> + <p> + Data annotated with Phenote is based on the <a href="http://www.fruitfly.org/~cjm/obd/formats.html">EQ model</a> for representing phenotypes, combining entities from any ontology with qualities (such as PATO). + </p> + + <h3> + <a href="contact.shtml"> + Contact us + </a> + </h3> + <p> + Who to ask for assistance (and to complain to). + </p> + + <h3> + <a href="related.shtml"> + Related Projects + </a> + </h3> + <p> + Brief descriptions and links to projects who are relevant + to Phenote, ontologies, and annotation. + </p> + + <h3> + <a href="faq.shtml"> + Frequently Asked Questions (FAQs) + </a> + </h3> + <p> + Common questions about Phenote, ontologies, and annotation, + along with their answers. + </p> + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + + </body> +</html> Added: phenote/trunk/doc/phenote-website/contact.shtml =================================================================== --- phenote/trunk/doc/phenote-website/contact.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/contact.shtml 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,75 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + + <div class="catch_phrase"> + Contact Us + </div> + <h1>Email us</h1> + <p>Software Development: + <script type="text/javascript"> + obfuscate("berkeleybop.org", "mgibson", "Mark Gibson"); + </script></p> + <p>Requirements, Analysis, Documentation: + <script type="text/javascript"> + obfuscate("lbl.gov", "nlwashington", "Nicole Washington"); + </script></p> + <p>Phenotype EQ model and XML data formats: + <script type="text/javascript"> + obfuscate("berkeleybop.org", "cjm", "Chris Mungall"); + </script></p> + <p>General Questions: + <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-phenote", "Phenote Mailing List"); + </script></p> + <h1>Mailing lists</h1> + <p> There are several relevant mailing lists user's and/or developers + might be interested in joining:</p> + <p>General phenote discussion and announcements + [ <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-phenote", "Email"); + </script> ] + [ <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenote">Join</a> ]</p> + <p>Phenote software development + [ <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-phenote-dev", "Email"); + </script> ] + [ <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenote-dev">Join</a> ]</p> + <p>Phenotype annotation discussion list + [ <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-phenotype", "Email"); + </script> ] + [ <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenotype">Join</a> ]</p> + <p>General OBO ontology discussion + [ <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-discuss", "Email"); + </script> ] + [ <a href="https://lists.sourceforge.net/lists/listinfo/obo-discuss">Join</a> ]</p> + <p>General NCBO discussion + [ <script type="text/javascript"> + obfuscate("lists.stanford.edu", "cbio-everyone", "Email"); + </script> ]</p> + <h1>Reporting Bugs / Requesting Features</h1> + <p>If you come across problems during your use of Phenote software, + or there's a new feature you are dying to have, please use our + tracker on sourceforge to log your request: + <a href="https://sourceforge.net/tracker/?group_id=76834&atid=887913">Request Tracker</a></p> + + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + + </body> +</html> Added: phenote/trunk/doc/phenote-website/contact.shtml~ =================================================================== --- phenote/trunk/doc/phenote-website/contact.shtml~ (rev 0) +++ phenote/trunk/doc/phenote-website/contact.shtml~ 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,75 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + + <div class="catch_phrase"> + Contact Us + </div> + <h1>Email us</h1> + <p>Software Development: + <script type="text/javascript"> + obfuscate("berkeleybop.org", "mgibson", "Mark Gibson"); + </script></p> + <p>Requirements, Analysis, Documentation: + <script type="text/javascript"> + obfuscate("lbl.gov", "nlwashington", "Nicole Washington"); + </script></p> + <p>Phenotype EQ model and XML data formats: + <script type="text/javascript"> + obfuscate("berkeleybop.org", "cjm", "Chris Mungall"); + </script></p> + <p>General Questions: + <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-phenote", "Phenote Mailing List"); + </script></p> + <h1>Mailing lists</h1> + <p> There are several relevant mailing lists user's and/or developers + might be interested in joining:</p> + <p>General phenote discussion and announcements + [ <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-phenote", "Email"); + </script> ] + [ <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenote">Join</a> ]</p> + <p>Phenote software development + [ <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-phenote-dev", "Email"); + </script> ] + [ <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenote-dev">Join</a> ]</p> + <p>Phenotype annotation discussion list + [ <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-phenotype", "Email"); + </script> ] + [ <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenotype">Join</a> ]</p> + <p>General OBO ontology discussion + [ <script type="text/javascript"> + obfuscate("lists.sourceforge.org", "obo-discuss", "Email"); + </script> ] + [ <a href="https://lists.sourceforge.net/lists/listinfo/obo-discuss">Join</a> ]</p> + <p>General NCBO discussion + [ <script type="text/javascript"> + obfuscate("lists.stanford.edu", "cbio-everyone", "Email"); + </script> ]</p> + <h1>Reporting Bugs / Requesting Features</h1> + <p>If you come across problems during your use of Phenote software, + or there's a new feature you are dying to have, please use our + tracker on sourceforge to log your request: + <a href="https://sourceforge.net/tracker/?group_id=76834&atid=887913">Request Tracker</a></p> + + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + + </body> +</html> Added: phenote/trunk/doc/phenote-website/coordination.shtml =================================================================== --- phenote/trunk/doc/phenote-website/coordination.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/coordination.shtml 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,122 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Open Biomedical Ontologies Foundry</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + + <div class="catch_phrase"> + Coordination of the OBO Foundry + </div> + + <p> + The coordinators of the OBO Foundry are + <a href="http://www.gen.cam.ac.uk/Research/ashburner.htm"> + Michael Ashburner + </a> + (NCBO, GO), + <a href="http://www.berkeleybop.org/content/people/cjm/"> + Chris Mungall + </a> + (NCBO, GO, BBOP), + Suzanna Lewis + (NCBO, GO, BBOP), and + <a href="http://ontology.buffalo.edu/smith/"> + Barry Smith + </a> + (NCBO, ORG). + </p> + + <p> + The intention is to provide light-weight management, + although the growth of OBO may, in the future, necessitate a + more formal structure. It is appropriate to view these + people as facilitators who assist independent ontology + developers: by organizing meetings, making introductions + between different groups, offering comments when requested, + engaging in e-mail discussions, making resources available, + and other means. They work to ensure that the ontologies + being developed are mutually compatible, expandable, and + correctable in line with advances in biomedical + science. Ontologies are tools of communication, and their + utility rests on the network effects that come with wide + acceptance. Experience thus far confirms that adherence to + OBO principles is largely self-policing because of the + positive benefits that accrue to individual members. The + task of the OBO coordinators is to help to build this + community. + </p> + + <h1>Affiliations</h1> + + <h3> + <a href="http://bioontology.org/"> + National Center for Biomedical Ontology (NCBO) + </a> + </h3> + <p> + The NCBO is a consortium of leading biologists, clinicians, + informaticians, and ontologists who develop innovative + technology and methods that allow scientists to create, + disseminate, and manage biomedical information and knowledge + in machine-processable form. + </p> + + <h3> + <a href="http://org.buffalo.edu/"> + Ontology Research Group (ORG) + </a> + </h3> + <p> + The ORG is located in the New York State Center of + Excellence in Bioinformatics and Life Sciences + http://bioinformatics.buffalo.edu/ in Buffalo. It is engaged + in foundational ontology research and in biomedical ontology + development in the domain of biology and clinical + medicine. A special focus of research is electronic health + records. + </p> + + <h3> + <a href="http://www.geneontology.org"> + Gene Ontology (GO) + </a> + </h3> + <p> + The GO project provides a controlled voc abulary to describe + gene and gene product attributes in any organism. Members of + the GO Consortium supply annotations of gene products using + this vocabulary which can be viewed and downloaded via the + GO website. + </p> + <h3> + <a href="http://www.berkeleybop.org/"> + Berkeley Bioinformatics and Ontologies Project (BBOP) + </a> + </h3> + <p> + The BBOP is located at the Lawrence Berkeley National Labs, + is a diverse group of scientific researchers and software + engineers dedicated to developing tools and applying + computational technologies to solve biological + problems. Members of the group contribute to a number of + projects, including The Gene Ontology, The National Center + for Biomedical Ontology, and the Generic Model Organism + Database Project. + </p> + + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + + </body> +</html> Added: phenote/trunk/doc/phenote-website/css/detail.css =================================================================== --- phenote/trunk/doc/phenote-website/css/detail.css (rev 0) +++ phenote/trunk/doc/phenote-website/css/detail.css 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,17 @@ + +.detail td { + padding: 5px 10px 5px 10px; + font-size: 1em; + text-align: right; +} + +.detail td.data{ + width: 85%; + text-align: left; + background-color: #ccddcc; +} + +.detail td.data a:hover { + color: #ffffff; + background: #1b5c92 +} Added: phenote/trunk/doc/phenote-website/css/enhancer.css =================================================================== --- phenote/trunk/doc/phenote-website/css/enhancer.css (rev 0) +++ phenote/trunk/doc/phenote-website/css/enhancer.css 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,42 @@ +/* */ + +.browser a:hover, a:active { + color: #ffffff; + background-color: #444444; +} + +.browser a:link { + color: #660000; + text-decoration: none; +} + +.browser a:visited { + color: #888888; + text-decoration: none; +} + +.browser img { + border: 0; +} + +.browser a.page { + font-weight: bold; + color: #444444; +} + +.browser a:hover { + color: #ffffff; + background-color: #444444; +} + + +.browser ul { + padding: 0; + list-style-type: none; + margin: 2px 0 2px 15px; + font-size: 1.0em; +} + +.browser li { + margin: 0.2em 2px 0.2em 2px; +} Added: phenote/trunk/doc/phenote-website/css/list.css =================================================================== --- phenote/trunk/doc/phenote-website/css/list.css (rev 0) +++ phenote/trunk/doc/phenote-website/css/list.css 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,12 @@ + +.anEvenRow { + font-size: 110%; + padding: .33em; + background: #ccddcc; +} + +.anOddRow { + font-size: 110%; + padding: .33em; + background: #ffffff; +} Added: phenote/trunk/doc/phenote-website/css/main.css =================================================================== --- phenote/trunk/doc/phenote-website/css/main.css (rev 0) +++ phenote/trunk/doc/phenote-website/css/main.css 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,626 @@ +body { + margin: 0px 10px auto; + padding: 0px; + font-family: arial, "Lucida Grande", verdana, helvetica, sans-serif; + font-size: 12px; + color: #000; +/* background-color: #CEDEDA; */ +/* background-color: #EEEEDD; */ +/* background-color: #F9F8ED; */ + background-color: #FFF; + text-align: left; +/* width: 800px; */ +} + +/* Make sure the table cells show the right font */ +td { font-family: verdana, arial, helvetica, sans-serif; } + +a { + text-decoration: underline; + padding: 1px; +} +a:link { + color: #002699; +} +a:visited { + color: #002699; +} +a:hover { + text-decoration: none; +} + +a.image:link, a.image:visited, a.image:hover { + background: none; + padding: 0px; + border: none; +} + +a.image img { + border: none; +} + +p { + font-size: 12px; + line-height: 16px; +} + +small { + font-size: 10px; + line-height: 13px; +} + +x-small { + font-size: 9px; + line-height: 11px; +} + +blockquote { + font-size: 11px; + color: #666; + margin: 20px; +} + +ul li { +/* list-style-type: none; */ +} + +li { + font-size: 12px; + line-height: 13px; + padding: 3px 0px; +} + +li img { + padding-right: 3px; +} + +ul.events { + list-style-type: none; + padding: 0px; + margin: 0px; +} + +li.events { + font-size: 12px; +} + +h1 { + padding: 0px; + border-bottom: 1px solid #CEDEDA; + margin: 0px; + color: #033C63; + font-size: 16px; + font-weight: bold; + text-decoration: none; +} + +h1 a, h1 a:link, h1 a:visited { + color: #033C63; + text-decoration: none; +} + +h1 a:hover { + text-decoration: underline; +} + +h2, h2.bio { + margin: 20px 0px 5px 0px; + color: #033C63; + font-size: 14px; + padding: 0px; +} + +h2.bio { + border-bottom: 1px solid #CEDEDA; + margin-bottom: 15px; +} + +h2 a, h2 a:link, h2 a:visited { + color: #033C63; + text-decoration: none; +} + +h2 a:hover { + text-decoration: underline; +} + +h2.highlight { + margin: 0px 0px 0px 0px; + margin-bottom: 10px; +} + +h3, h3.bio { + color: #033C63; + font-size: 12px; + padding: 0px; +} + +h3.bio { + color: #426D8A; + margin: 20px 0px 0px 0px; + border-bottom: 1px solid #CEDEDA; + margin-bottom: 10px; +} + +h3.highlight { + margin: 0px 0px 0px 0px; + margin-bottom: 10px; +} + +.smallnote { + font-size: 10px; + color: #999; + font-weight: normal; +} + +#container { + background: #fff; +/* border-right: 1px solid #666; */ +/* border-left: 1px solid #666; */ + width: 100%; +} + +#content { + padding: 10px; +} + +#header{ +/* background: #fff url(../images/cbio_logo.gif) no-repeat 5px 5px; */ + padding: 5px; + margin: 0px; + text-align: left; + height: 60px; +/* position: relative; */ +} + +#header span#floatright { + padding: 35px 5px 0px 0px; + font-size: 11px; + font-weight: normal; + text-align: right; +/* width: 200px; */ + position: relative; + float: right; +} + +#header.image a:link, #header.image a:visited, #header.image a:hover { + background: none; + padding: 0px; +} + +#header.image img { + border: none; +} + +#nav ul +{ + padding: 0; + margin: 0; + background: #033C63 url(../images/nav_bg.gif) repeat-x 0px 0px; + color: #fff; + float: left; + width: 100%; +} + +#nav ul li { + display: inline; + list-style-type: none; + } + +#nav ul li a +{ + font-size: 12px; + padding: 0.6em 1em; +/* background-color: #000; */ + color: #fff; + text-decoration: none; + float: left; +/* border-right: 1px solid #fff; */ +} + +#nav ul li a:hover +{ + background-color: #1B5C92; + color: #fff; +} + +#nav .selected a, #nav .selected a:hover { +/* background-color: #1B5C92; */ + background-color: #1B5C92; + color: #fff; + font-weight: bold; + text-decoration: none; +} + +div.nav_empty +{ + padding: 0px; + margin: 0px; + border: none; + color: #1c2b48; + background-color: #033C63; + height: 5px; + font-size: 1px; + line-height: 0; + width: 100%; +} + +#subnav ul +{ + padding: 0; + margin: 0; +/* background-color: #69A263; */ +/* background-color: #73AFB7; */ + background-color: #CCDDCC; + color: #033C63; + float: left; + width: 100%; +} + +#subnav ul li { + display: inline; + list-style-type: none; +} + +#subnav ul li a +{ + font-size: 11px; + padding: 0.4em 1.2em; +/* background-color: #5F9F04; */ + background-color: #CCDDCC; + color: #033C63; + text-decoration: none; + float: left; +} + +#subnav ul li a:hover +{ + background-color: #CCDDCC; + text-decoration: underline; + color: #033C63; +} + +#subnav .selected a, #subnav .selected a:hover { + background-color: #CCDDCC; + color: #033C63; + font-weight: bold; + text-decoration: none; +} + + +div.subnav_empty +{ + padding: 0px; + margin: 0px; + border: none; + color: #1c2b48; + background-color: #CCDDCC; + height: 5px; + font-size: 1px; + line-height: 0; + width: 100%; +} + +.clearall { + padding: 0px; + clear: both; + font-size: 0px; +} + +.clear { + clear: both; +} + +#footer { + border-top: 1px #ccc solid; + padding: 10px; +/* margin-top: 10px; */ + font-size: 90%; + text-align: center; +} + +#breadcrumbs { + padding-bottom: 10px; + font-size: 90%; +} + +.separator { + border-top: 1px solid #ccc; +} + +#main_container { + float: left; + width: 65%; + text-align: left; + border-right: 1px solid #ccc; +} + +#main_content { + padding: 10px; +} + +#main_container_aux { + float: left; + width: 80%; + text-align: left; + margin-left: 10%; +} + +#main_content_aux { + padding: 10px; +} + +#main_container_aux p, #main_container_aux h3 { + font-size: 120%; +} + +#sidebar_container { +/* border-left: 1px solid #ccc; */ + float: left; + width: 33%; + text-align: left; +} + +#sidebar_content { + padding: 10px; +} + +#sidebar_content h2 { + margin: 0px 0px 5px 0px; +} + +#content .half { + float: left; + width: 49%; + text-align: left; + margin: 0 0 12px 0; +} + +#content .full_bio { + float: left; + text-align: center; + margin: 0 0 12px 0; +} + +#content .half_bio { + float: left; + width: 49%; + text-align: center; + margin: 0 0 12px 0; +} + +#content .third_bio { + float: left; + width: 33%; + text-align: center; + margin: 0 0 12px 0; +} + +#content .fourth_bio { + float: left; + width: 24%; + text-align: center; + margin: 0 0 12px 0; +} + +#content .full_bio p, #content .half_bio p, #content .third_bio p, #content .fourth_bio p { + margin: 0; + padding: 0 10px; +} + +#content .full_bio img, #content .half_bio img, #content .third_bio img, #content .fourth_bio img { + border: 1px solid #999; + margin: 2px; + padding: 5px; +} + +.content_box_head_green { +/* border-top: 1px solid #AABBAA; */ + border-top: 1px solid #A9C6A9; + border-right: 1px solid #A9C6A9; + border-left: 1px solid #A9C6A9; +/* background: #CCDDA5; */ + background-color: #A9C6A9; + font-weight: bold; + font-size: 12px; + color: #033C63; + line-height: 16px; + padding: 6px; +} + +.content_box_head_blue { + border-top: 1px solid #1B5C92; + border-right: 1px solid #1B5C92; + border-left: 1px solid #1B5C92; + background-color: #1B5C92; + font-weight: bold; + font-size: 12px; + color: #FFF; + line-height: 16px; + padding: 6px; +} + +.content_box_blue { + border: 1px solid #1B5C92; + border-top: 0px; + border-color: #1B5C92; + margin-bottom: 10px; + padding: 6px; +} + +.content_box_green { + border: 1px solid #A9C6A9; + border-top: 0px; + border-color: #A9C6A9; + margin-bottom: 10px; + padding: 6px; +} + + +.catch_phrase { + color: #1B5C92; + font-weight: bold; + font-size: 18px; + font-style: italic; + text-align: center; +} + +.centered_phrase { + text-align: center; + margin-top: 1em; + margin-bottom: .5em; +} + +.collage { + margin-top: 30px; + margin-bottom: 30px; + margin-right: auto; + margin-left: auto; + width: 400px; + text-align:center; + background-color: #CEDEDA; + border: 5px solid #A9C6A9; +} + +.featured_tools { + margin-top: 30px; +} + +.more { + text-align: right; + font-size: 11px; +} + +table.events { +/* width: 100%; */ +/* border-top: 1px solid #A9C6A9; */ +/* border-right: 1px solid #A9C6A9; */ + border-left: 1px solid #A9C6A9; +/* border-bottom: 1px solid #A9C6A9; */ + margin-top: 10px; +} + +th.events { + color: #033C63; + border-right: 1px solid #A9C6A9; + border-bottom: 1px solid #A9C6A9; + border-left: 1px solid #A9C6A9; + border-top: 1px solid #A9C6A9; + text-align: left; + background: #A9C6A9; +} + +td.events { + border-right: 1px solid #A9C6A9; + border-bottom: 1px solid #A9C6A9; + background: #FFF; +} + +td.events_alt { + border-right: 1px solid #A9C6A9; + border-bottom: 1px solid #A9C6A9; + background: #F5FAFA; +} + +img.section_head { + float: left; +} + +div.evts { + overflow: auto; +} + +.icon_green { + background-color: #A9C6A9; + background-image: url(../images/bg_rounded.gif); + background-repeat: no-repeat; + vertical-align:text-bottom; +} + +.icon_blue { + background-color: #1B5C92; + background-image: url(../images/bg_rounded.gif); + background-repeat: no-repeat; + vertical-align:text-bottom; +} + +.quick_link { + margin: 5px; +} + +.content_box_highlight { + border: 2px solid #A9C6A9; +/* border-color: #A9C6A9; */ + background-color: #EDF3F1; + margin-top: 10px; + margin-bottom: 10px; + padding: 6px; +} + +.screen_shot { + border: 3px solid #666; +} + +.search { + margin-bottom: 10px; +/* margin-top: 10px; */ +/* padding-top: 5px; */ + padding-bottom: 5px; + border-bottom: 1px dotted #1B5C92; +/* border-top: 1px dotted #1B5C92; */ + font-size: 11px; +} + +.search h1 { + font-size: 12px; + color: #1B5C92; + text-decoration: none; + border:none; + padding:0px; + margin:0px; +} + +a.highlight_text_yellow, a:hover.highlight_text_yellow, a:visited.highlight_text_yellow, a:active.highlight_text_yellow { + font-size: 24px; + color: #E9BA56; + text-decoration:none; + font-weight: bold; +} + +a.highlight_text_blue, a:hover.highlight_text_blue, a:visited.highlight_text_blue, a:active.highlight_text_blue { + font-size: 24px; + font-weight: bold; + color: #1B5C92; + text-decoration:none; +} + +a.highlight_normal, a:hover.highlight_normal, a:visited.highlight_normal, a:active.highlight_normal { + font-size: 24px; + font-weight: normal; + color: #000000; + text-decoration:none; +} + +h1.introduction { + padding: 0px; + margin: 0px; + border-bottom: 1px solid #CEDEDA; + font-size: 24px; + font-weight: bold; + color: #1B5C92; + text-decoration: none; +} + +.blue_divider hr { +display:none; +} + +.blue_divider { +border-bottom:1px solid #033C63; +height:1px; +} + + +.crit em{ + color: #009922; +} \ No newline at end of file Added: phenote/trunk/doc/phenote-website/css/main.css~ =================================================================== --- phenote/trunk/doc/phenote-website/css/main.css~ (rev 0) +++ phenote/trunk/doc/phenote-website/css/main.css~ 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,626 @@ +body { + margin: 0px 10px auto; + padding: 0px; + font-family: arial, "Lucida Grande", verdana, helvetica, sans-serif; + font-size: 12px; + color: #000; +/* background-color: #CEDEDA; */ +/* background-color: #EEEEDD; */ +/* background-color: #F9F8ED; */ + background-color: #FFF; + text-align: left; +/* width: 800px; */ +} + +/* Make sure the table cells show the right font */ +td { font-family: verdana, arial, helvetica, sans-serif; } + +a { + text-decoration: underline; + padding: 1px; +} +a:link { + color: #002699; +} +a:visited { + color: #002699; +} +a:hover { + text-decoration: none; +} + +a.image:link, a.image:visited, a.image:hover { + background: none; + padding: 0px; + color: #000000; +} + +a.image img { + border: none; +} + +p { + font-size: 12px; + line-height: 16px; +} + +small { + font-size: 10px; + line-height: 13px; +} + +x-small { + font-size: 9px; + line-height: 11px; +} + +blockquote { + font-size: 11px; + color: #666; + margin: 20px; +} + +ul li { +/* list-style-type: none; */ +} + +li { + font-size: 12px; + line-height: 13px; + padding: 3px 0px; +} + +li img { + padding-right: 3px; +} + +ul.events { + list-style-type: none; + padding: 0px; + margin: 0px; +} + +li.events { + font-size: 12px; +} + +h1 { + padding: 0px; + border-bottom: 1px solid #CEDEDA; + margin: 0px; + color: #033C63; + font-size: 16px; + font-weight: bold; + text-decoration: none; +} + +h1 a, h1 a:link, h1 a:visited { + color: #033C63; + text-decoration: none; +} + +h1 a:hover { + text-decoration: underline; +} + +h2, h2.bio { + margin: 20px 0px 5px 0px; + color: #033C63; + font-size: 14px; + padding: 0px; +} + +h2.bio { + border-bottom: 1px solid #CEDEDA; + margin-bottom: 15px; +} + +h2 a, h2 a:link, h2 a:visited { + color: #033C63; + text-decoration: none; +} + +h2 a:hover { + text-decoration: underline; +} + +h2.highlight { + margin: 0px 0px 0px 0px; + margin-bottom: 10px; +} + +h3, h3.bio { + color: #033C63; + font-size: 12px; + padding: 0px; +} + +h3.bio { + color: #426D8A; + margin: 20px 0px 0px 0px; + border-bottom: 1px solid #CEDEDA; + margin-bottom: 10px; +} + +h3.highlight { + margin: 0px 0px 0px 0px; + margin-bottom: 10px; +} + +.smallnote { + font-size: 10px; + color: #999; + font-weight: normal; +} + +#container { + background: #fff; +/* border-right: 1px solid #666; */ +/* border-left: 1px solid #666; */ + width: 100%; +} + +#content { + padding: 10px; +} + +#header{ +/* background: #fff url(../images/cbio_logo.gif) no-repeat 5px 5px; */ + padding: 5px; + margin: 0px; + text-align: left; + height: 60px; +/* position: relative; */ +} + +#header span#floatright { + padding: 35px 5px 0px 0px; + font-size: 11px; + font-weight: normal; + text-align: right; +/* width: 200px; */ + position: relative; + float: right; +} + +#header.image a:link, #header.image a:visited, #header.image a:hover { + background: none; + padding: 0px; +} + +#header.image img { + border: none; +} + +#nav ul +{ + padding: 0; + margin: 0; + background: #033C63 url(../images/nav_bg.gif) repeat-x 0px 0px; + color: #fff; + float: left; + width: 100%; +} + +#nav ul li { + display: inline; + list-style-type: none; + } + +#nav ul li a +{ + font-size: 12px; + padding: 0.6em 1em; +/* background-color: #000; */ + color: #fff; + text-decoration: none; + float: left; +/* border-right: 1px solid #fff; */ +} + +#nav ul li a:hover +{ + background-color: #1B5C92; + color: #fff; +} + +#nav .selected a, #nav .selected a:hover { +/* background-color: #1B5C92; */ + background-color: #1B5C92; + color: #fff; + font-weight: bold; + text-decoration: none; +} + +div.nav_empty +{ + padding: 0px; + margin: 0px; + border: none; + color: #1c2b48; + background-color: #033C63; + height: 5px; + font-size: 1px; + line-height: 0; + width: 100%; +} + +#subnav ul +{ + padding: 0; + margin: 0; +/* background-color: #69A263; */ +/* background-color: #73AFB7; */ + background-color: #CCDDCC; + color: #033C63; + float: left; + width: 100%; +} + +#subnav ul li { + display: inline; + list-style-type: none; +} + +#subnav ul li a +{ + font-size: 11px; + padding: 0.4em 1.2em; +/* background-color: #5F9F04; */ + background-color: #CCDDCC; + color: #033C63; + text-decoration: none; + float: left; +} + +#subnav ul li a:hover +{ + background-color: #CCDDCC; + text-decoration: underline; + color: #033C63; +} + +#subnav .selected a, #subnav .selected a:hover { + background-color: #CCDDCC; + color: #033C63; + font-weight: bold; + text-decoration: none; +} + + +div.subnav_empty +{ + padding: 0px; + margin: 0px; + border: none; + color: #1c2b48; + background-color: #CCDDCC; + height: 5px; + font-size: 1px; + line-height: 0; + width: 100%; +} + +.clearall { + padding: 0px; + clear: both; + font-size: 0px; +} + +.clear { + clear: both; +} + +#footer { + border-top: 1px #ccc solid; + padding: 10px; +/* margin-top: 10px; */ + font-size: 90%; + text-align: center; +} + +#breadcrumbs { + padding-bottom: 10px; + font-size: 90%; +} + +.separator { + border-top: 1px solid #ccc; +} + +#main_container { + float: left; + width: 65%; + text-align: left; + border-right: 1px solid #ccc; +} + +#main_content { + padding: 10px; +} + +#main_container_aux { + float: left; + width: 80%; + text-align: left; + margin-left: 10%; +} + +#main_content_aux { + padding: 10px; +} + +#main_container_aux p, #main_container_aux h3 { + font-size: 120%; +} + +#sidebar_container { +/* border-left: 1px solid #ccc; */ + float: left; + width: 33%; + text-align: left; +} + +#sidebar_content { + padding: 10px; +} + +#sidebar_content h2 { + margin: 0px 0px 5px 0px; +} + +#content .half { + float: left; + width: 49%; + text-align: left; + margin: 0 0 12px 0; +} + +#content .full_bio { + float: left; + text-align: center; + margin: 0 0 12px 0; +} + +#content .half_bio { + float: left; + width: 49%; + text-align: center; + margin: 0 0 12px 0; +} + +#content .third_bio { + float: left; + width: 33%; + text-align: center; + margin: 0 0 12px 0; +} + +#content .fourth_bio { + float: left; + width: 24%; + text-align: center; + margin: 0 0 12px 0; +} + +#content .full_bio p, #content .half_bio p, #content .third_bio p, #content .fourth_bio p { + margin: 0; + padding: 0 10px; +} + +#content .full_bio img, #content .half_bio img, #content .third_bio img, #content .fourth_bio img { + border: 1px solid #999; + margin: 2px; + padding: 5px; +} + +.content_box_head_green { +/* border-top: 1px solid #AABBAA; */ + border-top: 1px solid #A9C6A9; + border-right: 1px solid #A9C6A9; + border-left: 1px solid #A9C6A9; +/* background: #CCDDA5; */ + background-color: #A9C6A9; + font-weight: bold; + font-size: 12px; + color: #033C63; + line-height: 16px; + padding: 6px; +} + +.content_box_head_blue { + border-top: 1px solid #1B5C92; + border-right: 1px solid #1B5C92; + border-left: 1px solid #1B5C92; + background-color: #1B5C92; + font-weight: bold; + font-size: 12px; + color: #FFF; + line-height: 16px; + padding: 6px; +} + +.content_box_blue { + border: 1px solid #1B5C92; + border-top: 0px; + border-color: #1B5C92; + margin-bottom: 10px; + padding: 6px; +} + +.content_box_green { + border: 1px solid #A9C6A9; + border-top: 0px; + border-color: #A9C6A9; + margin-bottom: 10px; + padding: 6px; +} + + +.catch_phrase { + color: #1B5C92; + font-weight: bold; + font-size: 18px; + font-style: italic; + text-align: center; +} + +.centered_phrase { + text-align: center; + margin-top: 1em; + margin-bottom: .5em; +} + +.collage { + margin-top: 30px; + margin-bottom: 30px; + margin-right: auto; + margin-left: auto; + width: 400px; + text-align:center; + background-color: #CEDEDA; + border: 5px solid #A9C6A9; +} + +.featured_tools { + margin-top: 30px; +} + +.more { + text-align: right; + font-size: 11px; +} + +table.events { +/* width: 100%; */ +/* border-top: 1px solid #A9C6A9; */ +/* border-right: 1px solid #A9C6A9; */ + border-left: 1px solid #A9C6A9; +/* border-bottom: 1px solid #A9C6A9; */ + margin-top: 10px; +} + +th.events { + color: #033C63; + border-right: 1px solid #A9C6A9; + border-bottom: 1px solid #A9C6A9; + border-left: 1px solid #A9C6A9; + border-top: 1px solid #A9C6A9; + text-align: left; + background: #A9C6A9; +} + +td.events { + border-right: 1px solid #A9C6A9; + border-bottom: 1px solid #A9C6A9; + background: #FFF; +} + +td.events_alt { + border-right: 1px solid #A9C6A9; + border-bottom: 1px solid #A9C6A9; + background: #F5FAFA; +} + +img.section_head { + float: left; +} + +div.evts { + overflow: auto; +} + +.icon_green { + background-color: #A9C6A9; + background-image: url(../images/bg_rounded.gif); + background-repeat: no-repeat; + vertical-align:text-bottom; +} + +.icon_blue { + background-color: #1B5C92; + background-image: url(../images/bg_rounded.gif); + background-repeat: no-repeat; + vertical-align:text-bottom; +} + +.quick_link { + margin: 5px; +} + +.content_box_highlight { + border: 2px solid #A9C6A9; +/* border-color: #A9C6A9; */ + background-color: #EDF3F1; + margin-top: 10px; + margin-bottom: 10px; + padding: 6px; +} + +.screen_shot { + border: 3px solid #666; +} + +.search { + margin-bottom: 10px; +/* margin-top: 10px; */ +/* padding-top: 5px; */ + padding-bottom: 5px; + border-bottom: 1px dotted #1B5C92; +/* border-top: 1px dotted #1B5C92; */ + font-size: 11px; +} + +.search h1 { + font-size: 12px; + color: #1B5C92; + text-decoration: none; + border:none; + padding:0px; + margin:0px; +} + +a.highlight_text_yellow, a:hover.highlight_text_yellow, a:visited.highlight_text_yellow, a:active.highlight_text_yellow { + font-size: 24px; + color: #E9BA56; + text-decoration:none; + font-weight: bold; +} + +a.highlight_text_blue, a:hover.highlight_text_blue, a:visited.highlight_text_blue, a:active.highlight_text_blue { + font-size: 24px; + font-weight: bold; + color: #1B5C92; + text-decoration:none; +} + +a.highlight_normal, a:hover.highlight_normal, a:visited.highlight_normal, a:active.highlight_normal { + font-size: 24px; + font-weight: normal; + color: #000000; + text-decoration:none; +} + +h1.introduction { + padding: 0px; + margin: 0px; + border-bottom: 1px solid #CEDEDA; + font-size: 24px; + font-weight: bold; + color: #1B5C92; + text-decoration: none; +} + +.blue_divider hr { +display:none; +} + +.blue_divider { +border-bottom:1px solid #033C63; +height:1px; +} + + +.crit em{ + color: #009922; +} \ No newline at end of file Added: phenote/trunk/doc/phenote-website/css/menu.css =================================================================== --- phenote/trunk/doc/phenote-website/css/menu.css (rev 0) +++ phenote/trunk/doc/phenote-website/css/menu.css 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,68 @@ +/* + * Menu based on the incredible suckerfish: + * http://www.htmldog.com/articles/suckerfish/ + */ + +#menu ul { + width: 100%; + background: #033c63 url(../images/nav_bg.gif) repeat-x 0px 0px; + color: #ffffff; + float: left; + list-style: none; + padding: 0; /* Remove any previous setting */ + padding-top: .33em; + padding-bottom: .33em; + margin: 0 0 0 0; /* Remove any previous setting */ + /*border-width: 1px 0;*/ + /*line-height: 1;*/ + /*font-weight: bold;*/ + /*border: solid #eda;*/ + /*margin: 0 0 1em 0;*/ +} + +#menu a { + display: block; + width: 10em; + w\idth: 6em; /* IE 6 box hack */ + color: #ffffff; + text-decoration: none; + padding: 0.25em 2em; +} + +#menu li { + float: left; + padding: 0; + width: 10em; +} + +#menu li ul { + background: #033c63; /* Remove the background image from sub-menu */ + position: absolute; + left: -999em; + height: auto; + width: 14.4em; + w\idth: 13.9em; /* IE 6 box hack */ + /*font-weight: normal;*/ + /*border-width: 0.25em;*/ + margin: 0; +} + +#menu li li { + padding-right: .9em; + width: 13em +} + +#menu li ul a { + width: 13em; + w\idth: 9em; /* IE 6 box hack */ +} + +#menu li:hover ul, +#menu li.pseudohover ul { + left: auto; +} + +#menu li:hover, +#menu li.pseudohover { + background: #1b5c92; +} Added: phenote/trunk/doc/phenote-website/css/table.css =================================================================== --- phenote/trunk/doc/phenote-website/css/table.css (rev 0) +++ phenote/trunk/doc/phenote-website/css/table.css 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,49 @@ + + +.themeTable td { + font-size: .9em; + text-align: left; + padding: 2px; +} + +.themeTable th { + font-size: 1em; + text-align: center; + background: #ffffff; + border-width: 2px 0 2px 0; + border-style: solid; + border-color: #1b5c92; +} + +.themeTable th a { + display: block; + padding: 3px; +} + +.themeTable th a:hover { + color: #ffffff; + background: #444444; +} + +.themeTable TH a:link, +th a:visited { + color: #444444; +} + +.themeTable td.evenRow { + background-color: #ccddcc; +} + +.themeTable td.oddRow { + background-color: #ffffff; +} + +.themeTable a:hover { + color: #ffffff; + background-color: #1b5c92; +} + +.themeTable th a:hover { + color: #ffffff; + background-color: #1b5c92; +} Added: phenote/trunk/doc/phenote-website/download.shtml =================================================================== --- phenote/trunk/doc/phenote-website/download.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/download.shtml 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,92 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container"> + <div id="main_content"> + <div class="catch_phrase"> + </div> + <h2><a href="http://www.phenote.org/phenote/latest/phenote.jnlp">Launch Phenote in your browser</a></h2> + <p> You can run phenote directly from your web browser without a separate installation by selecting one of the following links:</p> + <ul><li><strong>Beta release: <a href="http://www.phenote.org/phenote/1.4-beta3/phenote.jnlp">1.4 beta3</a></strong></li> + <li><strong>Stable release: <a href="http://www.phenote.org/phenote/1.3/phenote.jnlp">1.3</a> </strong></li> + <li><a href="http://www.phenote.org/phenote/phenote.html">Older releases</a></li> + </ul> + <p> You may be prompted to sign a certificate and allow the download. This will take a few minutes the first time you do this. + </p> + <h2>Run Phenote at the command line</h2> + <p> To run phenote on the command line, linux or MacOSX users will need to checkout Phenote from the subversion repository. This can be done with the following command:</p> + <ul> + <li>Beta release: <b>svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/tags/1.4-beta3/ phenote</b> + </li> + <li>Stable release: <b>svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/tags/1.3/ phenote</b> + </li> + <li>Latest: <b>svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/trunk phenote </b> + </li> + </ul> + <p>Once you've got it, you can run Phenote with ant with the command: <b>ant run</b> + </p> + <h2>Hardware requirements</h2> + <ul> + <li> 400 Mhz processor or faster.</li> + <li> 500+ MB RAM </li> + <li> 200 MB free disk space on your computer </li> + <li> Internet connection (broadband is best). Required for automatic updates of ontologies and some functions. </li> + </ul> + <h2>Software requirements</h2> + <ul> + <li> PC running Windows XP; Mac OSX; Linux </li> + <li> Webstart: Internet browser with webstart installed </li> + <li> Command line: Java 1.5 or later; Ant </li> + </ul> + + </div> + </div> + + <div id="sidebar_container"> + + <div id="sidebar_content"> + + <div class="content_box_head_blue"> + Recently added features, version 1.4-beta3 + </div> + + <div class="content_box_blue"> + <b>feature</b>: Native look-and-feel enabled for interface. Users should now see Mac or Windows style depending on their system.<br /> + <b>feature</b>: read-only field (needs work)<br /> + <b>feature</b>: config disabpng of copy of field (for db ids)<br /> + <b>feature</b>: display property values of terms in term info<br /> + <b>feature</b>: Phylogeny Chooser for NESCent/PhenoMap project. A user can import a phylogenetic tree in Newick format. The user can use the tree + viewer to select rows within the character template - typically taxonomic groups.<br /> + <b>feature</b>: term fields can be nullified<br /> + <b>feature</b>: separate queries to backend for different groups, implemented in worm<br /> + <b>feature</b>: ID field type, requires ":"<br /> + <b>feature</b>: can get unique list of deleted annots<br /> + <b>feature</b>: added group adapter framework<br /> + <b>feature</b>: fly genotype group adapter makes fly genotype strings from tab/group<br /> + <b>feature</b>: worm group adapter makes reference terms from ref query<br /> + <b>change</b>: on term completion if adding a letter use previous completion list<br /> + <b>change</b>: worm adapter query tab working properly<br /> + <b>change</b>: build file takes param for webstart version deployment, and puts in jnlp<br /> + <b>change</b>: group adapters can psten for CharList changes<br /> + <b>change</b>: added/corrected BIRN ontologies<br /> + <b>bugfix</b>: load of file doesnt crash on post comp parsing bug<br /> + <b>bugfix</b>: doesnt load obo files specified twice twice<br /> + <b>bugfix</b>: view menu show up at initialization<br /> + <b>bugfix</b>: layout of term history with split pane proper<br /> + </div> + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + + </body> +</html> Added: phenote/trunk/doc/phenote-website/download.shtml~ =================================================================== --- phenote/trunk/doc/phenote-website/download.shtml~ (rev 0) +++ phenote/trunk/doc/phenote-website/download.shtml~ 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,88 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container"> + <div id="main_content"> + <div class="catch_phrase"> + </div> + <h2><a href="http://www.phenote.org/phenote/latest/phenote.jnlp">Launch Phenote in your browser</a></h2> + <p> You can run phenote directly from your web browser without a separate installation by selecting one of the following links:</p> + <ul><li><strong>Beta release: <a href="http://www.phenote.org/phenote/1.4-beta3/phenote.jnlp">1.4 beta3</a></strong></li> + <li><strong>Stable release: <a href="http://www.phenote.org/phenote/1.3/phenote.jnlp">1.3</a> </strong></li> + <li><a href="http://www.phenote.org/phenote/phenote.html">Older releases</a></li> + </ul> + <p> You may be prompted to sign a certificate and allow the download. This will take a few minutes the first time you do this. + </p> + <h2>Run Phenote at the command line</h2> + <p> To run phenote on the command line, linux or MacOSX users will need to checkout Phenote from the subversion repository. This can be done with the following command:</p> + <ul><li>Beta release: <b>svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/tags/1.4-beta3/ phenote</b> </li> + <li>Stable release: <b>svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/tags/1.3/ phenote</b> + <li>Latest: <b>svn co https://obo.svn.sourceforge.net/svnroot/obo/phenote/trunk phenote </b></li> + </ul> + <p>Once you've got it, you can run Phenote with ant with the command: <b>ant run</b> + </p> + <h2>Hardware requirements</h2> + <ul> + <li> 400 Mhz processor or faster.</li> + <li> 500+ MB RAM </li> + <li> 200 MB free disk space on your computer </li> + <li> Internet connection (broadband is best). Required for automatic updates of ontologies and some functions. </li> + </ul> + <h2>Software requirements</h2> + <ul> + <li> PC running Windows XP; Mac OSX; Linux </li> + <li> Webstart: Internet browser with webstart installed </li> + <li> Command line: Java 1.5 or later; Ant </li> + </ul> + + </div> + </div> + + <div id="sidebar_container"> + + <div id="sidebar_content"> + + <div class="content_box_head_blue"> + Recently added features, version 1.4-beta3 + </div> + + <div class="content_box_blue"> + <b>feature</b>: Native look-and-feel enabled for interface. Users should now see Mac or Windows style depending on their system.<br /> + <b>feature</b>: read-only field (needs work)<br /> + <b>feature</b>: config disabpng of copy of field (for db ids)<br /> + <b>feature</b>: display property values of terms in term info<br /> + <b>feature</b>: Phylogeny Chooser for NESCent/PhenoMap project. A user can import a phylogenetic tree in Newick format. The user can use the tree + viewer to select rows within the character template - typically taxonomic groups.<br /> + <b>feature</b>: term fields can be nullified<br /> + <b>feature</b>: separate queries to backend for different groups, implemented in worm<br /> + <b>feature</b>: ID field type, requires ":"<br /> + <b>feature</b>: can get unique list of deleted annots<br /> + <b>feature</b>: added group adapter framework<br /> + <b>feature</b>: fly genotype group adapter makes fly genotype strings from tab/group<br /> + <b>feature</b>: worm group adapter makes reference terms from ref query<br /> + <b>change</b>: on term completion if adding a letter use previous completion list<br /> + <b>change</b>: worm adapter query tab working properly<br /> + <b>change</b>: build file takes param for webstart version deployment, and puts in jnlp<br /> + <b>change</b>: group adapters can psten for CharList changes<br /> + <b>change</b>: added/corrected BIRN ontologies<br /> + <b>bugfix</b>: load of file doesnt crash on post comp parsing bug<br /> + <b>bugfix</b>: doesnt load obo files specified twice twice<br /> + <b>bugfix</b>: view menu show up at initialization<br /> + <b>bugfix</b>: layout of term history with split pane proper<br /> + </div> + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + + </body> +</html> Added: phenote/trunk/doc/phenote-website/events.shtml =================================================================== --- phenote/trunk/doc/phenote-website/events.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/events.shtml 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,107 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + <div class="catch_phrase"> + News and Events + </div> + + <h1>Upcoming Events, 2007</h1> + <h2>September</h2> + <ul> + <li> + </li> + </ul> + + <h2>October</h2> + <ul> + <li>Oct 2, Phenote Users Group, Online + </li> + <li>Oct 23-25, Ontology Best Practices Workshop, <a href="http://www.cs.uoregon.edu/~dhowe/biocurator/">Biocurator Meeting</a>, Hayes Mansion, San Jose, CA + </li> + </ul> + + <h2>November</h2> + <ul> + <li>Nov 6, Phenote Users Group, Online + </li> + <li>Nov 27, <a href="http://www.bioontology.org/">NCBO</a> Scientific Advisory Board meeting</li> + </ul> + + <h2>December</h2> + <ul> + <li>Dec 4, Phenote Users Group, Online + </li> + </ul> + + <h1>Past News and Events, 2007</h1> + <h2>September</h2> + <ul> + <li>Sept 17, New website released + </li> + <li>Sept 4, Phenote Users Group, Online + </li> + </ul> + <h2>August</h2> + <ul> + <li>Aug 29, Phenote Demo, <a href="http://darwin.nerc-oxford.ac.uk/gc_wiki/index.php/EnvO_Workshop">Environment Ontology Workshop</a>, Oxford, UK</li> + <li>Aug 28, new 1.4 beta 3 released [<a href="http://www.phenote.org/downloads.shtml">Release notes</a>...]</li> + <li>Aug 22-24, Phenote Demo, <a href="http://wiki.modencode.org/index.php/White">K. White group, ModENCODE</a>, Chicago, IL + </li> + <li>Apr 16, site visit, <a href="http://www.wormbase.org">Wormbase</a>, Pasadena, CA + </li> + <li>Aug 13-15, site visit, <a href="http://www.nbirn.net/research/mouse/index.shtm">BIRN</a>, San Diego, CA + </li> + <li>Aug 7, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + </ul> + <h2>July</h2> + <ul> + <li>July 3, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + </ul> + <h2>June</h2> + <ul> + <li>June 6, "Representing Phenotypes in OWL", <a href="http://owled2007.iut-velizy.uvsq.fr">OWL: Experiences and Directions Conference</a> Presentation, Innsbruck, Austria. [<a href="http://owled2007.iut-velizy.uvsq.fr/PapersPDF/paper_40.pdf">PDF</a>] + </li> + <li>June 5, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + </ul> + <h2>May</h2> + <ul> + <li>May 1, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + </ul> + <h2>April</h2> + <ul> + <li>Apr 12-13, site visit, <a href="http://www.nbirn.net/research/mouse/index.shtm">BIRN</a>, San Diego, CA + </li> + <li>Apr 11-12, site visit, <a href="http://www.wormbase.org">Wormbase</a>, Pasadena, CA + </li> + <li>Apr 10, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + <li>Apr 5, <a href="http://www.bioontology.org/">NCBO</a> Scientific Advisory Board meeting</li> + </ul> + <h2>March</h2> + <ul> + <li>Mar 28-29, site visit, <a href="http://zfin.org">ZFin</a>, Eugene, OR + </li> + </ul> + + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + +</body> +</html> Added: phenote/trunk/doc/phenote-website/events.shtml~ =================================================================== --- phenote/trunk/doc/phenote-website/events.shtml~ (rev 0) +++ phenote/trunk/doc/phenote-website/events.shtml~ 2007-09-17 23:16:26 UTC (rev 912) @@ -0,0 +1,107 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + <div class="catch_phrase"> + News and Events + </div> + + <h1>Upcoming Events, 2007</h1> + <h2>September</h2> + <ul> + <li> + </li> + </ul> + + <h2>October</h2> + <ul> + <li>Oct 2, Phenote Users Group, Online + </li> + <li>Oct 23-25, Ontology Best Practices Workshop, <a href="http://www.cs.uoregon.edu/~dhowe/biocurator/">Biocurator Meeting</a>, Hayes Mansion, San Jose, CA + </li> + </ul> + + <h2>November</h2> + <ul> + <li>Nov 6, Phenote Users Group, Online + </li> + <li>Nov 27, <a href="http://www.bioontology.org/">NCBO</a> Scientific Advisory Board meeting</li> + </ul> + + <h2>December</h2> + <ul> + <li>Dec 4, Phenote Users Group, Online + </li> + </ul> + + <h1>Past Events, 2007</h1> + <h2>September</h2> + <ul> + <li>Sept 17, New website released + </li> + <li>Sept 4, Phenote Users Group, Online + </li> + </ul> + <h2>August</h2> + <ul> + <li>Aug 29, Phenote Demo, <a href="http://darwin.nerc-oxford.ac.uk/gc_wiki/index.php/EnvO_Workshop">Environment Ontology Workshop</a>, Oxford, UK</li> + <li>Aug 28, new 1.4 beta 3 released [<a href="http://www.phenote.org/downloads.shtml">Release notes</a>...]</li> + <li>Aug 22-24, Phenote Demo, <a href=... [truncated message content] |
From: <nl...@us...> - 2007-09-17 22:37:07
|
Revision: 911 http://obo.svn.sourceforge.net/obo/?rev=911&view=rev Author: nlw Date: 2007-09-17 15:37:07 -0700 (Mon, 17 Sep 2007) Log Message: ----------- jeez...a few last changes Modified Paths: -------------- phenote/trunk/doc/phenote-website/new/events.shtml phenote/trunk/doc/phenote-website/new/index.shtml Modified: phenote/trunk/doc/phenote-website/new/events.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/events.shtml 2007-09-17 22:27:35 UTC (rev 910) +++ phenote/trunk/doc/phenote-website/new/events.shtml 2007-09-17 22:37:07 UTC (rev 911) @@ -13,7 +13,7 @@ <div id="main_container_aux"> <div id="main_content_aux"> <div class="catch_phrase"> - Phenote Events + News and Events </div> <h1>Upcoming Events, 2007</h1> @@ -47,12 +47,14 @@ <h1>Past Events, 2007</h1> <h2>September</h2> <ul> + <li>Sept 17, New website released + </li> <li>Sept 4, Phenote Users Group, Online </li> </ul> <h2>August</h2> <ul> - <li>Aug 29, Phenote Demo, <a href="http://darwin.nerc-oxford.ac.uk/gc_wiki/index.php/EnvO_Workshop">Environment Ontology Workshop</a></li> + <li>Aug 29, Phenote Demo, <a href="http://darwin.nerc-oxford.ac.uk/gc_wiki/index.php/EnvO_Workshop">Environment Ontology Workshop</a>, Oxford, UK</li> <li>Aug 28, new 1.4 beta 3 released [<a href="http://www.phenote.org/downloads.shtml">Release notes</a>...]</li> <li>Aug 22-24, Phenote Demo, <a href="http://wiki.modencode.org/index.php/White">K. White group, ModENCODE</a>, Chicago, IL </li> Modified: phenote/trunk/doc/phenote-website/new/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/index.shtml 2007-09-17 22:27:35 UTC (rev 910) +++ phenote/trunk/doc/phenote-website/new/index.shtml 2007-09-17 22:37:07 UTC (rev 911) @@ -79,7 +79,7 @@ <img src="images/calendar.gif" alt="Upcoming Events" class="icon_blue"/> - Upcoming Events + <a href="events.shtml">Upcoming Events</a> </div> <div class="content_box_green"> @@ -115,12 +115,12 @@ </p> </li> </ul> - <h3><a href="http://www.phenote.org/events.shtml">Past Events...</a></h3> + <!--h3><a href="http://www.phenote.org/events.shtml">Past Events...</a></h3--> </div> <div class="content_box_head_green"> <img src="images/document.gif" alt="News" class="icon_blue" /> - News + <a href="events.shtml">News</a> </div> <div class="content_box_green"> @@ -129,17 +129,10 @@ <!--No news is good news!--> <!-- Do not destry the following event template --> - <ul class="news"> - <li class="news"> <p>09.17.2007 - New website rolled out! The website has the same content as the old one, just with a new look-and-feel.</p> - </li> - <li class="news"> <p> 08.28.2007 - <a href="http://www.phenote.org/download.shtml">New Phenote Beta available: 1.4-beta3!</a> </p> - </li> - </ul> - <!-- <h3>Event Title</h3> <ul class="events"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-17 22:27:54
|
Revision: 910 http://obo.svn.sourceforge.net/obo/?rev=910&view=rev Author: nlw Date: 2007-09-17 15:27:35 -0700 (Mon, 17 Sep 2007) Log Message: ----------- website: a few more changes Modified Paths: -------------- phenote/trunk/doc/phenote-website/new/about.shtml phenote/trunk/doc/phenote-website/new/index.shtml Modified: phenote/trunk/doc/phenote-website/new/about.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/about.shtml 2007-09-17 22:21:01 UTC (rev 909) +++ phenote/trunk/doc/phenote-website/new/about.shtml 2007-09-17 22:27:35 UTC (rev 910) @@ -51,6 +51,17 @@ Common questions about Phenote, ontologies, and annotation, along with their answers. </p> + + <h3> + <a href="events.shtml"> + Upcoming and Past Events + </a> + </h3> + <p> + A listing of upcoming and past events related to Phenote and + phenotype annotation, including presentations at meetings, + online workshops, user group meetings, etc. + </p> </div> </div> Modified: phenote/trunk/doc/phenote-website/new/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/index.shtml 2007-09-17 22:21:01 UTC (rev 909) +++ phenote/trunk/doc/phenote-website/new/index.shtml 2007-09-17 22:27:35 UTC (rev 910) @@ -115,7 +115,7 @@ </p> </li> </ul> - + <h3><a href="http://www.phenote.org/events.shtml">Past Events...</a></h3> </div> <div class="content_box_head_green"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-17 22:21:07
|
Revision: 909 http://obo.svn.sourceforge.net/obo/?rev=909&view=rev Author: nlw Date: 2007-09-17 15:21:01 -0700 (Mon, 17 Sep 2007) Log Message: ----------- added a past events page, updated a link on index Modified Paths: -------------- phenote/trunk/doc/phenote-website/new/index.shtml Added Paths: ----------- phenote/trunk/doc/phenote-website/new/events.shtml Added: phenote/trunk/doc/phenote-website/new/events.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/events.shtml (rev 0) +++ phenote/trunk/doc/phenote-website/new/events.shtml 2007-09-17 22:21:01 UTC (rev 909) @@ -0,0 +1,105 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <!--#include virtual="ssi/head.html" --> + <title>Phenote: A Phenotype Annotation Tool using Ontologies</title> + + </head> + <body> + + <!--#include virtual="ssi/header.html" --> + + <div id="main_container_aux"> + <div id="main_content_aux"> + <div class="catch_phrase"> + Phenote Events + </div> + + <h1>Upcoming Events, 2007</h1> + <h2>September</h2> + <ul> + <li> + </li> + </ul> + + <h2>October</h2> + <ul> + <li>Oct 2, Phenote Users Group, Online + </li> + <li>Oct 23-25, Ontology Best Practices Workshop, <a href="http://www.cs.uoregon.edu/~dhowe/biocurator/">Biocurator Meeting</a>, Hayes Mansion, San Jose, CA + </li> + </ul> + + <h2>November</h2> + <ul> + <li>Nov 6, Phenote Users Group, Online + </li> + <li>Nov 27, <a href="http://www.bioontology.org/">NCBO</a> Scientific Advisory Board meeting</li> + </ul> + + <h2>December</h2> + <ul> + <li>Dec 4, Phenote Users Group, Online + </li> + </ul> + + <h1>Past Events, 2007</h1> + <h2>September</h2> + <ul> + <li>Sept 4, Phenote Users Group, Online + </li> + </ul> + <h2>August</h2> + <ul> + <li>Aug 29, Phenote Demo, <a href="http://darwin.nerc-oxford.ac.uk/gc_wiki/index.php/EnvO_Workshop">Environment Ontology Workshop</a></li> + <li>Aug 28, new 1.4 beta 3 released [<a href="http://www.phenote.org/downloads.shtml">Release notes</a>...]</li> + <li>Aug 22-24, Phenote Demo, <a href="http://wiki.modencode.org/index.php/White">K. White group, ModENCODE</a>, Chicago, IL + </li> + <li>Aug 13-14, site visit, <a href="http://www.nbirn.net/research/mouse/index.shtm">BIRN</a>, San Diego, CA + </li> + <li>Aug 7, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + </ul> + <h2>July</h2> + <ul> + <li>July 3, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + </ul> + <h2>June</h2> + <ul> + <li>June 6, "Representing Phenotypes in OWL", <a href="http://owled2007.iut-velizy.uvsq.fr">OWL: Experiences and Directions Conference Presentation, Innsbruck, Austria. [<a href="http://owled2007.iut-velizy.uvsq.fr/PapersPDF/paper_40.pdf">PDF</a> + </li> + <li>June 5, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + </ul> + <h2>May</h2> + <ul> + <li>May 1, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + </ul> + <h2>April</h2> + <ul> + <li>Apr 12-13, site visit, <a href="http://www.nbirn.net/research/mouse/index.shtm">BIRN</a>, San Diego, CA + </li> + <li>Apr 11-12, site visit, <a href="http://www.wormbase.org">Wormbase</a>, Pasadena, CA + </li> + <li>Apr 10, <a href="http://www.bioontology.org/wiki/index.php/Phenote:Main_Page#Phenote:Agendas_.26_Transcripts">Phenote Users Group</a>, Online + </li> + <li>Apr 5, <a href="http://www.bioontology.org/">NCBO</a> Scientific Advisory Board meeting</li> + </ul> + <h2>March</h2> + <ul> + <li>Mar 28-29, site visit, <a href="http://zfin.org">ZFin</a>, Eugene, OR + </li> + </ul> + <h1>Past Events, 2007</h1> + + + </div> + </div> + + <!--#include virtual="ssi/footer.html" --> + +</body> +</html> Modified: phenote/trunk/doc/phenote-website/new/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/index.shtml 2007-09-17 21:31:51 UTC (rev 908) +++ phenote/trunk/doc/phenote-website/new/index.shtml 2007-09-17 22:21:01 UTC (rev 909) @@ -129,7 +129,17 @@ <!--No news is good news!--> <!-- Do not destry the following event template --> - <a href="http://www.phenote.org/download.shtml">New Phenote Beta available: 1.4-beta3!</a> + <ul class="news"> + <li class="news"> + <p>09.17.2007 - New website rolled out! The website has the same + content as the old one, just with a new look-and-feel.</p> + </li> + <li class="news"> + <p> 08.28.2007 - + <a href="http://www.phenote.org/download.shtml">New Phenote Beta available: 1.4-beta3!</a> </p> + </li> + </ul> + <!-- <h3>Event Title</h3> <ul class="events"> @@ -141,9 +151,7 @@ </ul> --> - </div> - - + </div> </div> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-17 21:31:59
|
Revision: 908 http://obo.svn.sourceforge.net/obo/?rev=908&view=rev Author: nlw Date: 2007-09-17 14:31:51 -0700 (Mon, 17 Sep 2007) Log Message: ----------- fixed a couple of links here Modified Paths: -------------- phenote/trunk/doc/phenote-website/new/features.shtml phenote/trunk/doc/phenote-website/new/help.shtml Modified: phenote/trunk/doc/phenote-website/new/features.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/features.shtml 2007-09-15 01:07:10 UTC (rev 907) +++ phenote/trunk/doc/phenote-website/new/features.shtml 2007-09-17 21:31:51 UTC (rev 908) @@ -52,10 +52,10 @@ <p class="quick_link"> <img src="images/star.gif" alt="" class="icon_green"/> - <a href="http://www.phenote.org/phenote.jnlp" + <a href="http://www.phenote.org/phenote/1.4-beta3/phenote.jnlp" title="Lauch Phenote via Webstart"> - Launch Phenote v1.4-beta3 via Webstart - </a> + Launch Phenote v1.4-beta3 + </a> via webstart </p> <p class="quick_link"> <img src="images/star.gif" alt="" class="icon_green"/> Modified: phenote/trunk/doc/phenote-website/new/help.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/help.shtml 2007-09-15 01:07:10 UTC (rev 907) +++ phenote/trunk/doc/phenote-website/new/help.shtml 2007-09-17 21:31:51 UTC (rev 908) @@ -16,7 +16,7 @@ <div class="catch_phrase"> Getting Help with Phenote </div> - <h2><a href="http://www.phenote.org/faq.shtml/">Frequently Asked Questions (FAQs)</a></h2> + <h2><a href="http://www.phenote.org/faq.shtml">Frequently Asked Questions (FAQs)</a></h2> <p>A resource for some basic questions and those we are most frequently asked</p> <h2><a href="http://www.phenote.org/help/">Online Help</a></h2> <p>We provide a searchable online help tool to help answer your questions. This is the same help content provided in the software.</p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-15 01:07:06
|
Revision: 907 http://obo.svn.sourceforge.net/obo/?rev=907&view=rev Author: nlw Date: 2007-09-14 18:07:10 -0700 (Fri, 14 Sep 2007) Log Message: ----------- stupid borders Modified Paths: -------------- phenote/trunk/doc/phenote-website/new/css/main.css phenote/trunk/doc/phenote-website/new/users.shtml Modified: phenote/trunk/doc/phenote-website/new/css/main.css =================================================================== --- phenote/trunk/doc/phenote-website/new/css/main.css 2007-09-15 01:01:01 UTC (rev 906) +++ phenote/trunk/doc/phenote-website/new/css/main.css 2007-09-15 01:07:10 UTC (rev 907) @@ -32,7 +32,7 @@ a.image:link, a.image:visited, a.image:hover { background: none; padding: 0px; - color: #000000; + border: none; } a.image img { Modified: phenote/trunk/doc/phenote-website/new/users.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/users.shtml 2007-09-15 01:01:01 UTC (rev 906) +++ phenote/trunk/doc/phenote-website/new/users.shtml 2007-09-15 01:07:10 UTC (rev 907) @@ -20,7 +20,7 @@ <p>Phenote development is a community effort. We welcome input and feedback from our users. The following groups are using Phenote:</p> <table border="0"> <tr> - <td><a href="http://flybase.bio.indiana.edu/"> <img src="/images/fly_logo.png" alt="Flybase" /></a> + <td><a href="http://flybase.bio.indiana.edu/"> <img height="50" src="/images/fly_logo.png" alt="Flybase" /></a> </td> <td>Flybase</td> </tr> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-15 01:01:00
|
Revision: 906 http://obo.svn.sourceforge.net/obo/?rev=906&view=rev Author: nlw Date: 2007-09-14 18:01:01 -0700 (Fri, 14 Sep 2007) Log Message: ----------- jeez, i hope this is the last validation error fix Modified Paths: -------------- phenote/trunk/doc/phenote-website/new/users.shtml Modified: phenote/trunk/doc/phenote-website/new/users.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/users.shtml 2007-09-15 00:55:24 UTC (rev 905) +++ phenote/trunk/doc/phenote-website/new/users.shtml 2007-09-15 01:01:01 UTC (rev 906) @@ -20,49 +20,49 @@ <p>Phenote development is a community effort. We welcome input and feedback from our users. The following groups are using Phenote:</p> <table border="0"> <tr> - <td><a link="http://flybase.bio.indiana.edu/"> <img class="portrait" height="50" src="/images/fly_logo.png" alt="Flybase" /></a> + <td><a href="http://flybase.bio.indiana.edu/"> <img src="/images/fly_logo.png" alt="Flybase" /></a> </td> <td>Flybase</td> </tr> <tr> - <td><a href="http://www.zfin.org/"> <img class="portrait" src="/images/zfin_logo.gif" height="50" alt="Zfin" /></a> + <td><a href="http://www.zfin.org/"> <img height="50" src="/images/zfin_logo.gif" alt="Zfin" /></a> </td> <td>Zebrafish Information Network (Zfin)</td> </tr> <tr> <td><a href="http://www.nbirn.net/research/mouse/index.shtm"> - <img class="portrait" height="50" src="/images/BIRN_logo.gif" alt="BIRN" /></a> + <img src="/images/BIRN_logo.gif" alt="BIRN" /></a> </td> <td>mouse Biomedical Informatics Research Network (mouseBIRN)</td> </tr> <tr> - <td><a href="http://www.dictybase.org/"><img class="portrait" src="/images/dicty_logo.png" height="50" alt="Dictybase" /></a> + <td><a href="http://www.dictybase.org/"><img height="50" src="/images/dicty_logo.png" alt="Dictybase" /></a> </td> <td>Dictyostelium Model Organism Database (Dictybase)</td> </tr> <tr> - <td><a href="http://www.geneontology.org/"><img class="portrait" src="/images/go_logo.gif" height="50" alt="GO" /></a> + <td><a href="http://www.geneontology.org/"><img height="50" src="/images/go_logo.gif" alt="GO" /></a> </td> <td>The Gene Ontology</td> </tr> <tr> - <td><a href="http://www.wormbase.org/"><img class="portrait" src="/images/worm_logo.jpg" height="50" alt="WB" /></a> + <td><a href="http://www.wormbase.org/"><img src="/images/worm_logo.jpg" height="50" alt="WB" /></a> </td> <td>The <i>C. elegans</i> Genome Database (Wormbase)</td> </tr> <tr> <td><a href="http://www.nescent.org/"> - <img class="portrait" src="/images/nescent_logo.gif" height="50" alt="Nescent" /></a> + <img src="/images/nescent_logo.gif" height="50" alt="Nescent" /></a> </td> <td>National Evolutionary Synthesis Center (NESCent)</td> </tr> <tr> - <td><a href="http://www.pharmgkb.org/"><img class="portrait" src="/images/pgkb_logo.png" height="50" alt="PharmGKB" /></a> + <td><a href="http://www.pharmgkb.org/"><img src="/images/pgkb_logo.png" height="50" alt="PharmGKB" /></a> </td> <td>PharmacoGenomics KnowledgeBase (PharmGKB)</td> </tr> <tr> - <td><a href="http://www.xenbase.org/"><img class="portrait" src="/images/xenbase_logo.gif" height="50" alt="Xenbase" /></a> + <td><a href="http://www.xenbase.org/"><img src="/images/xenbase_logo.gif" height="50" alt="Xenbase" /></a> </td> <td>Xenopus Model Organism Database (Xenbase)</td> </tr> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-15 00:55:21
|
Revision: 905 http://obo.svn.sourceforge.net/obo/?rev=905&view=rev Author: nlw Date: 2007-09-14 17:55:24 -0700 (Fri, 14 Sep 2007) Log Message: ----------- more validation fixes Modified Paths: -------------- phenote/trunk/doc/phenote-website/new/css/main.css phenote/trunk/doc/phenote-website/new/users.shtml Modified: phenote/trunk/doc/phenote-website/new/css/main.css =================================================================== --- phenote/trunk/doc/phenote-website/new/css/main.css 2007-09-15 00:44:03 UTC (rev 904) +++ phenote/trunk/doc/phenote-website/new/css/main.css 2007-09-15 00:55:24 UTC (rev 905) @@ -32,6 +32,7 @@ a.image:link, a.image:visited, a.image:hover { background: none; padding: 0px; + color: #000000; } a.image img { Modified: phenote/trunk/doc/phenote-website/new/users.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/users.shtml 2007-09-15 00:44:03 UTC (rev 904) +++ phenote/trunk/doc/phenote-website/new/users.shtml 2007-09-15 00:55:24 UTC (rev 905) @@ -20,19 +20,18 @@ <p>Phenote development is a community effort. We welcome input and feedback from our users. The following groups are using Phenote:</p> <table border="0"> <tr> - <td><a href="http://flybase.bio.indiana.edu/"> - <img class="portrait" height="50" src="/images/fly_logo.png"alt="Flybase" /></a> + <td><a link="http://flybase.bio.indiana.edu/"> <img class="portrait" height="50" src="/images/fly_logo.png" alt="Flybase" /></a> </td> <td>Flybase</td> </tr> <tr> - <td><a href="http://www.zfin.org/"><img class="portrait" src="/images/zfin_logo.gif" height="50" alt="Zfin" /></a> + <td><a href="http://www.zfin.org/"> <img class="portrait" src="/images/zfin_logo.gif" height="50" alt="Zfin" /></a> </td> <td>Zebrafish Information Network (Zfin)</td> </tr> <tr> <td><a href="http://www.nbirn.net/research/mouse/index.shtm"> - <img class="portrait" height="50" src="/images/BIRN_logo.gif"alt="BIRN" /></a> + <img class="portrait" height="50" src="/images/BIRN_logo.gif" alt="BIRN" /></a> </td> <td>mouse Biomedical Informatics Research Network (mouseBIRN)</td> </tr> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-09-15 00:44:01
|
Revision: 904 http://obo.svn.sourceforge.net/obo/?rev=904&view=rev Author: nlw Date: 2007-09-14 17:44:03 -0700 (Fri, 14 Sep 2007) Log Message: ----------- and even more validation fixes Modified Paths: -------------- phenote/trunk/doc/phenote-website/new/faq.shtml phenote/trunk/doc/phenote-website/new/index.shtml phenote/trunk/doc/phenote-website/new/users.shtml Modified: phenote/trunk/doc/phenote-website/new/faq.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/faq.shtml 2007-09-15 00:36:03 UTC (rev 903) +++ phenote/trunk/doc/phenote-website/new/faq.shtml 2007-09-15 00:44:03 UTC (rev 904) @@ -72,7 +72,6 @@ <p> Sometimes a term you are looking for is really just a synonym of another term. Make sure you have "synonyms" selected under the "Settings" menu. </p> <p>If you still can't find it, it might be that the ontology is really missing a term. Ontologies, while extensive, are never complete, and are under active development. There are usually online term request resources for each ontology. You will need to contact each ontology resource separately. </p> - </p> <h3>Can I output my data in RDF-OWL?</h3> <p> Not yet, but that feature is coming soon. Modified: phenote/trunk/doc/phenote-website/new/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/index.shtml 2007-09-15 00:36:03 UTC (rev 903) +++ phenote/trunk/doc/phenote-website/new/index.shtml 2007-09-15 00:44:03 UTC (rev 904) @@ -105,6 +105,7 @@ <a href="http://www.phenote.org/irc_chat">User's Group Monthly Meeting</a>, October 4, 8:30am, Online </p> </li> + </ul> <h3>Meetings/Demos</h3> <ul class="events"> <li class="events"> Modified: phenote/trunk/doc/phenote-website/new/users.shtml =================================================================== --- phenote/trunk/doc/phenote-website/new/users.shtml 2007-09-15 00:36:03 UTC (rev 903) +++ phenote/trunk/doc/phenote-website/new/users.shtml 2007-09-15 00:44:03 UTC (rev 904) @@ -21,49 +21,49 @@ <table border="0"> <tr> <td><a href="http://flybase.bio.indiana.edu/"> - <img class="portrait" height="50" border="0" src="/images/fly_logo.png"alt="Flybase" /></a> + <img class="portrait" height="50" src="/images/fly_logo.png"alt="Flybase" /></a> </td> <td>Flybase</td> </tr> <tr> - <td><a href="http://www.zfin.org/"><img class="portrait" border="0" src="/images/zfin_logo.gif" height="50" alt="Zfin" /></a> + <td><a href="http://www.zfin.org/"><img class="portrait" src="/images/zfin_logo.gif" height="50" alt="Zfin" /></a> </td> <td>Zebrafish Information Network (Zfin)</td> </tr> <tr> <td><a href="http://www.nbirn.net/research/mouse/index.shtm"> - <img class="portrait" height="50" border="0" src="/images/BIRN_logo.gif"alt="BIRN" /></a> + <img class="portrait" height="50" src="/images/BIRN_logo.gif"alt="BIRN" /></a> </td> <td>mouse Biomedical Informatics Research Network (mouseBIRN)</td> </tr> <tr> - <td><a href="http://www.dictybase.org/"><img class="portrait" border="0" src="/images/dicty_logo.png" height="50" alt="Dictybase" /></a> + <td><a href="http://www.dictybase.org/"><img class="portrait" src="/images/dicty_logo.png" height="50" alt="Dictybase" /></a> </td> <td>Dictyostelium Model Organism Database (Dictybase)</td> </tr> <tr> - <td><a href="http://www.geneontology.org/"><img class="portrait" border="0" src="/images/go_logo.gif" height="50" alt="GO" /></a> + <td><a href="http://www.geneontology.org/"><img class="portrait" src="/images/go_logo.gif" height="50" alt="GO" /></a> </td> <td>The Gene Ontology</td> </tr> <tr> - <td><a href="http://www.wormbase.org/"><img class="portrait" border="0" src="/images/worm_logo.jpg" height="50" alt="WB" /></a> + <td><a href="http://www.wormbase.org/"><img class="portrait" src="/images/worm_logo.jpg" height="50" alt="WB" /></a> </td> <td>The <i>C. elegans</i> Genome Database (Wormbase)</td> </tr> <tr> <td><a href="http://www.nescent.org/"> - <img class="portrait" border="0" src="/images/nescent_logo.gif" height="50" alt="Nescent" /></a> + <img class="portrait" src="/images/nescent_logo.gif" height="50" alt="Nescent" /></a> </td> <td>National Evolutionary Synthesis Center (NESCent)</td> </tr> <tr> - <td><a href="http://www.pharmgkb.org/"><img class="portrait" border="0" src="/images/pgkb_logo.png" height="50" alt="PharmGKB" /></a> + <td><a href="http://www.pharmgkb.org/"><img class="portrait" src="/images/pgkb_logo.png" height="50" alt="PharmGKB" /></a> </td> <td>PharmacoGenomics KnowledgeBase (PharmGKB)</td> </tr> <tr> - <td><a href="http://www.xenbase.org/"><img class="portrait" border="0" src="/images/xenbase_logo.gif" height="50" alt="Xenbase" /></a> + <td><a href="http://www.xenbase.org/"><img class="portrait" src="/images/xenbase_logo.gif" height="50" alt="Xenbase" /></a> </td> <td>Xenopus Model Organism Database (Xenbase)</td> </tr> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |