[svn r251] fixed annotations , made export stuff work , made edit with simple text element work
This commit is contained in:
parent
1c47fbffa3
commit
4f25dd082d
21 changed files with 438 additions and 64 deletions
|
|
@ -26,9 +26,13 @@
|
|||
|
||||
package com.idcanet.vasc.impl.swt;
|
||||
|
||||
import java.awt.TextField;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.eclipse.jface.dialogs.MessageDialog;
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.eclipse.jface.viewers.ILabelProviderListener;
|
||||
import org.eclipse.jface.viewers.IStructuredContentProvider;
|
||||
|
|
@ -47,18 +51,22 @@ import org.eclipse.swt.layout.GridData;
|
|||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Dialog;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Event;
|
||||
import org.eclipse.swt.widgets.FileDialog;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Listener;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.swt.widgets.Table;
|
||||
import org.eclipse.swt.widgets.TableColumn;
|
||||
import org.eclipse.swt.widgets.Text;
|
||||
import org.eclipse.swt.widgets.ToolBar;
|
||||
import org.eclipse.swt.widgets.ToolItem;
|
||||
|
||||
import com.idcanet.fff.SwingImageHelper;
|
||||
import com.idcanet.vasc.core.VascDataExporter;
|
||||
import com.idcanet.vasc.core.VascTable;
|
||||
import com.idcanet.vasc.core.VascUserOption;
|
||||
import com.idcanet.vasc.core.VascViewRenderer;
|
||||
|
|
@ -82,19 +90,41 @@ public class SwtVascViewRenderer implements VascViewRenderer {
|
|||
this.parent=parent;
|
||||
}
|
||||
|
||||
private static final String[] FILTER_NAMES = {
|
||||
"All Files (*.*)",
|
||||
"Comma Separated Values Files (*.csv)",
|
||||
"Microsoft Excel Spreadsheet Files (*.xls)",
|
||||
};
|
||||
/** These filter extensions are used to filter which files are displayed. */
|
||||
private static final String[] FILTER_EXTS = { "*.*","*.csv","*.xls" };
|
||||
|
||||
public void renderExport(VascTable table,VascDataExporter exporter) throws Exception {
|
||||
FileDialog dlg = new FileDialog(Display.getCurrent().getActiveShell(), SWT.SAVE);
|
||||
dlg.setFilterNames(FILTER_NAMES);
|
||||
dlg.setFilterExtensions(FILTER_EXTS);
|
||||
dlg.setFileName(table.getHeaderName()+".csv");
|
||||
String fileName = dlg.open();
|
||||
logger.fine("FileName: "+fileName);
|
||||
if (fileName == null) {
|
||||
return;
|
||||
}
|
||||
OutputStream out = new FileOutputStream(fileName);
|
||||
try {
|
||||
exporter.doExport(out, table);
|
||||
} catch (Exception e) {
|
||||
//MessageDialog.openError(Display.getCurrent().getActiveShell(),crudTable.i18n("crud.event.export.error.title"),crudTable.i18n("crud.event.export.error.message"));
|
||||
logger.log(Level.WARNING,"Error: "+e.getMessage(),e);
|
||||
} finally {
|
||||
if (out!=null) {
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void renderEdit(VascTable table,Object object) throws Exception {
|
||||
|
||||
logger.info("Rending Edit View");
|
||||
|
||||
if (object==null) {
|
||||
try {
|
||||
object = table.getVascRecordCreator().newRecord(table);
|
||||
logger.finest("created: "+object);
|
||||
} catch (Exception e) {
|
||||
table.getVascTableController().handleException(e, table);
|
||||
return;
|
||||
}
|
||||
}
|
||||
table.getVascTableController().initEditObject(table, object);
|
||||
|
||||
SwtVascEditDialog dialog = new SwtVascEditDialog(Display.getCurrent().getActiveShell(),table,object,"Edit","TOITO");
|
||||
Object result = dialog.open();
|
||||
|
|
@ -216,39 +246,36 @@ public class SwtVascViewRenderer implements VascViewRenderer {
|
|||
l.setToolTipText(c.getToolTip());
|
||||
}
|
||||
|
||||
if(c.getVascColumnEditor()==null) {
|
||||
Label valueLabel = new Label(body, SWT.WRAP);
|
||||
valueLabel.setText(""+c.getVascColumnValue().getValue(c, bean));
|
||||
} else {
|
||||
c.getVascColumnEditor().createColumnEditor(c);
|
||||
}
|
||||
// SWTComponentFactory.createLabel(body,ba.getValueModel(c.getObjectProperty()),SWT.WRAP);
|
||||
// continue;
|
||||
//}
|
||||
//ValueModel vm = ba.getValueModel(c.getObjectProperty());
|
||||
|
||||
//c.getVascColumnEditor().createColumnEditor(c);
|
||||
|
||||
try {
|
||||
if(c.getVascColumnEditor()==null) {
|
||||
Label valueLabel = new Label(body, SWT.WRAP);
|
||||
valueLabel.setText(""+c.getVascColumnValue().getValue(c, bean));
|
||||
c.setColumnEditor(valueLabel);
|
||||
} else {
|
||||
c.setColumnEditor(c.getVascColumnEditor().createColumnEditor(c,bean,body));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.WARNING,"Error making column editor: '"+c.getVascColumnValue()+"' error: "+e.getMessage(),e);
|
||||
}
|
||||
|
||||
// set the default value before creating property
|
||||
/*
|
||||
if(vm.getValue()==null & c.getDefaultValue()!=null) {
|
||||
if(c.getVascColumnValue()==null & c.getDefaultValue()!=null) {
|
||||
try {
|
||||
logger.finer("Setting default value for: "+c.getName()+" def: "+c.getDefaultValue());
|
||||
vm.setValue(c.getDefaultValue());
|
||||
c.getVascColumnValue().setValue(c, bean, c.getDefaultValue());
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.WARNING,"Error in setting default value: '"+c.getDefaultValue()+"' error: "+e.getMessage(),e);
|
||||
}
|
||||
}
|
||||
*/
|
||||
//Control editor = c.getPropertyEditor().createPropertyEditor(body,vm);
|
||||
GridData gridData = new GridData();
|
||||
gridData.grabExcessHorizontalSpace = true;
|
||||
gridData.grabExcessVerticalSpace = true;
|
||||
gridData.horizontalAlignment = GridData.FILL;
|
||||
gridData.verticalAlignment = GridData.FILL;
|
||||
//editor.setLayoutData(gridData);
|
||||
//c.setTempObjectPropertyControl(editor);
|
||||
if(c.getColumnEditor() instanceof Control) {
|
||||
Control editor = (Control)c.getColumnEditor();
|
||||
GridData gridData = new GridData();
|
||||
gridData.grabExcessHorizontalSpace = true;
|
||||
gridData.grabExcessVerticalSpace = true;
|
||||
gridData.horizontalAlignment = GridData.FILL;
|
||||
gridData.verticalAlignment = GridData.FILL;
|
||||
editor.setLayoutData(gridData);
|
||||
}
|
||||
}
|
||||
|
||||
// create some spaceing , should replace by seperator
|
||||
|
|
@ -279,6 +306,45 @@ public class SwtVascViewRenderer implements VascViewRenderer {
|
|||
}
|
||||
}
|
||||
|
||||
public Object defaultColumnEditor(VascTableColumn column,Object bean,Object gui) throws Exception {
|
||||
|
||||
Composite body = (Composite)gui;
|
||||
Text text = new Text(body,SWT.SINGLE);
|
||||
text.addSelectionListener(new TextListener(column,bean));
|
||||
text.setText(""+column.getVascColumnValue().getValue(column, bean));
|
||||
return text;
|
||||
}
|
||||
|
||||
class TextListener extends SelectionAdapter {
|
||||
|
||||
private VascTableColumn column = null;
|
||||
private Object bean = null;
|
||||
|
||||
public TextListener(VascTableColumn column,Object bean) {
|
||||
this.column=column;
|
||||
this.bean=bean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
|
||||
*/
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
// SHIT it works :)
|
||||
Object value = e.data;
|
||||
logger.finer("Setting value: "+value);
|
||||
try {
|
||||
column.getVascColumnValue().setValue(column, bean, value);
|
||||
} catch (Exception ee) {
|
||||
ee.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Object defaultColumnRenderer(VascTableColumn column,Object gui) throws Exception {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public void renderView(VascTable table) throws Exception {
|
||||
|
||||
|
|
@ -589,7 +655,12 @@ public class SwtVascViewRenderer implements VascViewRenderer {
|
|||
public String getColumnText(Object bean, int columnNumber) {
|
||||
VascTableColumn vtc = table.getTableColumns().get(columnNumber);
|
||||
if (vtc.getColumnRenderer()==null) {
|
||||
return ""+vtc.getVascColumnValue().getValue(vtc,bean);
|
||||
try {
|
||||
return ""+vtc.getVascColumnValue().getValue(vtc,bean);
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.WARNING,"Error in get value: '"+vtc.getVascColumnValue()+"' error: "+e.getMessage(),e);
|
||||
return "Err";
|
||||
}
|
||||
}
|
||||
// see custem column renderer, so this code will never be called
|
||||
return "CUSTEM_RENDER";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue