ui/src/main/java/ucar/nc2/ui/point/StationRegionDateChooser.java
private void makeMyUI() {

    AbstractAction incrFontAction = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
        stnRender.incrFontSize();
        redraw();
      }
    };
    BAMutil.setActionProperties(incrFontAction, "FontIncr", "increase font size", false, 'I', -1);

    AbstractAction decrFontAction = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
        stnRender.decrFontSize();
        redraw();
      }
    };
    BAMutil.setActionProperties(decrFontAction, "FontDecr", "decrease font size", false, 'D', -1);

    JCheckBox declutCB = new JCheckBox("Declutter", true);
    declutCB.addActionListener(e -> {
        setDeclutter(((JCheckBox) e.getSource()).isSelected());
    });

    AbstractAction bbAction = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
        geoSelectionMode = !geoSelectionMode;
        np.setGeoSelectionMode(geoSelectionMode);
        redraw();
      }
    };
    BAMutil.setActionProperties(bbAction, "geoselect", "select geo region", true, 'B', -1);
    bbAction.putValue(BAMutil.STATE, geoSelectionMode ? Boolean.TRUE : Boolean.FALSE);

    // the fields use a PrefPanel
    if (regionSelect) {
      minmaxPP = new PrefPanel(null, null);
      minLonField = minmaxPP.addDoubleField("minLon", "minLon", geoSelection.getMinX(), nfracDig, 0, 0, null);
      maxLonField = minmaxPP.addDoubleField("maxLon", "maxLon", geoSelection.getMaxX(), nfracDig, 2, 0, null);
      minLatField = minmaxPP.addDoubleField("minLat", "minLat", geoSelection.getMinY(), nfracDig, 4, 0, null);
      maxLatField = minmaxPP.addDoubleField("maxLat", "maxLat", geoSelection.getMaxY(), nfracDig, 6, 0, null);

      minmaxPP.finish(true, BorderLayout.EAST);
      minmaxPP.addActionListener(e -> {
          // "Apply" was called
          double minLon = minLonField.getDouble();
          double minLat = minLatField.getDouble();
          double maxLon = maxLonField.getDouble();
          double maxLat = maxLatField.getDouble();
          LatLonRect llbb = new LatLonRect(new LatLonPointImpl(minLat, minLon),
                  new LatLonPointImpl(maxLat, maxLon));
          setGeoSelection(llbb);
          redraw();
      });


    }

    // assemble
    setLayout(new BorderLayout());

    if (stationSelect) {
      BAMutil.addActionToContainer(toolPanel, incrFontAction);
      BAMutil.addActionToContainer(toolPanel, decrFontAction);
      toolPanel.add(declutCB);
    }

    if (regionSelect) BAMutil.addActionToContainer(toolPanel, bbAction);
    if (dateSelect) BAMutil.addActionToContainer(toolPanel, dateAction);

    JPanel upperPanel = new JPanel(new BorderLayout());
    if (regionSelect) upperPanel.add(minmaxPP, BorderLayout.NORTH);
    upperPanel.add(toolPanel, BorderLayout.SOUTH);

    JPanel statusPanel = new JPanel(new BorderLayout());
    statusPanel.setBorder(new EtchedBorder());
    JLabel positionLabel = new JLabel("position");
    statusPanel.add(positionLabel, BorderLayout.CENTER);

    np.setPositionLabel(positionLabel);
    add(upperPanel, BorderLayout.NORTH);
    add(np, BorderLayout.CENTER);
    add(statusPanel, BorderLayout.SOUTH);
  }
private void makeMyUI() {

    AbstractAction incrFontAction = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
        stnRender.incrFontSize();
        redraw();
      }
    };
    BAMutil.setActionProperties(incrFontAction, "FontIncr", "increase font size", false, 'I', -1);

    AbstractAction decrFontAction = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
        stnRender.decrFontSize();
        redraw();
      }
    };
    BAMutil.setActionProperties(decrFontAction, "FontDecr", "decrease font size", false, 'D', -1);

    JCheckBox declutCB = new JCheckBox("Declutter", true);
    declutCB.addActionListener(e -> {
        setDeclutter(((JCheckBox) e.getSource()).isSelected());
    });

    AbstractAction bbAction = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
        geoSelectionMode = !geoSelectionMode;
        np.setGeoSelectionMode(geoSelectionMode);
        redraw();
      }
    };
    BAMutil.setActionProperties(bbAction, "geoselect", "select geo region", true, 'B', -1);
    bbAction.putValue(BAMutil.STATE, geoSelectionMode ? Boolean.TRUE : Boolean.FALSE);

    // the fields use a PrefPanel
    if (regionSelect) {
      minmaxPP = new PrefPanel(null, null);
      minLonField = minmaxPP.addDoubleField("minLon", "minLon", geoSelection.getMinX(), nfracDig, 0, 0, null);
      maxLonField = minmaxPP.addDoubleField("maxLon", "maxLon", geoSelection.getMaxX(), nfracDig, 2, 0, null);
      minLatField = minmaxPP.addDoubleField("minLat", "minLat", geoSelection.getMinY(), nfracDig, 4, 0, null);
      maxLatField = minmaxPP.addDoubleField("maxLat", "maxLat", geoSelection.getMaxY(), nfracDig, 6, 0, null);

      minmaxPP.finish(true, BorderLayout.EAST);
      minmaxPP.addActionListener(e -> {
          // "Apply" was called
          double minLon = minLonField.getDouble();
          double minLat = minLatField.getDouble();
          double maxLon = maxLonField.getDouble();
          double maxLat = maxLatField.getDouble();
          LatLonRect llbb = new LatLonRect(new LatLonPointImpl(minLat, minLon),
                  new LatLonPointImpl(maxLat, maxLon));
          setGeoSelection(llbb);
          redraw();
      });


    }

    // assemble
    setLayout(new BorderLayout());

    if (stationSelect) {
      BAMutil.addActionToContainer(toolPanel, incrFontAction);
      BAMutil.addActionToContainer(toolPanel, decrFontAction);
      toolPanel.add(declutCB);
    }

    if (regionSelect) BAMutil.addActionToContainer(toolPanel, bbAction);
    if (dateSelect) BAMutil.addActionToContainer(toolPanel, dateAction);

    JPanel upperPanel = new JPanel(new BorderLayout());
    if (regionSelect) upperPanel.add(minmaxPP, BorderLayout.NORTH);
    upperPanel.add(toolPanel, BorderLayout.SOUTH);

    JPanel statusPanel = new JPanel(new BorderLayout());
    statusPanel.setBorder(new EtchedBorder());
    JLabel positionLabel = new JLabel("position");
    statusPanel.add(positionLabel, BorderLayout.CENTER);

    np.setPositionLabel(positionLabel);
    add(upperPanel, BorderLayout.NORTH);
    add(np, BorderLayout.CENTER);
    add(statusPanel, BorderLayout.SOUTH);
  }
private void makeMyUI ( ) { AbstractAction incrFontAction = new AbstractAction ( ) { public void actionPerformed ( ActionEvent e ) { stnRender . incrFontSize ( ) ; redraw ( ) ; } } ; BAMutil . setActionProperties ( incrFontAction , "FontIncr" , "increase font size" , false , ' ' , - 1 ) ; AbstractAction decrFontAction = new AbstractAction ( ) { public void actionPerformed ( ActionEvent e ) { stnRender . decrFontSize ( ) ; redraw ( ) ; } } ; BAMutil . setActionProperties ( decrFontAction , "FontDecr" , "decrease font size" , false , ' ' , - 1 ) ; JCheckBox declutCB = new JCheckBox ( "Declutter" , true ) ; declutCB . addActionListener ( e -> { setDeclutter ( ( ( JCheckBox ) e . getSource ( ) ) . isSelected ( ) ) ; } ) ; AbstractAction bbAction = new AbstractAction ( ) { public void actionPerformed ( ActionEvent e ) { geoSelectionMode = ! geoSelectionMode ; np . setGeoSelectionMode ( geoSelectionMode ) ; redraw ( ) ; } } ; BAMutil . setActionProperties ( bbAction , "geoselect" , "select geo region" , true , ' ' , - 1 ) ; bbAction . putValue ( BAMutil . STATE , geoSelectionMode ? Boolean . TRUE : Boolean . FALSE ) ; // the fields use a PrefPanel if ( regionSelect ) { minmaxPP = new PrefPanel ( null , null ) ; minLonField = minmaxPP . addDoubleField ( "minLon" , "minLon" , geoSelection . getMinX ( ) , nfracDig , 0 , 0 , null ) ; maxLonField = minmaxPP . addDoubleField ( "maxLon" , "maxLon" , geoSelection . getMaxX ( ) , nfracDig , 2 , 0 , null ) ; minLatField = minmaxPP . addDoubleField ( "minLat" , "minLat" , geoSelection . getMinY ( ) , nfracDig , 4 , 0 , null ) ; maxLatField = minmaxPP . addDoubleField ( "maxLat" , "maxLat" , geoSelection . getMaxY ( ) , nfracDig , 6 , 0 , null ) ; minmaxPP . finish ( true , BorderLayout . EAST ) ; minmaxPP . addActionListener ( e -> { // "Apply" was called double minLon = minLonField . getDouble ( ) ; double minLat = minLatField . getDouble ( ) ; double maxLon = maxLonField . getDouble ( ) ; double maxLat = maxLatField . getDouble ( ) ; LatLonRect llbb = new LatLonRect ( new LatLonPointImpl ( minLat , minLon ) , new LatLonPointImpl ( maxLat , maxLon ) ) ; setGeoSelection ( llbb ) ; redraw ( ) ; } ) ; } // assemble setLayout ( new BorderLayout ( ) ) ; if ( stationSelect ) { BAMutil . addActionToContainer ( toolPanel , incrFontAction ) ; BAMutil . addActionToContainer ( toolPanel , decrFontAction ) ; toolPanel . add ( declutCB ) ; } if ( regionSelect ) BAMutil . addActionToContainer ( toolPanel , bbAction ) ; if ( dateSelect ) BAMutil . addActionToContainer ( toolPanel , dateAction ) ; JPanel upperPanel = new JPanel ( new BorderLayout ( ) ) ; if ( regionSelect ) upperPanel . add ( minmaxPP , BorderLayout . NORTH ) ; upperPanel . add ( toolPanel , BorderLayout . SOUTH ) ; JPanel statusPanel = new JPanel ( new BorderLayout ( ) ) ; statusPanel . setBorder ( new EtchedBorder ( ) ) ; JLabel positionLabel = new JLabel ( "position" ) ; statusPanel . add ( positionLabel , BorderLayout . CENTER ) ; np . setPositionLabel ( positionLabel ) ; add ( upperPanel , BorderLayout . NORTH ) ; add ( np , BorderLayout . CENTER ) ; add ( statusPanel , BorderLayout . SOUTH ) ; }
override superclass
override superclass