package de.espirit.firstspirit.client.gui.applications;
import de.espirit.firstspirit.access.ServicesBroker;
import de.espirit.firstspirit.client.gui.applications.SwingApplicationConfiguration.ComponentFactory;
import javax.swing.JLabel;
import java.awt.Component;
/**
* Examples how to use a swing application
*
* @since 4.2.416
*/
public class SwingApplicationExample {
/**
* Creates a swing application tab.
*
* @param title the title used for the application tab
* @return the created application
* @since 4.2.416
*/
public SwingApplication createSwingApplication(final ServicesBroker servicesBroker, final String title) {
// get the applicationservice from servicesBroker
final ApplicationService appService = servicesBroker.getService(ApplicationService.class);
// create a new swing application configuration
final SwingApplicationConfiguration swingConfig = SwingApplicationConfiguration.GENERATOR.invoke().
title(title).
componentFactory(new ComponentFactory() {
public MyLabel createComponent() {
return new MyLabel("Swing app component");
}
public void dispose(final MyLabel label) {
label.cleanUp();
}
});
// open an application tab of type multitab
final ApplicationTab swingTab = appService.openApplication(SwingApplication.TYPE, swingConfig);
return swingTab.getApplication();
}
public static class MyLabel extends JLabel {
public MyLabel(final String label) {
super(label);
}
public void cleanUp() {
// clean up resources
}
}
}
|