/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
+ * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
*/
package jalview.io.vamsas;
uk.ac.vamsas.objects.core.Tree vtree)
{
Tree toTree = new Tree(datastore, alignFrame, vtree);
-
}
public Tree(VamsasAppDatastore datastore,
jalview.gui.AlignFrame alignFrame,
uk.ac.vamsas.objects.core.Tree vtree)
{
- super(datastore);
- tree = vtree;
- TreePanel tp = (TreePanel) getvObj2jv(tree);
- if (tp != null)
- {
- if (tree.isUpdated())
- {
- Cache.log
- .info("Update from vamsas document to alignment associated tree not implemented yet.");
- }
- }
- else
- {
- // make a new tree
- Object[] idata = recoverInputData(tree.getProvenance());
- try
- {
- if (idata != null && idata[0] != null)
- {
- inputData = (AlignmentView) idata[0];
- }
- ntree = getNtree();
- title = tree.getNewick(0).getTitle();
- if (title == null || title.length() == 0)
- {
- title = tree.getTitle(); // hack!!!!
- }
- } catch (Exception e)
- {
- Cache.log.warn("Problems parsing treefile '"
- + tree.getNewick(0).getContent() + "'", e);
- }
- }
+ super(datastore, vtree, TreePanel.class);
+ doJvUpdate();
}
private NewickFile getNtree() throws IOException
public Tree(VamsasAppDatastore datastore, TreePanel tp2, AlignmentI jal2,
uk.ac.vamsas.objects.core.Alignment alignment2)
{
- super(datastore);
+ super(datastore, tp2, uk.ac.vamsas.objects.core.Tree.class);
jal = jal2;
- tp = tp2;
+ tp = (TreePanel) jvobj;
alignment = alignment2;
- tree = (uk.ac.vamsas.objects.core.Tree) getjv2vObj(tp);
- if (tree == null)
- {
- add();
- }
- else
+ tree = (uk.ac.vamsas.objects.core.Tree) vobj;
+ doSync();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.io.vamsas.DatastoreItem#addFromDocument()
+ */
+ public void addFromDocument()
+ {
+ tree = (uk.ac.vamsas.objects.core.Tree) vobj; // vtree;
+ TreePanel tp = (TreePanel) jvobj; // getvObj2jv(tree);
+ // make a new tree
+ Object[] idata = recoverInputData(tree.getProvenance());
+ try
{
- if (isModifiable(tree.getModifiable()))
+ if (idata != null && idata[0] != null)
{
- // synchronize(); // update();
- // verify any changes.
- System.out.println("Update tree in document.");
+ inputData = (AlignmentView) idata[0];
}
- else
+ ntree = getNtree();
+ title = tree.getNewick(0).getTitle();
+ if (title == null || title.length() == 0)
{
- // handle conflict
- System.out.println("Add modified tree as new tree in document.");
+ title = tree.getTitle(); // hack!!!!
}
+ } catch (Exception e)
+ {
+ Cache.log.warn("Problems parsing treefile '"
+ + tree.getNewick(0).getContent() + "'", e);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.io.vamsas.DatastoreItem#conflict()
+ */
+ public void conflict()
+ {
+ Cache.log
+ .info("Update (with conflict) from vamsas document to alignment associated tree not implemented yet.");
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.io.vamsas.DatastoreItem#update()
+ */
+ public void updateToDoc()
+ {
+ if (isModifiable(tree.getModifiable()))
+ {
+ // synchronize(); // update();
+ // verify any changes.
+ log.info("TODO: Update tree in document from jalview.");
+ }
+ else
+ {
+ // handle conflict
+ log
+ .info("TODO: Add the locally modified tree in Jalview as a new tree in document, leaving locked tree unchanged.");
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.io.vamsas.DatastoreItem#updateFromDoc()
+ */
+ public void updateFromDoc()
+ {
+ // should probably just open a new tree panel in the same place as the old
+ // one
+ // TODO: Tree.updateFromDoc
+ /*
+ * TreePanel tp = (TreePanel) jvobj; // getvObj2jv(tree);
+ *
+ * // make a new tree Object[] idata =
+ * recoverInputData(tree.getProvenance()); try { if (idata != null &&
+ * idata[0] != null) { inputData = (AlignmentView) idata[0]; } ntree =
+ * getNtree(); title = tree.getNewick(0).getTitle(); if (title == null ||
+ * title.length() == 0) { title = tree.getTitle(); // hack!!!! } } catch
+ * (Exception e) { Cache.log.warn("Problems parsing treefile '" +
+ * tree.getNewick(0).getContent() + "'", e); }
+ */
+ log.debug("Update the local tree in jalview from the document.");
+
+ if (isModifiable(tree.getModifiable()))
+ {
+ // synchronize(); // update();
+ // verify any changes.
+ log.debug("Update tree in document from jalview.");
+ }
+ else
+ {
+ // handle conflict
+ log.debug("Add modified jalview tree as new tree in document.");
}
}
* Update jalview newick representation with TreeNode map
*
* @param tp
- * the treepanel that this tree is bound to.
+ * the treepanel that this tree is bound to.
*/
public void UpdateSequenceTreeMap(TreePanel tp)
{
*
* @param nodespec
* @param leaves
- * as returned from NJTree.findLeaves( .., ..) ..
+ * as returned from NJTree.findLeaves( .., ..) ..
* @return
*/
private jalview.datamodel.BinaryNode findNodeSpec(String nodespec,
* add jalview object to vamsas document
*
*/
- public void add()
+ public void addToDocument()
{
tree = new uk.ac.vamsas.objects.core.Tree();
bindjvvobj(tp, tree);