/** Does all the handle selection checks for BaseFineEditor and BaseEditorPanel */
 boolean canHandleSelection(FeatureSelectionEvent evt, Object self) {
   if ((noExternalSelection() && isExternalSelection(evt)) && !evt.forceSelection()) return false;
   if (evt.getSource() == self) return false;
   if (!this.isVisible()) return false;
   if (evt.getFeatures().size() == 0) return false;
   SeqFeatureI sf = evt.getFeatures().getFeature(0);
   // if strand of selection is not our strand return
   boolean is_reverse = (sf.getStrand() == -1);
   if (is_reverse != editorPanel.getReverseStrand()) return false;
   if (!(sf instanceof AnnotatedFeatureI)) return false; // repaint transVw?
   else return true;
 }
 /** True if the selection comes from outside world. false if from this OR editorPanel */
 private boolean isExternalSelection(FeatureSelectionEvent e) {
   if (e.getSource() == this || e.getSource() == editorPanel) return false;
   return true;
 }
 /** rue if the selection comes from outside world. false if from this OR editorPanel */
 private boolean isExternalSelection(FeatureSelectionEvent e) {
   return e.getSource() != this;
 }