# Interface SwingController

public interface SwingController
SwingController is an interface that org.jmol.awtjs.swing classes will need. It must be implemented as a JavaScript object PRIOR to any calls to create any components. In JSmol it is Jmol.Swing (see JsmolCore.js) There should be one and only one SwingController on a page. It is called by its class name "SwingController" directly.

Author:
  hansonr

## Method Summary

Modifier and Type
Method
Description
`void`
`click(HTMLElement element, HTMLWindowEvent event)`
Fired from clicking an element such as a button or check box or table entry, or from entering text in a text box.
`void`
`dispose(Component dialog)`
Remove this component's HTML5 equivalent and clear references to it.
`void`
`getScreenDimensions(Dimension d)`
Return the width and height of the window in d.
`void`
`register(Component c, String type)`
Set c's id to a unique identifier and add it to an associative array that will associate that id with c.
`void`
`setDialog(Component dialog)`
The HTML for this dialog has been generated.
`void`
`setSelected(Component chk)`
Convey to the HTML object that this check box's selection has been changed.
`void`
`setSelectedIndex(Component cmb)`
Convey to the HTML object that this combo box's selected item has been changed.
`void`
`setText(String text)`
Convey to the HTML object that this component's text has been changed.
`void`
`setVisible(Component c)`
Convey to the HTML object that this component's text has been changed.
`void`
`windowClosing(HTMLElement element)`
Called by clicking the [x] in the corner of the dialog; send a notification back to the manager via processWindowClosing(key) var id = $("div.JDialog:has(#" + element.id + ")")[0].id var dialog = Jmol.Swing.htDialogs[id]; dialog.manager.processWindowClosing(dialog.registryKey);

## Method Details

### click

void click(HTMLElement element, HTMLWindowEvent event)
Fired from clicking an element such as a button or check box or table entry, or from entering text in a text box. SwingController should make the changes in the underlying "Java" object directly, then send notification of the event to the manager. For instance: var component = Jmol.Swing.htDialogs[element.id]; var info = component.toString(); if (info.indexOf("JCheck") >= 0) component.selected = element.checked; var id = $("div.JDialog:has(#" + element.id + ")")[0].id var dialog = Jmol.Swing.htDialogs[id]; dialog.manager.actionPerformed(component ? component.name : dialog.registryKey + "/" + element.id);

Parameters:
  `element` -
  `event` -

### dispose

void dispose(Component dialog)
Remove this component's HTML5 equivalent and clear references to it.

Parameters:
  `dialog` -

### getScreenDimensions

void getScreenDimensions(Dimension d)
Return the width and height of the window in d. For example: d.width = $(window).width(); d.height = $(window).height();

Parameters:
  `d` -

### register

void register(Component c, String type)
Set c's id to a unique identifier and add it to an associative array that will associate that id with c.

Parameters:
  `c` -
  `type` -

### setDialog

void setDialog(Component dialog)
The HTML for this dialog has been generated. Now create the HTML on the page for this dialog based on dialog.html and wrap it appropriately.

Parameters:
  `dialog` -

### setSelected

void setSelected(Component chk)
Convey to the HTML object that this check box's selection has been changed. $("#" + chk.id).prop('checked', !!chk.selected);

Parameters:
  `chk` -

### setSelectedIndex

void setSelectedIndex(Component cmb)
Convey to the HTML object that this combo box's selected item has been changed. $("#" + cmb.id).prop('selectedIndex', cmb.selectedIndex);

Parameters:
  `cmb` -

### setText

void setText(String text)
Convey to the HTML object that this component's text has been changed. $("#" + btn.id).prop('value', btn.text);

Parameters:
  `text` -

### setVisible

void setVisible(Component c)
Convey to the HTML object that this component's text has been changed. if (c._visible) $("#" + c.id).show(); else $("#" + c.id).hide();

Parameters:
  `c` -

### windowClosing

void windowClosing(HTMLElement element)
Called by clicking the [x] in the corner of the dialog; send a notification back to the manager via processWindowClosing(key) var id = $("div.JDialog:has(#" + element.id + ")")[0].id var dialog = Jmol.Swing.htDialogs[id]; dialog.manager.processWindowClosing(dialog.registryKey);

Parameters:
  `element` -