X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjavascript%2FJsSelectionSender.java;h=56efe701b120ddca9c70dd438d306ecaee3d9d73;hb=6ef963034788a3499e25c1bbd8ccf850e18b3f94;hp=6c857ad041cdc4f367b9a82fffdb008c42a7b9e4;hpb=b57a02c25e335d033c97f8a6bacd6b54f62bd2b6;p=jalview.git diff --git a/src/jalview/javascript/JsSelectionSender.java b/src/jalview/javascript/JsSelectionSender.java index 6c857ad..56efe70 100644 --- a/src/jalview/javascript/JsSelectionSender.java +++ b/src/jalview/javascript/JsSelectionSender.java @@ -1,125 +1,63 @@ -/******************************************************************************* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle - * +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * * This file is part of Jalview. - * + * * 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. - * + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * * 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 . - *******************************************************************************/ + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.javascript; -import java.net.URL; +import jalview.api.JalviewApp; import jalview.appletgui.AlignFrame; -import jalview.appletgui.AlignViewport; -import jalview.bin.JalviewLite; import jalview.datamodel.ColumnSelection; +import jalview.datamodel.HiddenColumns; import jalview.datamodel.SequenceGroup; import jalview.structure.SelectionSource; -import netscape.javascript.JSObject; -public class JsSelectionSender extends JSFunctionExec implements - jalview.structure.SelectionListener, JsCallBack +public class JsSelectionSender extends JSFunctionExec + implements jalview.structure.SelectionListener, JsCallBack { AlignFrame _af; String _listener; - public JsSelectionSender(JalviewLite jvlite, AlignFrame af, - String listener) + public JsSelectionSender(JalviewApp jvlite, AlignFrame af, + String listener, boolean debug) { - super(jvlite); + super(jvlite, debug); _af = af; _listener = listener; } @Override public void selection(SequenceGroup seqsel, ColumnSelection colsel, - SelectionSource source) + HiddenColumns hidden, SelectionSource source) { - // System.err.println("Testing selection event relay to jsfunction:"+_listener); + Object[] info = jvlite.getSelectionForListener(seqsel, colsel, hidden, source, _af); try { - String setid = ""; - String viewid = ""; - AlignFrame src = _af; - if (source != null) - { - if (source instanceof jalview.appletgui.AlignViewport - && ((jalview.appletgui.AlignViewport) source).applet.currentAlignFrame.viewport == source) - { - // should be valid if it just generated an event! - src = ((jalview.appletgui.AlignViewport) source).applet.currentAlignFrame; - } - } - String[] seqs = new String[] - {}; - String[] cols = new String[] - {}; - int strt = 0, end = (src == null) ? -1 : src.alignPanel.av - .getAlignment().getWidth(); - if (seqsel != null && seqsel.getSize() > 0) - { - seqs = new String[seqsel.getSize()]; - for (int i = 0; i < seqs.length; i++) - { - seqs[i] = seqsel.getSequenceAt(i).getName(); - } - if (strt < seqsel.getStartRes()) - { - strt = seqsel.getStartRes(); - } - if (end == -1 || end > seqsel.getEndRes()) - { - end = seqsel.getEndRes(); - } - } - if (colsel != null && colsel.size() > 0) - { - if (end == -1) - { - end = colsel.getMax() + 1; - } - cols = new String[colsel.getSelected().size()]; - int d = 0, r = -1; - for (int i = 0; i < cols.length; i++) - { - cols[i] = "" - + (1 + ((Integer) colsel.getSelected().elementAt(i)) - .intValue()); - } - } - else - { - if (seqsel != null && seqsel.getSize() > 0) - { - // send a valid range, otherwise we send the empty selection - cols = new String[2]; - cols[0] = "" + (1 + strt) + "-" + (1 + end); - } - ; - - } System.err.println("Relaying selection to jsfunction:" + _listener); - executeJavascriptFunction( - _listener, - new Object[] - { src, setid, jvlite.arrayToSeparatorList(seqs), - jvlite.arrayToSeparatorList(cols) }); + executeJavascriptFunction(_listener, info); + } catch (Exception ex) { - System.err - .println("Jalview Javascript exec error: Couldn't send selection message using function '" + System.err.println( + "Jalview Javascript exec error: Couldn't send selection message using function '" + _listener + "'"); ex.printStackTrace(); if (ex instanceof netscape.javascript.JSException) @@ -130,6 +68,7 @@ public class JsSelectionSender extends JSFunctionExec implements } } + } @Override