You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by wo...@apache.org on 2004/06/16 21:33:42 UTC

cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui/action SaveGraphics.java

woolfel     2004/06/16 12:33:42

  Added:       src/core/org/apache/jmeter/gui/action SaveGraphics.java
  Log:
  ok, here is the first shot at the Action class for saving graphics. I still
  haven't hooked it up to the menu stuff, since I don't know it well. Any
  one care to give it a shot?
  
  peter
  
  Revision  Changes    Path
  1.1                  jakarta-jmeter/src/core/org/apache/jmeter/gui/action/SaveGraphics.java
  
  Index: SaveGraphics.java
  ===================================================================
  // $Header: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/SaveGraphics.java,v 1.1 2004/06/16 19:33:42 woolfel Exp $
  /*
   * Copyright 2001-2004 The Apache Software Foundation.
   *
   * 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.apache.org/licenses/LICENSE-2.0
   *
   * 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 org.apache.jmeter.gui.action;
  
  import java.awt.event.ActionEvent;
  import java.util.HashSet;
  import java.util.Set;
  
  import javax.swing.JComponent;
  import javax.swing.JFileChooser;
  
  import org.apache.jmeter.exceptions.IllegalUserActionException;
  import org.apache.jmeter.gui.JMeterGUIComponent;
  import org.apache.jmeter.gui.GuiPackage;
  import org.apache.jmeter.gui.util.FileDialoger;
  import org.apache.jmeter.save.SaveGraphicsService;
  import org.apache.jmeter.visualizers.Printable;
  import org.apache.jorphan.logging.LoggingManager;
  import org.apache.log.Logger;
  
  /**
   * SaveGraphics action is meant to be a generic reusable Action.
   * The class will use GUIPackage to get the current gui. Once
   * it does, it checks to see if the element implements Printable
   * interface. If it does, it call getPrintable() to get the
   * JComponent.
   * By default, it will use SaveGraphicsService to save a PNG
   * file if no extension is provided. If either .png or .tif
   * is in the filename, it will call SaveGraphicsService to save
   * in the format.
   */
  public class SaveGraphics implements Command
  {
      transient private static Logger log = LoggingManager.getLoggerForClass();
      public final static String SAVE_GRAPHICS = "save_graphics";
  
      private static Set commands = new HashSet();
      static {
          commands.add(SAVE_GRAPHICS);
      }
  
      /**
       * Constructor for the Save object.
       */
      public SaveGraphics()
      {
      }
  
      /**
       * Gets the ActionNames attribute of the Save object.
       *
       * @return   the ActionNames value
       */
      public Set getActionNames()
      {
          return commands;
      }
  
      public void doAction(ActionEvent e) throws IllegalUserActionException
      {
  		JMeterGUIComponent component = null;
  		JComponent comp = null;
          if (!commands.contains(e.getActionCommand()))
          {
              throw new IllegalUserActionException("Invalid user command:" + e.getActionCommand());
          }
          if (e.getActionCommand().equals(SAVE_GRAPHICS))
          {
          	component = GuiPackage.getInstance().getCurrentGui();
          	// System.out.println("visualizer: " + component.getClass().getName());
          	// get the JComponent from the visualizer
          	if (component instanceof Printable){
  				comp = ((Printable)component).getPrintableComponent();
          	}
          }
  
          String filename; 
          if (!SAVE_GRAPHICS.equals(e.getActionCommand()))
          {
              JFileChooser chooser =
                  FileDialoger.promptToSaveFile(
                      GuiPackage
                          .getInstance()
                          .getTreeListener()
                          .getCurrentNode()
                          .getName());
              if (chooser == null)
              {
                  return;
              }
              // Get the string given from the choose and check
              // the file extension.
  			filename = chooser.getSelectedFile().getAbsolutePath();
              if (filename != null){
              	SaveGraphicsService save = new SaveGraphicsService();
              	String ext = filename.substring(filename.length()-4);
              	String name = filename.substring(0,filename.length()-4);
              	if (ext.equals(SaveGraphicsService.PNG_EXTENSION)){
  					save.saveJComponent(name,SaveGraphicsService.PNG,comp);
              	} else if(ext.equals(SaveGraphicsService.TIFF_EXTENSION)){
  					save.saveJComponent(name,SaveGraphicsService.TIFF,comp);
              	} else {
  					save.saveJComponent(filename,SaveGraphicsService.PNG,comp);
              	}
              }
          }
      }
  
      public static class Test extends junit.framework.TestCase
      {
          SaveGraphics save;
          public Test(String name)
          {
              super(name);
          }
  
          public void setUp()
          {
              save = new SaveGraphics();
          }
  
      }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org