]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - eclipse/runtime/org.argeo.eclipse.ui.rcp/src/main/java/org/argeo/eclipse/ui/specific/GenericUploadControl.java
a1d5cff3f5185c679c753aa1b07a7b2996316d78
1 package org
.argeo
.eclipse
.ui
.specific
;
4 import java
.io
.IOException
;
6 import org
.apache
.commons
.io
.FileUtils
;
7 import org
.argeo
.ArgeoException
;
8 import org
.eclipse
.swt
.SWT
;
9 import org
.eclipse
.swt
.events
.ModifyListener
;
10 import org
.eclipse
.swt
.layout
.GridData
;
11 import org
.eclipse
.swt
.layout
.GridLayout
;
12 import org
.eclipse
.swt
.widgets
.Button
;
13 import org
.eclipse
.swt
.widgets
.Composite
;
14 import org
.eclipse
.swt
.widgets
.Event
;
15 import org
.eclipse
.swt
.widgets
.FileDialog
;
16 import org
.eclipse
.swt
.widgets
.Listener
;
17 import org
.eclipse
.swt
.widgets
.Text
;
20 * RCP specific composite that provides a control to upload a file. WARNING: for
21 * the time being we set a GridLayout(2, false) on th eparent control.
23 public class GenericUploadControl
extends Composite
{
24 // private final static Log log = LogFactory
25 // .getLog(GenericUploadControl.class);
27 private FileDialog dialog
;
28 private Text filePath
;
30 public GenericUploadControl(Composite parent
, int style
, String browseLabel
) {
32 createControl(this, browseLabel
);
36 private void createControl(final Composite parent
, String browseLabel
) {
37 parent
.setLayout(new GridLayout(2, false));
39 filePath
= new Text(parent
, SWT
.BORDER
| SWT
.SINGLE
);
40 GridData gd
= new GridData(GridData
.GRAB_HORIZONTAL
41 | GridData
.FILL_HORIZONTAL
);
42 filePath
.setEditable(false);
43 filePath
.setLayoutData(gd
);
46 Button execute
= new Button(parent
, SWT
.PUSH
);
47 GridData gridData
= new GridData();
48 gridData
.horizontalAlignment
= GridData
.BEGINNING
;
49 execute
.setLayoutData(gridData
);
50 execute
.setText(browseLabel
);
53 Listener executeListener
= new Listener() {
54 public void handleEvent(Event event
) {
55 dialog
= new FileDialog(parent
.getShell());
56 filePath
.setText(dialog
.open());
60 execute
.addListener(SWT
.Selection
, executeListener
);
63 public boolean isControlEmpty() {
64 String path
= filePath
.getText();
65 if (path
== null || "".equals(path
.trim()))
71 public byte[] performUpload() {
72 String path
= filePath
.getText();
75 File file
= new File(path
);
76 byte[] fileBA
= FileUtils
.readFileToByteArray(file
);
78 } catch (IOException e
) {
79 throw new ArgeoException("Unexpected error while "
80 + "reading file at path " + path
, e
);
86 public void addModifyListener(ModifyListener listener
) {
87 filePath
.addModifyListener(listener
);
91 * Always returns null in an RCP environment
93 public String
getLastFileUploadedName() {