void open (File file) throws SlickException {
EffectPanel[] panels = (EffectPanel[])effectPanels.toArray(new EffectPanel[effectPanels.size()]);
for (int i = 0; i < panels.length; i++)
panels[i].remove();
HieroSettings settings = new HieroSettings(file.getAbsolutePath());
fontSizeSpinner.setValue(new Integer(settings.getFontSize()));
boldCheckBox.setSelected(settings.isBold());
italicCheckBox.setSelected(settings.isItalic());
padTopSpinner.setValue(new Integer(settings.getPaddingTop()));
padRightSpinner.setValue(new Integer(settings.getPaddingRight()));
padBottomSpinner.setValue(new Integer(settings.getPaddingBottom()));
padLeftSpinner.setValue(new Integer(settings.getPaddingLeft()));
padAdvanceXSpinner.setValue(new Integer(settings.getPaddingAdvanceX()));
padAdvanceYSpinner.setValue(new Integer(settings.getPaddingAdvanceY()));
glyphPageWidthCombo.setSelectedItem(new Integer(settings.getGlyphPageWidth()));
glyphPageHeightCombo.setSelectedItem(new Integer(settings.getGlyphPageHeight()));
for (Iterator iter = settings.getEffects().iterator(); iter.hasNext();) {
ConfigurableEffect settingsEffect = (ConfigurableEffect)iter.next();
for (int i = 0, n = effectsListModel.getSize(); i < n; i++) {
ConfigurableEffect effect = (ConfigurableEffect)effectsListModel.getElementAt(i);
if (effect.getClass() == settingsEffect.getClass()) {
effect.setValues(settingsEffect.getValues());