Package weka.gui.visualize

# Class PrintableComponent

java.lang.Object
weka.gui.visualize.PrintableComponent

All Implemented Interfaces:
  `PrintableHandler`

public class PrintableComponent extends Object implements PrintableHandler
This class extends the component which is handed over in the constructor by a print dialog. The Print dialog is accessible via Alt+Shift+LeftMouseClick.

The individual JComponentWriter-descendants can be accessed by the `getWriter(String)` method, if the parameters need to be changed.

Version:
  $Revision: 7059 $
Author:
  FracPete (fracpete at waikato dot ac dot nz)
See Also:
  - `getWriters()`
  - `getWriter(String)`

## Constructor Summary

Constructors
Constructor
Description
`PrintableComponent(JComponent component)`
initializes the panel.

## Method Summary

Modifier and Type
Method
Description
`JComponent`
`getComponent()`
returns the GUI component this print dialog is part of.
`String`
`getSaveDialogTitle()`
returns the title for the save dialog.
`static String`
`getToolTipText(PrintableComponent component)`
Returns a tooltip only if the user wants it.
`JComponentWriter`
`getWriter(String name)`
returns the JComponentWriter associated with the given name, is `null` if not found.
`Hashtable`
`getWriters()`
returns a Hashtable with the current available JComponentWriters in the save dialog.
`double`
`getXScale()`
returns the scale factor for the x-axis.
`double`
`getYScale()`
returns the scale factor for the y-axis.
`void`
`saveComponent()`
displays a save dialog for saving the panel to a file.
`void`
`setSaveDialogTitle(String title)`
sets the title for the save dialog.
`void`
`setScale(double x, double y)`
sets the scale factor.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### PrintableComponent

public PrintableComponent(JComponent component)
initializes the panel.

Parameters:
  `component` - the component to enhance with printing functionality

## Method Details

### getComponent

public JComponent getComponent()
returns the GUI component this print dialog is part of.

Returns:
  the GUI component

### getToolTipText

public static String getToolTipText(PrintableComponent component)
Returns a tooltip only if the user wants it. If retrieved for the first, a dialog pops up and asks the user whether the tooltip should always appear or not. The weka/gui/visualize/Visualize.props is then written in the user's home directory.

Parameters:
  `component` - the PrintableComponent to ask for
Returns:
  null if the user doesn't want the tooltip, otherwise the text

### getWriters

public Hashtable getWriters()
returns a Hashtable with the current available JComponentWriters in the save dialog. the key of the Hashtable is the description of the writer.

Specified by:
  `getWriters` in interface `PrintableHandler`
Returns:
  all currently available JComponentWriters
See Also:
  - `JComponentWriter.getDescription()`

### getWriter

public JComponentWriter getWriter(String name)
returns the JComponentWriter associated with the given name, is `null` if not found.

Specified by:
  `getWriter` in interface `PrintableHandler`
Parameters:
  `name` - the name of the writer
Returns:
  the writer associated with the given name
See Also:
  - `JComponentWriter.getDescription()`

### setSaveDialogTitle

public void setSaveDialogTitle(String title)
sets the title for the save dialog.

Specified by:
  `setSaveDialogTitle` in interface `PrintableHandler`
Parameters:
  `title` - the title of the save dialog

### getSaveDialogTitle

public String getSaveDialogTitle()
returns the title for the save dialog.

Specified by:
  `getSaveDialogTitle` in interface `PrintableHandler`
Returns:
  the title of the save dialog

### setScale

public void setScale(double x, double y)
sets the scale factor.

Specified by:
  `setScale` in interface `PrintableHandler`
Parameters:
  `x` - the scale factor for the x-axis
  `y` - the scale factor for the y-axis

### getXScale

public double getXScale()
returns the scale factor for the x-axis.

Specified by:
  `getXScale` in interface `PrintableHandler`
Returns:
  the scale factor

### getYScale

public double getYScale()
returns the scale factor for the y-axis.

Specified by:
  `getYScale` in interface `PrintableHandler`
Returns:
  the scale factor

### saveComponent

public void saveComponent()
displays a save dialog for saving the panel to a file. Fixes a bug with the Swing JFileChooser: if you entered a new filename in the save dialog and press Enter the `getSelectedFile` method returns `null` instead of the filename.
To solve this annoying behavior we call the save dialog once again s.t. the filename is set. Might look a little bit strange to the user, but no NullPointerException! ;-)

Specified by:
  `saveComponent` in interface `PrintableHandler`