/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.cismap.commons.gui.simplelayerwidget; //import de.cismet.cismap.commons.DefaultMappingModel; import edu.umd.cs.piccolo.PNode; import java.awt.GridBagConstraints; import java.awt.event.MouseListener; import java.util.Iterator; import java.util.Vector; import de.cismet.cismap.commons.ServiceLayer; import de.cismet.cismap.commons.gui.MappingComponent; import de.cismet.cismap.commons.rasterservice.MapService; /** * DOCUMENT ME! * * @author thorsten.hell@cismet.de * @version $Revision$, $Date$ */ public class SimpleInternalLayerWidget extends javax.swing.JInternalFrame implements MouseListener, LayerControlSelectionChangedListener { //~ Instance fields -------------------------------------------------------- private final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(this.getClass()); private Vector<LayerControl> rasterLayerControls = new Vector<LayerControl>(); private Vector<LayerControl> featureLayerControls = new Vector<LayerControl>(); private LayerControl featureCollectionControl; private MappingComponent mappingComponent; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JPanel panFeatureCollection; private javax.swing.JPanel panFeatureServices; private javax.swing.JPanel panRasterServices; // End of variables declaration//GEN-END:variables //~ Constructors ----------------------------------------------------------- /** * Creates new form SimpleInternalLayerWidget. * * @param mappingComponent DOCUMENT ME! */ public SimpleInternalLayerWidget(final MappingComponent mappingComponent) { initComponents(); putClientProperty("JInternalFrame.isPalette", Boolean.TRUE); // NOI18N this.mappingComponent = mappingComponent; //setClosable(true); } //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! * * @param errorAbolitionTime DOCUMENT ME! * * @return DOCUMENT ME! */ public LayerControl showFeatureCollection(final int errorAbolitionTime) { final LayerControl control = new LayerControl( mappingComponent, LayerControl.FEATURE_COLLECTION, errorAbolitionTime); control.addLayerSelectionChangedListener(this); final GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); panFeatureCollection.add(control, gridBagConstraints); featureCollectionControl = control; control.addMouseListener(this); return control; } /** * DOCUMENT ME! * * @param position DOCUMENT ME! * @param layer DOCUMENT ME! * @param errorAbolitionTime DOCUMENT ME! * * @return DOCUMENT ME! */ public LayerControl addRasterService(final int position, final ServiceLayer layer, final int errorAbolitionTime) { final LayerControl control = new LayerControl( mappingComponent, LayerControl.RASTER_SERVICE, errorAbolitionTime); control.setLayer(layer); control.addLayerSelectionChangedListener(this); final GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.gridx = 0; gridBagConstraints.gridy = position; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); panRasterServices.add(control, gridBagConstraints); pack(); rasterLayerControls.add(control); control.addMouseListener(this); control.syncIconWithEnabledState(); return control; } /** * DOCUMENT ME! * * @param position DOCUMENT ME! * @param layer DOCUMENT ME! * @param errorAbolitionTime DOCUMENT ME! * * @return DOCUMENT ME! */ public LayerControl addFeatureService(final int position, final ServiceLayer layer, final int errorAbolitionTime) { final LayerControl control = new LayerControl( mappingComponent, LayerControl.FEATURE_SERVICE, errorAbolitionTime); control.setLayer(layer); control.addLayerSelectionChangedListener(this); final GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.gridx = 0; gridBagConstraints.gridy = position; gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2); panFeatureServices.add(control, gridBagConstraints); pack(); featureLayerControls.add(control); control.addMouseListener(this); control.syncIconWithEnabledState(); return control; } /** * This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The * content of this method is always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; panRasterServices = new javax.swing.JPanel(); panFeatureCollection = new javax.swing.JPanel(); panFeatureServices = new javax.swing.JPanel(); jSeparator1 = new javax.swing.JSeparator(); jSeparator2 = new javax.swing.JSeparator(); getContentPane().setLayout(new java.awt.GridBagLayout()); setResizable(true); addKeyListener(new java.awt.event.KeyAdapter() { @Override public void keyPressed(final java.awt.event.KeyEvent evt) { formKeyPressed(evt); } }); panRasterServices.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; getContentPane().add(panRasterServices, gridBagConstraints); panFeatureCollection.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; getContentPane().add(panFeatureCollection, gridBagConstraints); panFeatureServices.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; getContentPane().add(panFeatureServices, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; getContentPane().add(jSeparator1, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; getContentPane().add(jSeparator2, gridBagConstraints); pack(); } // </editor-fold>//GEN-END:initComponents /** * DOCUMENT ME! * * @param evt DOCUMENT ME! */ private void formKeyPressed(final java.awt.event.KeyEvent evt) { //GEN-FIRST:event_formKeyPressed } //GEN-LAST:event_formKeyPressed // public static void main(String[] args) { // try { // //ClearLookManager.setMode(ClearLookMode.DEBUG); // PlasticLookAndFeel.setMyCurrentTheme(new ExperienceBlue()); // //com.jgoodies.plaf.plastic.PlasticLookAndFeel.setMyCurrentTheme(new com.jgoodies.plaf.plastic.theme.DesertBlue()); // javax.swing.UIManager.setLookAndFeel(new Plastic3DLookAndFeel()); // } catch (Exception e) { // } // JFrame frame = new JFrame("Example"); // frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // JDesktopPane jdp=new JDesktopPane(); // frame.setContentPane(jdp); // SimpleInternalLayerWidget sil= new SimpleInternalLayerWidget(); // jdp.add(sil); // sil.show(); // // frame.setSize(300, 300); // frame.setVisible(true); // // } /** * Invoked when a mouse button has been released on a component. * * @param e DOCUMENT ME! */ @Override public void mouseReleased(final java.awt.event.MouseEvent e) { } /** * Invoked when a mouse button has been pressed on a component. * * @param e DOCUMENT ME! */ @Override public void mousePressed(final java.awt.event.MouseEvent e) { } /** * Invoked when the mouse exits a component. * * @param e DOCUMENT ME! */ @Override public void mouseExited(final java.awt.event.MouseEvent e) { } /** * Invoked when the mouse enters a component. * * @param e DOCUMENT ME! */ @Override public void mouseEntered(final java.awt.event.MouseEvent e) { } /** * Invoked when the mouse button has been clicked (pressed and released) on a component. * * @param e DOCUMENT ME! */ @Override public void mouseClicked(final java.awt.event.MouseEvent e) { if ((e.getSource() instanceof LayerControl) && (e.getClickCount() > 1) && (e.getButton() == e.BUTTON1)) { final LayerControl flashControl = (LayerControl)e.getSource(); final Vector allControls = new Vector(); allControls.addAll(rasterLayerControls); allControls.addAll(featureLayerControls); allControls.remove(flashControl); flashControl.flashObject(true, 1000, 3000); final Iterator it = allControls.iterator(); final java.awt.event.ActionListener timerAction = new java.awt.event.ActionListener() { @Override public void actionPerformed(final java.awt.event.ActionEvent event) { while (it.hasNext()) { final LayerControl lc = (LayerControl)it.next(); lc.flashObject(false, 0, 4000); } } }; final javax.swing.Timer timer = new javax.swing.Timer(1000, timerAction); timer.setRepeats(false); timer.start(); } } @Override public void layerControlSelectionChanged(final LayerControl lc) { // boolean sel=lc.isSelected(); // for (LayerControl lac:rasterLayerControls) { // lac.setSelected(false); // } // for (LayerControl lac:featureLayerControls) { // lac.setSelected(false); // } // lc.setSelected(sel); } @Override public void layerWantsUp(final LayerControl lc) { // log.debug("layerWantsUp"); // if (rasterLayerControls.contains(lc)) { // if (mappingComponent.getMappingModel() instanceof DefaultMappingModel) { // DefaultMappingModel dmm=((DefaultMappingModel)(mappingComponent.getMappingModel())); // int newP=dmm.moveRasterServiceUp((RasterService)lc.getLayer()); // PNode p=((RasterService)(dmm.getRasterServices().get(newP+1))).getPImage(); // lc.getPNode().moveInBackOf(p); // // // } // } else if (featureLayerControls.contains(lc)) { // if (mappingComponent.getMappingModel() instanceof DefaultMappingModel) { // DefaultMappingModel dmm=((DefaultMappingModel)(mappingComponent.getMappingModel())); // int newP=dmm.moveFeatureServiceUp((FeatureService)lc.getLayer()); // PNode p=((FeatureService)(dmm.getFeatureServices().get(newP+1))).getPNode(); // lc.getPNode().moveInBackOf(p); // // } // // } } @Override public void layerWantsDown(final LayerControl lc) { // log.debug("layerWantsDown"); // if (rasterLayerControls.contains(lc)) { // if (mappingComponent.getMappingModel() instanceof DefaultMappingModel) { // ((DefaultMappingModel)(mappingComponent.getMappingModel())).moveRasterServiceDown((RasterService)lc.getLayer()); // } // } else if (featureLayerControls.contains(lc)) { // if (mappingComponent.getMappingModel() instanceof DefaultMappingModel) { // ((DefaultMappingModel)(mappingComponent.getMappingModel())).moveFeatureServiceDown((FeatureService)lc.getLayer()); // } // } } }