import jalview.datamodel.*;
import jalview.schemes.*;
import jalview.structure.SelectionSource;
+import jalview.structure.VamsasSource;
-public class AlignViewport implements SelectionSource
+public class AlignViewport implements SelectionSource, VamsasSource
{
int startRes;
{
String tmp = sequence.hashCode() + index + "";
if (lastMessage == null || !lastMessage.equals(tmp))
- ssm.mouseOverSequence(sequence, index, pos);
+ ssm.mouseOverSequence(sequence, index, pos, av);
lastMessage = tmp;
}
.toLowerCase().indexOf("false") > -1))
{
StructureSelectionManager.getStructureSelectionManager()
- .mouseOverVamsasSequence(sq, sq.findIndex(apos));
+ .mouseOverVamsasSequence(sq, sq.findIndex(apos), null);
}
else
{
StructureSelectionManager.getStructureSelectionManager()
- .mouseOverVamsasSequence(sq, apos);
+ .mouseOverVamsasSequence(sq, apos, null);
}
}
import jalview.schemes.*;
import jalview.structure.SelectionSource;
import jalview.structure.StructureSelectionManager;
+import jalview.structure.VamsasSource;
/**
* DOCUMENT ME!
* @author $author$
* @version $Revision$
*/
-public class AlignViewport implements SelectionSource
+public class AlignViewport implements SelectionSource, VamsasSource
{
private static final int RIGHT_JUSTIFY = 1;
if (lastMessage == null || !lastMessage.equals(tmp))
{
// System.err.println("mouseOver Sequence: "+tmp);
- ssm.mouseOverSequence(sequence, index, pos);
+ ssm.mouseOverSequence(sequence, index, pos, av);
}
lastMessage = tmp;
}
import jalview.structure.SelectionSource;
import jalview.structure.StructureSelectionManager;
import jalview.structure.VamsasListener;
+import jalview.structure.VamsasSource;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
* @author jimp
*
*/
-public class VamsasApplication implements SelectionSource
+public class VamsasApplication implements SelectionSource,VamsasSource
{
IClient vclient = null;
final IPickManager pm = vclient.getPickManager();
final StructureSelectionManager ssm = StructureSelectionManager
.getStructureSelectionManager();
- final SelectionSource me = this;
+ final VamsasApplication me = this;
pm.registerMessageHandler(new IMessageHandler()
{
String last = null;
// bound to "+jvobj+" at "+mm.getPosition());
// position is character position in aligned sequence
ssm.mouseOverVamsasSequence((SequenceI) jvobj,
- mm.getPosition());
+ mm.getPosition(), me);
}
}
if (message instanceof uk.ac.vamsas.client.picking.SelectionMessage)
int i = -1;
- public void mouseOver(SequenceI seq, int index)
+ public void mouseOver(SequenceI seq, int index, VamsasSource source)
{
if (jv2vobj == null)
return;
package jalview.javascript;
+import java.util.Vector;
+
import jalview.appletgui.AlignFrame;
import jalview.bin.JalviewLite;
import jalview.datamodel.SequenceI;
import jalview.structure.VamsasListener;
+import jalview.structure.VamsasSource;
import netscape.javascript.JSObject;
-public class MouseOverListener extends JSFunctionExec implements VamsasListener,JsCallBack
+public class MouseOverListener extends JSFunctionExec implements
+ VamsasListener, JsCallBack
{
AlignFrame _af;
+
String _listener;
+
SequenceI last = null;
int i = -1;
- public void mouseOver(SequenceI seq, int index)
+ public void mouseOver(SequenceI seq, int index, VamsasSource source)
{
if (seq != last || i != index)
{
- // this should really be a trace message.
- // Cache.log.debug("Mouse over " + v.getId() + " bound to "
- // + seq + " at " + index);
- last = seq;
- i = index;
- try {
- executeJavascriptFunction(_listener, new Object[] { _af, seq.getDisplayId(false), ""+(1+i)});
- } catch (Exception ex)
+ // this should really be a trace message.
+ // Cache.log.debug("Mouse over " + v.getId() + " bound to "
+ // + seq + " at " + index);
+ last = seq;
+ i = index;
+ AlignFrame src = null;
+ try
+ {
+ Vector win;
+ if (source != null)
{
-
- System.err.println("JalviewLite javascript error: Couldn't send mouseOver with handler '"+_listener+"'");
- if (ex instanceof netscape.javascript.JSException)
+ if (source instanceof jalview.appletgui.AlignViewport
+ && ((jalview.appletgui.AlignViewport) source).applet.currentAlignFrame.viewport == source)
{
- System.err.println("Javascript Exception: "+((netscape.javascript.JSException)ex).getMessage());
+ // should be valid if it just generated an event!
+ src = ((jalview.appletgui.AlignViewport) source).applet.currentAlignFrame;
+
}
- ex.printStackTrace();
+ }
+ executeJavascriptFunction(_listener, new Object[]
+ { src, seq.getDisplayId(false), "" + (1 + i) });
+ } catch (Exception ex)
+ {
+
+ System.err
+ .println("JalviewLite javascript error: Couldn't send mouseOver with handler '"
+ + _listener + "'");
+ if (ex instanceof netscape.javascript.JSException)
+ {
+ System.err.println("Javascript Exception: "
+ + ((netscape.javascript.JSException) ex).getMessage());
+ }
+ ex.printStackTrace();
}
}
}
-
- public MouseOverListener(JalviewLite applet, AlignFrame af, String listener)
+
+ public MouseOverListener(JalviewLite applet, AlignFrame af,
+ String listener)
{
super(applet);
_af = af;
_listener = listener;
}
+
@Override
public AlignFrame getAlignFrame()
{
return _listener;
}
-
}
* the sequence position (if -1, seq.findPosition is called to
* resolve the residue number)
*/
- public void mouseOverSequence(SequenceI seq, int indexpos, int index)
+ public void mouseOverSequence(SequenceI seq, int indexpos, int index, VamsasSource source)
{
boolean hasSequenceListeners = handlingVamsasMo || seqmappings != null;
SearchResults results = null;
// pass the mouse over and absolute position onto the
// VamsasListener(s)
((VamsasListener) listeners.elementAt(i))
- .mouseOver(seq, indexpos);
+ .mouseOver(seq, indexpos, source);
}
}
}
* @param position
* in an alignment sequence
*/
- public void mouseOverVamsasSequence(SequenceI sequenceI, int position)
+ public void mouseOverVamsasSequence(SequenceI sequenceI, int position, VamsasSource source)
{
handlingVamsasMo = true;
long msg = sequenceI.hashCode() * (1 + position);
if (lastmsg != msg)
{
lastmsg = msg;
- mouseOverSequence(sequenceI, position, -1);
+ mouseOverSequence(sequenceI, position, -1, source);
}
handlingVamsasMo = false;
}
\r
import jalview.datamodel.SequenceI;\r
\r
+/**\r
+ * The vamsasListener allows peers to receive mouseOver events from any Jalview alignment window.\r
+ * @author JimP\r
+ *\r
+ * @history Version 1 released for Jalview 2.4.\r
+ * @history Version 2 mouseOver refactored to include an additional parameter allowing the source of the event to be passed to the handler. \r
+ * \r
+ * \r
+ */\r
public interface VamsasListener\r
{\r
- public void mouseOver(SequenceI seq, int index);\r
+ public void mouseOver(SequenceI seq, int index, VamsasSource source);\r
}\r
--- /dev/null
+package jalview.structure;
+
+
+/**
+ * an object that can generate mouseover events for VamsasListeners. This is purely a tag for the
+ * moment, but there may be more interrogative methods in future.
+ *
+ */
+
+public interface VamsasSource
+{
+
+
+}