* alternative overlays. A vector ot previewPanels manages the preview on the alternatives.
*/
public void reInitialize() {
RecordModel model = (RecordModel) getModel();
Vector alternativeOverlays = model.getAlternativeOverlaysFromDocument((Document)model.get(RecordModel.CURRENT_DOC));
set(AlternativeOverlaysPreviewDialog.DIALOG_WIDTH, new Integer(10));
set(AlternativeOverlaysPreviewDialog.DIALOG_HEIGTH, new Integer(250));
if (alternativeOverlays != null) {
PreviewPanel[] previewPanels = new PreviewPanel[alternativeOverlays.size()];
PreviewRadioButton[] previewRadioButtons = new PreviewRadioButton[alternativeOverlays.size()];
set(AlternativeOverlaysPreviewDialog.PREVIEW_BUTTON_GROUP, new ButtonGroup());
//clearing the panel for reset, getting new alternatives
removeAll();
//for every alternative overlay a panel is created
for (int i = 0; i < alternativeOverlays.size(); i++) {
JPanel previewContainerPanel = new JPanel();
previewContainerPanel.setPreferredSize(new Dimension(150, 200));
String overlayName = (String) alternativeOverlays.elementAt(i);
previewPanels[i] = new PreviewPanel();
previewPanels[i].setBorder(BorderFactory.createLineBorder(Color.BLACK));
previewPanels[i].setImage(model.getImageFromDocument(model.getDocumentByName(overlayName)));
//only one can be chosen, by mouse or with tab -> radioButtons
previewRadioButtons[i] = new PreviewRadioButton(overlayName);
previewRadioButtons[i].addActionListener((Record) getController());
previewRadioButtons[i].setActionCommand(Record.CHANGE_ALTERNATIVE_OVERLAY_PREVIEW_ID);
previewRadioButtons[i].addKeyListener((Record) getController());
((ButtonGroup)get(AlternativeOverlaysPreviewDialog.PREVIEW_BUTTON_GROUP)).add(previewRadioButtons[i]);
previewContainerPanel.add(previewRadioButtons[i]);
previewContainerPanel.add(previewPanels[i]);
previewContainerPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
//adding one panel containing an overlay preview
add(previewContainerPanel);
int width = (new Double(previewContainerPanel.getPreferredSize().getWidth())).intValue();
int newWidth = width + ((Integer)get(AlternativeOverlaysPreviewDialog.DIALOG_WIDTH)).intValue() + 10; // 10 == offset!!!
set(AlternativeOverlaysPreviewDialog.DIALOG_WIDTH, new Integer(newWidth));
}
if(previewRadioButtons.length>0){
if (previewRadioButtons[0] != null) {
previewRadioButtons[0].setSelected(true);
}
}
setDialogBounds(createDialogBounds());
} else {
//if there are no alternatives, clear all, resize and give message
removeAll();
add(new JLabel("No alternative overlays available."));
set(AlternativeOverlaysPreviewDialog.DIALOG_WIDTH, new Integer(200));
set(AlternativeOverlaysPreviewDialog.DIALOG_HEIGTH, new Integer(50));
setDialogBounds(createDialogBounds());
}
}