{
frame = new JInternalFrame();
frame.setContentPane(this);
- if (Platform.isAMac())
+ Rectangle bounds = af.getFeatureSettingsGeometry();
+ String title;
+ if (af.getAlignPanels().size() > 1 || Desktop.getAlignmentPanels(
+ af.alignPanel.av.getSequenceSetId()).length > 1)
{
- Desktop.addInternalFrame(frame,
- MessageManager.getString("label.sequence_feature_settings"),
- 600, 480);
+ title = MessageManager.formatMessage(
+ "label.sequence_feature_settings_for_view",
+ af.alignPanel.getViewName());
}
else
{
- Desktop.addInternalFrame(frame,
- MessageManager.getString("label.sequence_feature_settings"),
- 600, 450);
+ title = MessageManager.getString("label.sequence_feature_settings");
+ }
+ if (bounds == null)
+ {
+ if (Platform.isAMac())
+ {
+ Desktop.addInternalFrame(frame, title, 600, 480);
+ }
+ else
+ {
+ Desktop.addInternalFrame(frame, title, 600, 450);
+ }
+ }
+ else
+ {
+ Desktop.addInternalFrame(frame, title,
+ false, bounds.width, bounds.height);
+ frame.setBounds(bounds);
+ frame.setVisible(true);
}
frame.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT));
public void internalFrameClosed(
javax.swing.event.InternalFrameEvent evt)
{
- closeFeatureSettings();
+ featureSettings_isClosed();
};
});
frame.setLayer(JLayeredPane.PALETTE_LAYER);
}
@Override
- public void closeFeatureSettings()
+ public void featureSettings_isClosed()
{
fr.removePropertyChangeListener(change);
change = null;
table.repaint();
}
+ /**
+ * close ourselves but leave any existing UI handlers (e.g a CDS/Protein tabbed
+ * feature settings dialog) intact
+ */
+ public void closeOldSettings()
+ {
+ closeDialog(false);
+ }
+
+ /**
+ * close the feature settings dialog (and any containing frame)
+ */
public void close()
{
+ closeDialog(true);
+ }
+
+ private void closeDialog(boolean closeContainingFrame)
+ {
try
{
if (frame != null)
{
+ af.setFeatureSettingsGeometry(frame.getBounds());
frame.setClosed(true);
}
else
{
SplitContainerI sc = af.getSplitViewContainer();
- sc.closeFeatureSettings(this);
+ sc.closeFeatureSettings(this, closeContainingFrame);
af.featureSettings = null;
}
} catch (Exception exe)
return button;
}
}
+
+ public boolean isOpen()
+ {
+ if (af.getSplitViewContainer() != null)
+ {
+ return af.getSplitViewContainer().isFeatureSettingsOpen();
+ }
+ return frame != null && !frame.isClosed();
+ }
}
class FeatureIcon implements Icon