public boolean equals(Object o) {
   getXModelObject();
   if (this == o) return true;
   if (o instanceof FileEditorInput) {
     if (getFile() == null) return false;
     FileEditorInput other = (FileEditorInput) o;
     IFile f1 = getFile();
     IFile f2 = other.getFile();
     if (f1 == null || f2 == null) return f1 == f2;
     if (f1.equals(f2)) return true;
     IPath loc1 = f1.getLocation();
     IPath loc2 = f2.getLocation();
     if (loc1 == null || loc2 == null) return loc1 == loc2;
     return loc1.equals(loc2);
   }
   if (o instanceof XModelObjectEditorInput) {
     return object.equals(((XModelObjectEditorInput) o).getXModelObject());
   }
   return false;
 }
 public String getToolTipText() {
   IFile f = (IFile) EclipseResourceUtil.getResource(object);
   if (f != null && f.exists()) return f.getLocation().toString();
   return object.getPresentationString();
 }