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