docs: @Override
      public void doSaveAs() throws IOException {
  
          JFileChooser fileChooser = new JFileChooser();
          ExtensionFileFilter filterPNG = new ExtensionFileFilter("PNG Image Files", ".png");
          fileChooser.addChoosableFileFilter(filterPNG);
  
          ExtensionFileFilter filterJPG = new ExtensionFileFilter("JPG Image Files", ".jpg");
          fileChooser.addChoosableFileFilter(filterJPG);
  
          ExtensionFileFilter filterEPS = new ExtensionFileFilter("EPS Image Files", ".eps");
          fileChooser.addChoosableFileFilter(filterEPS);
  
          ExtensionFileFilter filterSVG = new ExtensionFileFilter("SVG Image Files", ".svg");
          fileChooser.addChoosableFileFilter(filterSVG);
          fileChooser.setCurrentDirectory(null);
          int option = fileChooser.showSaveDialog(this);
          if (option == JFileChooser.APPROVE_OPTION) {
              String fileDesc = fileChooser.getFileFilter().getDescription();
              if (fileDesc.startsWith("PNG")) {
                  if (!fileChooser.getSelectedFile().getName().toUpperCase().endsWith("PNG")) {
                      ChartUtilities.saveChartAsPNG(new File(fileChooser.getSelectedFile().getAbsolutePath() + ".png"), this.chart, this.getWidth(), this.getHeight());
                  } else {
                      ChartUtilities.saveChartAsPNG(fileChooser.getSelectedFile(), this.chart, this.getWidth(), this.getHeight());
                  }
              } else if (fileDesc.startsWith("JPG")) {
                  if (!fileChooser.getSelectedFile().getName().toUpperCase().endsWith("JPG")) {
                      ChartUtilities.saveChartAsJPEG(new File(fileChooser.getSelectedFile().getAbsolutePath() + ".jpg"), this.chart, this.getWidth(), this.getHeight());
                  } else {
                      ChartUtilities.saveChartAsJPEG(fileChooser.getSelectedFile(), this.chart, this.getWidth(), this.getHeight());
                  }
              }
  
          }//else
      }