use of org.pentaho.di.ui.xul.KettleXulLoader in project pdi-dataservice-server-plugin by pentaho.
the class DataServiceTestDialog method initXul.
private Document initXul(Composite parent) throws KettleException {
try {
SwtXulLoader swtLoader = new KettleXulLoader();
swtLoader.setOuterContext(parent);
swtLoader.registerClassLoader(getClass().getClassLoader());
XulDomContainer container = swtLoader.loadXul(XUL_PATH, resourceBundle);
container.addEventHandler(dataServiceTestController);
final XulRunner runner = new SwtXulRunner();
runner.addContainer(container);
runner.initialize();
return container.getDocumentRoot();
} catch (XulException xulException) {
throw new KettleException("Failed to initialize DataServicesTestDialog.", xulException);
}
}
use of org.pentaho.di.ui.xul.KettleXulLoader in project pentaho-kettle by pentaho.
the class Spoon method init.
public void init(TransMeta ti) {
FormLayout layout = new FormLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
shell.setLayout(layout);
addFileListener(new TransFileListener());
addFileListener(new JobFileListener());
// INIT Data structure
if (ti != null) {
delegates.trans.addTransformation(ti);
}
// Load settings in the props
loadSettings();
transExecutionConfiguration = new TransExecutionConfiguration();
transExecutionConfiguration.setGatheringMetrics(true);
transPreviewExecutionConfiguration = new TransExecutionConfiguration();
transPreviewExecutionConfiguration.setGatheringMetrics(true);
transDebugExecutionConfiguration = new TransExecutionConfiguration();
transDebugExecutionConfiguration.setGatheringMetrics(true);
jobExecutionConfiguration = new JobExecutionConfiguration();
jobExecutionConfiguration.setGatheringMetrics(true);
// Clean out every time we start, auto-loading etc, is not a good idea
// If they are needed that often, set them in the kettle.properties file
//
variables = new RowMetaAndData(new RowMeta());
// props.setLook(shell);
shell.setImage(GUIResource.getInstance().getImageSpoon());
cursor_hourglass = new Cursor(display, SWT.CURSOR_WAIT);
cursor_hand = new Cursor(display, SWT.CURSOR_HAND);
Composite sashComposite = null;
MainSpoonPerspective mainPerspective = null;
try {
KettleXulLoader xulLoader = new KettleXulLoader();
xulLoader.setIconsSize(16, 16);
xulLoader.setOuterContext(shell);
xulLoader.setSettingsManager(XulSpoonSettingsManager.getInstance());
ApplicationWindowLocal.setApplicationWindow(this);
mainSpoonContainer = xulLoader.loadXul(XUL_FILE_MAIN, new XulSpoonResourceBundle());
BindingFactory bf = new DefaultBindingFactory();
bf.setDocument(mainSpoonContainer.getDocumentRoot());
mainSpoonContainer.addEventHandler(this);
/* menuBar = (XulMenubar) */
mainSpoonContainer.getDocumentRoot().getElementById("spoon-menubar");
mainToolbar = (XulToolbar) mainSpoonContainer.getDocumentRoot().getElementById("main-toolbar");
props.setLook((Control) mainToolbar.getManagedObject(), Props.WIDGET_STYLE_TOOLBAR);
/* canvas = (XulVbox) */
mainSpoonContainer.getDocumentRoot().getElementById("trans-job-canvas");
deck = (SwtDeck) mainSpoonContainer.getDocumentRoot().getElementById("canvas-deck");
final Composite tempSashComposite = new Composite(shell, SWT.None);
sashComposite = tempSashComposite;
mainPerspective = new MainSpoonPerspective(tempSashComposite, tabfolder);
if (startupPerspective == null) {
startupPerspective = mainPerspective.getId();
}
SpoonPerspectiveManager.getInstance().setStartupPerspective(startupPerspective);
SpoonPerspectiveManager.getInstance().addPerspective(mainPerspective);
SpoonPluginManager.getInstance().applyPluginsForContainer("spoon", mainSpoonContainer);
SpoonPerspectiveManager.getInstance().setDeck(deck);
SpoonPerspectiveManager.getInstance().setXulDoc(mainSpoonContainer);
SpoonPerspectiveManager.getInstance().initialize();
} catch (Exception e) {
LogChannel.GENERAL.logError("Error initializing transformation", e);
}
// addBar();
// Set the shell size, based upon previous time...
WindowProperty windowProperty = props.getScreen(APP_TITLE);
if (windowProperty != null) {
windowProperty.setShell(shell);
} else {
shell.pack();
// Default = maximized!
shell.setMaximized(true);
}
layout = new FormLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
GridData data = new GridData();
data.grabExcessHorizontalSpace = true;
data.grabExcessVerticalSpace = true;
data.verticalAlignment = SWT.FILL;
data.horizontalAlignment = SWT.FILL;
sashComposite.setLayoutData(data);
sashComposite.setLayout(layout);
sashform = new SashForm(sashComposite, SWT.HORIZONTAL);
FormData fdSash = new FormData();
fdSash.left = new FormAttachment(0, 0);
// fdSash.top = new FormAttachment((org.eclipse.swt.widgets.ToolBar)
// toolbar.getNativeObject(), 0);
fdSash.top = new FormAttachment(0, 0);
fdSash.bottom = new FormAttachment(100, 0);
fdSash.right = new FormAttachment(100, 0);
sashform.setLayoutData(fdSash);
createPopupMenus();
addTree();
addTabs();
mainPerspective.setTabset(this.tabfolder);
((Composite) deck.getManagedObject()).layout(true, true);
SpoonPluginManager.getInstance().notifyLifecycleListeners(SpoonLifeCycleEvent.STARTUP);
// Add a browser widget
if (props.showWelcomePageOnStartup()) {
showWelcomePage();
}
// Allow data to be copied or moved to the drop target
int operations = DND.DROP_COPY | DND.DROP_DEFAULT;
DropTarget target = new DropTarget(shell, operations);
// Receive data in File format
final FileTransfer fileTransfer = FileTransfer.getInstance();
Transfer[] types = new Transfer[] { fileTransfer };
target.setTransfer(types);
target.addDropListener(new DropTargetListener() {
@Override
public void dragEnter(DropTargetEvent event) {
if (event.detail == DND.DROP_DEFAULT) {
if ((event.operations & DND.DROP_COPY) != 0) {
event.detail = DND.DROP_COPY;
} else {
event.detail = DND.DROP_NONE;
}
}
}
@Override
public void dragOver(DropTargetEvent event) {
event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
}
@Override
public void dragOperationChanged(DropTargetEvent event) {
if (event.detail == DND.DROP_DEFAULT) {
if ((event.operations & DND.DROP_COPY) != 0) {
event.detail = DND.DROP_COPY;
} else {
event.detail = DND.DROP_NONE;
}
}
}
@Override
public void dragLeave(DropTargetEvent event) {
}
@Override
public void dropAccept(DropTargetEvent event) {
}
@Override
public void drop(DropTargetEvent event) {
if (fileTransfer.isSupportedType(event.currentDataType)) {
String[] files = (String[]) event.data;
for (String file : files) {
openFile(file, false);
}
}
}
});
// listen for steps being added or removed
PluginRegistry.getInstance().addPluginListener(StepPluginType.class, new PluginTypeListener() {
@Override
public void pluginAdded(Object serviceObject) {
// hack to get the tree to reload
previousShowTrans = false;
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
refreshCoreObjects();
}
});
}
@Override
public void pluginRemoved(Object serviceObject) {
// hack to get the tree to reload
previousShowTrans = false;
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
refreshCoreObjects();
}
});
}
@Override
public void pluginChanged(Object serviceObject) {
}
});
}
use of org.pentaho.di.ui.xul.KettleXulLoader in project pentaho-kettle by pentaho.
the class XulDatabaseExplorerDialog method open.
public boolean open() {
try {
KettleXulLoader theLoader = new KettleXulLoader();
theLoader.setSettingsManager(XulSpoonSettingsManager.getInstance());
theLoader.setSettingsManager(new DefaultSettingsManager(new File(Const.getKettleDirectory() + Const.FILE_SEPARATOR + "xulSettings.properties")));
theLoader.setOuterContext(this.shell);
this.container = theLoader.loadXul(XUL, new XulDatabaseExplorerResourceBundle());
XulDialog theExplorerDialog = (XulDialog) this.container.getDocumentRoot().getElementById("databaseExplorerDialog");
SpoonPluginManager.getInstance().applyPluginsForContainer("database_dialog", container);
this.controller = new XulDatabaseExplorerController(this.shell, this.databaseMeta, this.databases, look);
this.container.addEventHandler(this.controller);
this.runner = new SwtXulRunner();
this.runner.addContainer(this.container);
this.runner.initialize();
this.controller.setSelectedSchemaAndTable(schemaName, selectedTable);
// show dialog if connection is success only.
if (controller.getActionStatus() == UiPostActionStatus.OK) {
theExplorerDialog.show();
}
} catch (Exception e) {
LogChannel.GENERAL.logError("Error exploring database", e);
}
return this.controller.getSelectedTable() != null;
}
use of org.pentaho.di.ui.xul.KettleXulLoader in project pentaho-kettle by pentaho.
the class XulStepFieldsDialog method open.
public void open(boolean isAcceptButtonHidden) {
try {
KettleXulLoader theLoader = new KettleXulLoader();
theLoader.setOuterContext(this.shell);
theLoader.setSettingsManager(XulSpoonSettingsManager.getInstance());
this.container = theLoader.loadXul(XUL);
this.controller = new XulStepFieldsController(this.shell, this.databaseMeta, this.schemaTableCombo, this.rowMeta);
this.controller.setShowAcceptButton(isAcceptButtonHidden);
this.container.addEventHandler(this.controller);
this.runner = new SwtXulRunner();
this.runner.addContainer(this.container);
this.runner.initialize();
XulDialog thePreviewDialog = (XulDialog) this.container.getDocumentRoot().getElementById("stepFieldsDialog");
thePreviewDialog.show();
((SwtDialog) thePreviewDialog).dispose();
} catch (Exception e) {
logger.info(e);
}
}
use of org.pentaho.di.ui.xul.KettleXulLoader in project pentaho-kettle by pentaho.
the class SpoonBrowser method addToolBar.
protected void addToolBar() {
try {
XulLoader loader = new KettleXulLoader();
loader.setSettingsManager(XulSpoonSettingsManager.getInstance());
ResourceBundle bundle = GlobalMessages.getBundle("org/pentaho/di/ui/spoon/messages/messages");
XulDomContainer xulDomContainer = loader.loadXul(XUL_FILE_BROWSER_TOOLBAR, bundle);
xulDomContainer.addEventHandler(this);
toolbar = (XulToolbar) xulDomContainer.getDocumentRoot().getElementById("nav-toolbar");
@SuppressWarnings("unused") ToolBar swtToolBar = (ToolBar) toolbar.getManagedObject();
spoon.props.setLook(swtToolBar, Props.WIDGET_STYLE_TOOLBAR);
// Add a URL
back = (XulToolbarbutton) toolbar.getElementById("browse-back");
back.setDisabled(true);
forward = (XulToolbarbutton) toolbar.getElementById("browse-forward");
forward.setLabel(BaseMessages.getString(PKG, "SpoonBrowser.Dialog.Forward"));
forward.setDisabled(false);
location = (XulTextbox) toolbar.getElementById("browser-address");
Control toolbarControl = (Control) toolbar.getManagedObject();
toolbarControl.setLayoutData(new FormData());
toolbarControl.setParent(composite);
} catch (Exception e) {
e.printStackTrace();
new ErrorDialog(shell, BaseMessages.getString(PKG, "Spoon.Exception.ErrorReadingXULFile.Title"), BaseMessages.getString(PKG, "Spoon.Exception.ErrorReadingXULFile.Message", XUL_FILE_BROWSER_TOOLBAR), e);
}
}
Aggregations