/** * */ package org.nightlabs.jfire.reporting.admin.ui.jdoql.editor; import java.util.Collection; import java.util.Iterator; import javax.jdo.FetchPlan; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; import org.nightlabs.base.ui.composite.XComposite; import org.nightlabs.jfire.reporting.ui.ReportingPlugin; /** * @author Alexander Bieber <alex [AT] nightlabs [DOT] de> * */ public class JDOQLEditor extends EditorPart { /** * */ public JDOQLEditor() { super(); } /* (non-Javadoc) * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor) */ @Override public void doSave(IProgressMonitor monitor) { } /* (non-Javadoc) * @see org.eclipse.ui.part.EditorPart#doSaveAs() */ @Override public void doSaveAs() { } /* (non-Javadoc) * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput) */ @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { setSite(site); setInput(input); } /* (non-Javadoc) * @see org.eclipse.ui.part.EditorPart#isDirty() */ @Override public boolean isDirty() { return false; } /* (non-Javadoc) * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed() */ @Override public boolean isSaveAsAllowed() { return false; } private XComposite wrapper; private Text jdoql; private XComposite buttons; private Button execButton; private JDOQLParameterTable parameterTable; private JDOQLResultTable resultTable; // private /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) */ @Override public void createPartControl(Composite parent) { wrapper = new XComposite(parent, SWT.NONE); buttons = new XComposite(wrapper, SWT.NONE); buttons.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); execButton = new Button(buttons, SWT.PUSH); execButton.setText("Exec"); //$NON-NLS-1$ execButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent arg0) { } public void widgetSelected(SelectionEvent arg0) { Collection result; try { result = ReportingPlugin.getReportManager().execJDOQL(jdoql.getText(), parameterTable.getParameterValues(), new String[] {FetchPlan.ALL}); } catch (Exception e) { throw new RuntimeException(e); } if (result != null) { for (Iterator iter = result.iterator(); iter.hasNext();) { Object element = iter.next(); String row = element.toString(); if (element instanceof Object[]) { Object[] elements = (Object[])element; row = "["; //$NON-NLS-1$ for (int i = 0; i < elements.length; i++) { row = row + (elements[i] != null ? elements[i].toString() : "null"); //$NON-NLS-1$ if (i != elements.length-1) row = row + ", "; //$NON-NLS-1$ } row = row +"]"; //$NON-NLS-1$ } System.out.println("Result-Row: "+row); //$NON-NLS-1$ } } resultTable.setInput(result); } }); jdoql = new Text(wrapper, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); jdoql.setLayoutData(new GridData(GridData.FILL_BOTH)); parameterTable = new JDOQLParameterTable(wrapper, SWT.NONE); resultTable = new JDOQLResultTable(wrapper, SWT.NONE); } /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#setFocus() */ @Override public void setFocus() { // TODO Auto-generated method stub } }