/*
* Copyright 2004-2010 Information & Software Engineering Group (188/1)
* Institute of Software Technology and Interactive Systems
* Vienna University of Technology, Austria
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.ifs.tuwien.ac.at/dm/somtoolbox/license.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package at.tuwien.ifs.somtoolbox.apps.viewer.controls;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JLabel;
import at.tuwien.ifs.somtoolbox.apps.viewer.CommonSOMViewerStateData;
import at.tuwien.ifs.somtoolbox.apps.viewer.SOMPane;
import at.tuwien.ifs.somtoolbox.visualization.AbstractBackgroundImageVisualizer.VisualizationControlPanel;
import at.tuwien.ifs.somtoolbox.visualization.VisualizationUpdateListener;
/**
* @author Rudolf Mayer
* @version $Id: VisualizationControl.java 3873 2010-10-28 09:29:58Z frank $
*/
public class VisualizationControl extends AbstractViewerControl implements VisualizationUpdateListener {
private static final long serialVersionUID = 1L;
private SOMPane mapPane;
private final String initialTitle;
private final JLabel noVisLabel = new JLabel("No visualisation loaded");
public VisualizationControl(String title, CommonSOMViewerStateData state, SOMPane mapPane) {
super(title, state, new GridLayout(1, 1));
initialTitle = title;
this.mapPane = mapPane;
// setContentBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5));
updateVisualisationControl();
setVisible(true);
}
@Override
public void updateVisualization() {
mapPane.updateVisualization();
mapPane.repaint();
if (getPanel() != null) {
getPanel().revalidate();
getPanel().repaint();
}
}
@Override
public Dimension getMinimumSize() {
return getPreferredSize();
}
public void updateVisualisationControl() {
if (getContentPane().getComponentCount() > 0) {
getContentPane().removeAll();
}
VisualizationControlPanel panel = getPanel();
if (panel != null) {
getContentPane().add(panel);
mapPane.getCurrentVisualization().setVisualizationUpdateListener(this);
panel.updateSwitchControls();
setTitle(panel.getName());
} else {
getContentPane().add(noVisLabel);
// setCollapsed(true);
setTitle(initialTitle);
}
revalidate();
// getContentPane().repaint();
// updateVisualization();
}
private VisualizationControlPanel getPanel() {
if (mapPane != null && mapPane.getCurrentVisualization() != null) {
return mapPane.getCurrentVisualization().getControlPanel();
} else {
return null;
}
}
}