_alignwith.add(ap);
}
;
+ // TODO: refactor to allow concrete classes to register buttons for adding
+ // here
+ // currently have to override to add buttons back in after they are cleared
+ // in this loop
for (Component c : viewerActionMenu.getMenuComponents())
{
if (c != alignStructs)
*/
protected List<StructureViewerBase> getViewersFor(AlignmentPanel alp)
{
- return Desktop.instance.getStructureViewers(alp, this.getClass());
+ return Desktop.getInstance().getStructureViewers(alp, this.getClass());
}
@Override
*/
public File saveSession()
{
- // TODO: a wait loop to ensure the file is written fully before returning?
- return getBinding() == null ? null : getBinding().saveSession();
+ if (getBinding() == null) { return null;}
+ File session = getBinding().saveSession();
+ long l = session.length();
+ int wait=50;
+ do {
+ try {
+ Thread.sleep(5);
+ } catch (InterruptedException e) {
+ }
+ long nextl = session.length();
+ if (nextl!=l)
+ {
+ wait = 50;
+ l=nextl;
+ }
+ } while (--wait>0);
+ return session;
}
/**
+ ex.getMessage());
}
}
-
+ @Override
+ public boolean hasViewerActionsMenu()
+ {
+ return viewerActionMenu != null && viewerActionMenu.isEnabled()
+ && viewerActionMenu.getItemCount() > 0
+ && viewerActionMenu.isVisible();
+ }
}