Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Leicht2012-01-23 17:19:55 +0000
committerStephan Leicht2012-01-23 17:19:55 +0000
commit654fc76fc3f552c4cd1cca6a63bf9b4fea5552e7 (patch)
tree599b4b3b9803ee60f25daa60cf1b2b1093033170
parent47b962c99281abb01e0f12d06b42c9bc9029bd7f (diff)
downloadorg.eclipse.scout.rt-654fc76fc3f552c4cd1cca6a63bf9b4fea5552e7.tar.gz
org.eclipse.scout.rt-654fc76fc3f552c4cd1cca6a63bf9b4fea5552e7.tar.xz
org.eclipse.scout.rt-654fc76fc3f552c4cd1cca6a63bf9b4fea5552e7.zip
FileChoserField behaves now almost like in Swing
-rw-r--r--org.eclipse.scout.rt.ui.rap/.settings/de.loskutov.anyedit.AnyEditTools.prefs16
-rw-r--r--org.eclipse.scout.rt.ui.rap/.settings/org.eclipse.jdt.ui.prefs17
-rw-r--r--org.eclipse.scout.rt.ui.rap/META-INF/MANIFEST.MF1
-rw-r--r--org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file.pngbin0 -> 230 bytes
-rw-r--r--org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_disabled.pngbin0 -> 190 bytes
-rw-r--r--org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_menu.pngbin0 -> 256 bytes
-rw-r--r--org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_menu_disabled.pngbin0 -> 251 bytes
-rw-r--r--org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/DropDownFileUpload.java356
-rw-r--r--org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileChooserField.java7
-rw-r--r--org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileChooserField.java308
-rw-r--r--org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/util/ScoutFormToolkit.java7
-rw-r--r--org.eclipse.scout.rt.ui.rap/theme/scout.css156
12 files changed, 686 insertions, 182 deletions
diff --git a/org.eclipse.scout.rt.ui.rap/.settings/de.loskutov.anyedit.AnyEditTools.prefs b/org.eclipse.scout.rt.ui.rap/.settings/de.loskutov.anyedit.AnyEditTools.prefs
new file mode 100644
index 0000000000..485c7bdc71
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap/.settings/de.loskutov.anyedit.AnyEditTools.prefs
@@ -0,0 +1,16 @@
+#Mon Jan 23 18:09:09 CET 2012
+activeContentFilterList=*.makefile,makefile,*.Makefile,Makefile,Makefile.*,*.mk,MANIFEST.MF
+addNewLine=true
+convertActionOnSaave=AnyEdit.CnvrtTabToSpaces
+eclipse.preferences.version=1
+inActiveContentFilterList=
+javaTabWidthForJava=true
+org.eclipse.jdt.ui.editor.tab.width=2
+projectPropsEnabled=true
+removeTrailingSpaces=true
+replaceAllSpaces=false
+replaceAllTabs=false
+saveAndAddLine=true
+saveAndConvert=true
+saveAndTrim=true
+useModulo4Tabs=false
diff --git a/org.eclipse.scout.rt.ui.rap/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.rt.ui.rap/.settings/org.eclipse.jdt.ui.prefs
index 04716a560d..ceb097ae98 100644
--- a/org.eclipse.scout.rt.ui.rap/.settings/org.eclipse.jdt.ui.prefs
+++ b/org.eclipse.scout.rt.ui.rap/.settings/org.eclipse.jdt.ui.prefs
@@ -1,17 +1,18 @@
-#Thu Oct 20 13:29:28 CEST 2011
+#Mon Jan 23 18:10:45 CET 2012
cleanup.add_default_serial_version_id=true
cleanup.add_generated_serial_version_id=false
cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=false
+cleanup.add_missing_deprecated_annotations=true
cleanup.add_missing_methods=false
cleanup.add_missing_nls_tags=false
cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=false
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=false
cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
+cleanup.convert_to_enhanced_for_loop=true
cleanup.correct_indentation=true
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
@@ -30,8 +31,8 @@ cleanup.qualify_static_member_accesses_with_declaring_class=false
cleanup.qualify_static_method_accesses_with_declaring_class=false
cleanup.remove_private_constructors=true
cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_trailing_whitespaces_all=false
+cleanup.remove_trailing_whitespaces_ignore_empty=true
cleanup.remove_unnecessary_casts=false
cleanup.remove_unnecessary_nls_tags=false
cleanup.remove_unused_imports=true
@@ -43,7 +44,7 @@ cleanup.remove_unused_private_types=true
cleanup.sort_members=false
cleanup.sort_members_all=false
cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_blocks_only_for_return_and_throw=true
cleanup.use_parentheses_in_expressions=false
cleanup.use_this_for_non_static_field_access=false
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
diff --git a/org.eclipse.scout.rt.ui.rap/META-INF/MANIFEST.MF b/org.eclipse.scout.rt.ui.rap/META-INF/MANIFEST.MF
index dca91cf9a4..d43469d18f 100644
--- a/org.eclipse.scout.rt.ui.rap/META-INF/MANIFEST.MF
+++ b/org.eclipse.scout.rt.ui.rap/META-INF/MANIFEST.MF
@@ -14,6 +14,7 @@ Require-Bundle: org.eclipse.core.runtime;visibility:=reexport,
org.eclipse.rap.jface.databinding;bundle-version="1.5.0";visibility:=reexport,
org.eclipse.rap.ui.forms;bundle-version="1.5.0";visibility:=reexport,
org.eclipse.rap.ui;bundle-version="1.5.0";visibility:=reexport,
+ org.eclipse.rap.rwt.supplemental.fileupload;bundle-version="1.5.0",
org.eclipse.rap.rwt.supplemental.filedialog;bundle-version="1.5.0",
org.eclipse.scout.http.servletfilter;bundle-version="3.7.0",
org.eclipse.equinox.http.registry
diff --git a/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file.png b/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file.png
new file mode 100644
index 0000000000..7e1cacfb75
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file.png
Binary files differ
diff --git a/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_disabled.png b/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_disabled.png
new file mode 100644
index 0000000000..437305ac0b
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_disabled.png
Binary files differ
diff --git a/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_menu.png b/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_menu.png
new file mode 100644
index 0000000000..ea87626cce
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_menu.png
Binary files differ
diff --git a/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_menu_disabled.png b/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_menu_disabled.png
new file mode 100644
index 0000000000..2483e88b5f
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap/resources/img/scout/filechooserfield_file_menu_disabled.png
Binary files differ
diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/DropDownFileUpload.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/DropDownFileUpload.java
new file mode 100644
index 0000000000..636baf3df0
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/DropDownFileUpload.java
@@ -0,0 +1,356 @@
+/*******************************************************************************
+ * Copyright (c) 2011 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BSI Business Systems Integration AG - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.scout.rt.ui.rap.ext;
+
+import org.eclipse.rwt.internal.textsize.TextSizeUtil;
+import org.eclipse.rwt.lifecycle.WidgetUtil;
+import org.eclipse.rwt.widgets.FileUpload;
+import org.eclipse.scout.commons.EventListenerList;
+import org.eclipse.scout.commons.StringUtility;
+import org.eclipse.scout.rt.ui.rap.IRwtEnvironment;
+import org.eclipse.scout.rt.ui.rap.core.RwtIcons;
+import org.eclipse.scout.rt.ui.rap.keystroke.RwtKeyStroke;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+
+@SuppressWarnings("restriction")
+public class DropDownFileUpload extends FileUpload {
+ private static final long serialVersionUID = 1L;
+
+ private static final int BORDER = 3;
+ private static final int GAP = 3;
+ private String m_text = "";
+ private Image m_image;
+ private Image m_imageDisabled;
+ private Rectangle m_buttonArea = new Rectangle(1, 1, 13, 17);
+ private Rectangle m_dropDownArea = new Rectangle(14, 1, 10, 17);
+ private EventListenerList m_eventListeners = new EventListenerList();
+
+ private boolean m_mouseHover;
+ private boolean m_dropdownEnabled = true;
+ private boolean m_buttonEnabled = true;
+
+ private String m_originalVariant = "";
+
+ public DropDownFileUpload(Composite parent, int style) {
+ super(parent, style | SWT.DOUBLE_BUFFERED);
+ setBackgroundPosition(SWT.BACKGROUND_POSITION_LEFT_CENTER);
+ setBackgroundRepeat(SWT.BACKGROUND_REPEAT_NO_REPEAT);
+
+ addListener(SWT.Traverse, new Listener() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void handleEvent(Event e) {
+ switch (e.detail) {
+ /* Do tab group traversal */
+ case SWT.TRAVERSE_ESCAPE:
+ case SWT.TRAVERSE_RETURN:
+ case SWT.TRAVERSE_TAB_NEXT:
+ case SWT.TRAVERSE_TAB_PREVIOUS:
+ e.doit = true;
+ break;
+ }
+ }
+ });
+ getUiEnvironment().addKeyStroke(this, new P_KeyStroke(' '), false);
+ getUiEnvironment().addKeyStroke(this, new P_KeyStroke(SWT.CR), false);
+ getUiEnvironment().addKeyStroke(this, new P_KeyStroke(SWT.ARROW_DOWN), false);
+
+ addFocusListener(new FocusAdapter() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ redraw();
+ }
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ redraw();
+ }
+ });
+ super.addSelectionListener(new SelectionAdapter() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ handleSelectionInternal(e);
+ redraw();
+ }
+ });
+
+ addDisposeListener(new DisposeListener() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ freeResources();
+ }
+ });
+
+ initResources();
+ }
+
+ /**
+ * since tab list on parent does not work
+ */
+ @Override
+ public boolean forceFocus() {
+ if ((getStyle() & SWT.NO_FOCUS) != 0) {
+ return false;
+ }
+ else {
+ return super.forceFocus();
+ }
+ }
+
+ protected void handleSelectionInternal(SelectionEvent event) {
+//FIXME there is a open bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=369423
+// Point pt = new Point(event.x, event.y);
+// if (m_buttonArea.contains(pt)) {
+ fireSelectionEvent(event);
+// }
+// else if (m_dropDownArea.contains(pt) && isDropdownEnabled()) {
+// if (getMenu() != null) {
+// getMenu().setLocation(toDisplay(event.x, event.y));
+// getMenu().setVisible(true);
+// }
+// }
+ }
+
+ public void fireSelectionEvent(SelectionEvent e) {
+ if (isButtonEnabled()) {
+ for (SelectionListener l : m_eventListeners.getListeners(SelectionListener.class)) {
+ l.widgetSelected(e);
+ }
+ }
+ }
+
+ @Override
+ public void addSelectionListener(SelectionListener listener) {
+ m_eventListeners.add(SelectionListener.class, listener);
+ }
+
+ @Override
+ public void removeSelectionListener(SelectionListener listener) {
+ m_eventListeners.remove(SelectionListener.class, listener);
+ }
+
+ @Override
+ public void setText(String text) {
+ // ensure not null
+ if (text == null) {
+ text = "";
+ }
+ m_text = text;
+ redraw();
+ }
+
+ @Override
+ public String getText() {
+ return m_text;
+ }
+
+ @Override
+ public void setImage(Image image) {
+ m_image = image;
+ if (m_imageDisabled != null && !m_imageDisabled.isDisposed() && m_imageDisabled.getDevice() != null) {
+ m_imageDisabled.dispose();
+ m_imageDisabled = null;
+ }
+ if (m_image != null) {
+ m_imageDisabled = new Image(getDisplay(), m_image, SWT.IMAGE_COPY);
+ }
+ redraw();
+ }
+
+ @Override
+ public Image getImage() {
+ return m_image;
+ }
+
+ public void setDropdownEnabled(boolean enabled) {
+ m_dropdownEnabled = enabled;
+ if (!StringUtility.hasText(m_originalVariant)) {
+ m_originalVariant = (String) getData(WidgetUtil.CUSTOM_VARIANT);
+ }
+ String customVariant = m_dropdownEnabled ? m_originalVariant + "_menu" : m_originalVariant;
+ setData(WidgetUtil.CUSTOM_VARIANT, customVariant);
+// super.setEnabled(isButtonEnabled() || isDropdownEnabled());XXX
+ redraw();
+ }
+
+ public boolean isDropdownEnabled() {
+ return m_dropdownEnabled;
+ }
+
+ public void setButtonEnabled(boolean enabled) {
+ m_buttonEnabled = enabled;
+// super.setEnabled(isButtonEnabled() || isDropdownEnabled());XXX
+ super.setEnabled(isButtonEnabled());
+ redraw();
+ }
+
+ public boolean isButtonEnabled() {
+ return m_buttonEnabled;
+ }
+
+ @Override
+ public void setEnabled(boolean enabled) {
+ super.setEnabled(enabled);
+ m_buttonEnabled = enabled;
+ m_dropdownEnabled = enabled;
+ redraw();
+ }
+
+ private IRwtEnvironment getUiEnvironment() {
+ return (IRwtEnvironment) getDisplay().getData(IRwtEnvironment.class.getName());
+ }
+
+ private Image m_dropDownIcon;
+ private Image m_dropDownIconDisabled;
+ private Color m_focusedHighlightBorderColor;
+ private Color m_mouseOverHighlightColor;
+ private Color m_borderColor;
+ private Color m_borderColorDisabled;
+ private Color m_textColor;
+ private Color m_textColorDisabled;
+ private Color m_backgroundGradient1;
+ private Color m_backgroundGradient2;
+ private Color m_backgroundGradient1MouseDown;
+ private Color m_backgroundGradient2MouseDown;
+ private Color m_backgroundDisabled;
+
+ private void initResources() {//FIXME sle colors have to be defined in css
+ m_borderColor = getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
+ m_borderColorDisabled = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
+ m_textColor = getDisplay().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
+ m_textColorDisabled = getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
+ m_focusedHighlightBorderColor = new Color(getDisplay(), 118, 183, 232);
+ m_mouseOverHighlightColor = new Color(getDisplay(), 180, 200, 220);
+ m_dropDownIcon = getUiEnvironment().getIcon(RwtIcons.DropDownFieldArrowDown);
+ m_dropDownIconDisabled = new Image(getDisplay(), m_dropDownIcon, SWT.IMAGE_COPY);//XXX rap
+ m_backgroundGradient1 = new Color(getDisplay(), 255, 255, 255);
+ m_backgroundGradient2 = new Color(getDisplay(), 220, 220, 220);
+ m_backgroundGradient1MouseDown = getDisplay().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
+ m_backgroundGradient2MouseDown = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
+ m_backgroundDisabled = getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
+ }
+
+ public void freeResources() {
+ if (m_dropDownIcon != null && !m_dropDownIcon.isDisposed() && m_dropDownIcon.getDevice() != null) {
+ m_dropDownIcon.dispose();
+ m_dropDownIcon = null;
+ }
+ if (m_dropDownIconDisabled != null && !m_dropDownIconDisabled.isDisposed() && m_dropDownIconDisabled.getDevice() != null) {
+ m_dropDownIconDisabled.dispose();
+ m_dropDownIconDisabled = null;
+ }
+ if (m_focusedHighlightBorderColor != null && !m_focusedHighlightBorderColor.isDisposed() && m_focusedHighlightBorderColor.getDevice() != null) {
+ m_focusedHighlightBorderColor.dispose();
+ m_focusedHighlightBorderColor = null;
+ }
+ if (m_mouseOverHighlightColor != null && !m_mouseOverHighlightColor.isDisposed() && m_mouseOverHighlightColor.getDevice() != null) {
+ m_mouseOverHighlightColor.dispose();
+ m_mouseOverHighlightColor = null;
+ }
+ if (m_backgroundGradient1 != null && !m_backgroundGradient1.isDisposed() && m_backgroundGradient1.getDevice() != null) {
+ m_backgroundGradient1.dispose();
+ m_backgroundGradient1 = null;
+ }
+ if (m_backgroundGradient2 != null && !m_backgroundGradient2.isDisposed() && m_backgroundGradient2.getDevice() != null) {
+ m_backgroundGradient2.dispose();
+ m_backgroundGradient2 = null;
+ }
+ if (m_imageDisabled != null && !m_imageDisabled.isDisposed() && m_imageDisabled.getDevice() != null) {
+ m_imageDisabled.dispose();
+ m_imageDisabled = null;
+ }
+ }
+
+ @Override
+ public Point computeSize(int hint, int hint2, boolean changed) {
+// getClientArea();XXX RAP
+ Point size = new Point(2 * BORDER + 2 * GAP, 2 * BORDER + 2 * GAP);
+ if (getImage() != null) {
+ Rectangle imgBounds = getImage().getBounds();
+ size.x += (imgBounds.width + GAP);
+ size.y = Math.max(size.y, (2 * (BORDER + GAP) + imgBounds.height));
+ }
+ if (!"".equals(getText())) {
+ Point textSize = TextSizeUtil.stringExtent(getFont(), getText());
+ size.x += textSize.x + GAP;
+ size.y = Math.max(size.y, (2 * (BORDER + GAP) + textSize.y));
+ }
+ if (m_dropDownIcon != null && m_dropDownIcon.isDisposed()) {
+ m_dropDownIcon = getUiEnvironment().getIcon(RwtIcons.DropDownFieldArrowDown);
+ }
+ if ((getStyle() & SWT.DROP_DOWN) != 0 && m_dropDownIcon != null && !m_dropDownIcon.isDisposed()) {
+ size.x += (m_dropDownIcon.getBounds().width) /* splitline */+ 1;
+ size.y = Math.max(size.y, 2 * (BORDER + GAP) + m_dropDownIcon.getBounds().height);
+ }
+ size.x = Math.max(hint, size.x);
+ size.y = Math.max(hint2, size.y);
+ return size;
+ }
+
+ @Override
+ public void setBounds(Rectangle bounds) {
+ super.setBounds(bounds);
+ }
+
+ @Override
+ public void setBounds(int x, int y, int width, int height) {
+ super.setBounds(x, y, width, height);
+ }
+
+ private Rectangle createCopy(Rectangle rect) {
+ Rectangle copy = new Rectangle(rect.x, rect.y, rect.width, rect.height);
+ return copy;
+ }
+
+ private class P_KeyStroke extends RwtKeyStroke {
+ public P_KeyStroke(int keyCode) {
+ super(keyCode);
+ }
+
+ @Override
+ public void handleUiAction(Event e) {
+ switch (e.keyCode) {
+ case ' ':
+ case SWT.CR:
+ SelectionEvent selEvent = new SelectionEvent(e);
+ fireSelectionEvent(selEvent);
+ break;
+ case SWT.ARROW_DOWN:
+ if (isDropdownEnabled() && getMenu() != null) {
+ getMenu().setLocation(toDisplay(e.x, e.y));
+ getMenu().setVisible(true);
+ }
+ break;
+ }
+ }
+ }
+}
diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileChooserField.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileChooserField.java
index 0fd9d9ba75..c48471832c 100644
--- a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileChooserField.java
+++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileChooserField.java
@@ -11,14 +11,17 @@
package org.eclipse.scout.rt.ui.rap.form.fields.filechooserfield;
import org.eclipse.scout.rt.client.ui.form.fields.filechooserfield.IFileChooserField;
-import org.eclipse.scout.rt.ui.rap.ext.DropDownButton;
+import org.eclipse.scout.rt.ui.rap.ext.DropDownFileUpload;
import org.eclipse.scout.rt.ui.rap.form.fields.IRwtScoutFormField;
+import org.eclipse.swt.widgets.ProgressBar;
public interface IRwtScoutFileChooserField extends IRwtScoutFormField<IFileChooserField> {
String VARIANT_FILECHOOSER = "filechooser";
String VARIANT_FILECHOOSER_DISABLED = "filechooser-disabled";
- DropDownButton getUiBrowseButton();
+ DropDownFileUpload getUiBrowseButton();
+
+ ProgressBar getUiProgressBar();
}
diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileChooserField.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileChooserField.java
index a0e79e6e4d..19d3872ec5 100644
--- a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileChooserField.java
+++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileChooserField.java
@@ -11,9 +11,18 @@
package org.eclipse.scout.rt.ui.rap.form.fields.filechooserfield;
import java.io.File;
+import java.util.Arrays;
+import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.rap.rwt.supplemental.fileupload.DiskFileUploadReceiver;
+import org.eclipse.rap.rwt.supplemental.fileupload.FileUploadEvent;
+import org.eclipse.rap.rwt.supplemental.fileupload.FileUploadHandler;
+import org.eclipse.rap.rwt.supplemental.fileupload.FileUploadListener;
+import org.eclipse.rap.rwt.supplemental.fileupload.FileUploadReceiver;
import org.eclipse.rwt.lifecycle.WidgetUtil;
+import org.eclipse.scout.commons.CollectionUtility;
import org.eclipse.scout.commons.CompareUtility;
import org.eclipse.scout.commons.exception.IProcessingStatus;
import org.eclipse.scout.commons.exception.ProcessingStatus;
@@ -22,12 +31,12 @@ import org.eclipse.scout.commons.job.JobEx;
import org.eclipse.scout.commons.logger.IScoutLogger;
import org.eclipse.scout.commons.logger.ScoutLogManager;
import org.eclipse.scout.rt.client.ui.action.menu.IMenu;
-import org.eclipse.scout.rt.client.ui.basic.filechooser.IFileChooser;
import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
+import org.eclipse.scout.rt.client.ui.form.fields.ScoutFieldStatus;
import org.eclipse.scout.rt.client.ui.form.fields.filechooserfield.IFileChooserField;
import org.eclipse.scout.rt.ui.rap.LogicalGridLayout;
import org.eclipse.scout.rt.ui.rap.RwtMenuUtility;
-import org.eclipse.scout.rt.ui.rap.ext.DropDownButton;
+import org.eclipse.scout.rt.ui.rap.ext.DropDownFileUpload;
import org.eclipse.scout.rt.ui.rap.ext.MenuAdapterEx;
import org.eclipse.scout.rt.ui.rap.ext.StatusLabelEx;
import org.eclipse.scout.rt.ui.rap.ext.StyledTextEx;
@@ -35,6 +44,8 @@ import org.eclipse.scout.rt.ui.rap.ext.custom.StyledText;
import org.eclipse.scout.rt.ui.rap.form.fields.LogicalGridDataBuilder;
import org.eclipse.scout.rt.ui.rap.form.fields.RwtScoutValueFieldComposite;
import org.eclipse.scout.rt.ui.rap.internal.TextFieldEditableSupport;
+import org.eclipse.scout.rt.ui.rap.keystroke.IRwtKeyStroke;
+import org.eclipse.scout.rt.ui.rap.keystroke.RwtKeyStroke;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
@@ -49,16 +60,27 @@ import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.ProgressBar;
public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileChooserField> implements IRwtScoutFileChooserField {
private static final IScoutLogger LOG = ScoutLogManager.getLogger(RwtScoutFileChooserField.class);
private Composite m_fileContainer;
- private DropDownButton m_browseButton;
+ private DropDownFileUpload m_browseButton;
+ private ProgressBar m_progressBar;
private Menu m_contextMenu;
private TextFieldEditableSupport m_editableSupport;
+ private FileUploadHandler m_handler;
+ private FileUploadListener m_uploadListener;
+ private File m_uploadedFile = null;
+
+ public RwtScoutFileChooserField() {
+ initializeFileUpload();
+ }
+
@Override
protected void initializeUi(Composite parent) {
super.initializeUi(parent);
@@ -67,21 +89,60 @@ public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileC
m_fileContainer = getUiEnvironment().getFormToolkit().createComposite(container, SWT.BORDER);
m_fileContainer.setData(WidgetUtil.CUSTOM_VARIANT, VARIANT_FILECHOOSER);
- StyledText textField = new StyledTextEx(m_fileContainer, SWT.SINGLE) {
+
+ StyledText textField = new StyledTextEx(m_fileContainer, SWT.SINGLE | getUiEnvironment().getFormToolkit().getOrientation()) {
private static final long serialVersionUID = 1L;
@Override
public void setBackground(Color color) {
- super.setBackground(color);
- if (m_browseButton != null) {
- m_browseButton.setBackground(color);
+ if (getUiProgressBar() != null && !getUiProgressBar().isDisposed()) {
+ getUiProgressBar().setBackground(color);
+ }
+ if (getUiBrowseButton() != null && !getUiBrowseButton().isDisposed()) {
+ getUiBrowseButton().setBackground(color);
}
}
};
getUiEnvironment().getFormToolkit().adapt(textField, false, false);
// correction to look like a normal text
textField.setData(WidgetUtil.CUSTOM_VARIANT, VARIANT_FILECHOOSER);
- m_browseButton = getUiEnvironment().getFormToolkit().createDropDownButton(m_fileContainer, SWT.DROP_DOWN);
+ //textfield must be disabled. We can't upload the file from it for now.
+ textField.setEnabled(false);
+
+ setUiContainer(container);
+ setUiLabel(label);
+ setUiField(textField);
+
+ createProgressBar();
+ createBrowseButton();
+
+ // prevent the button from grabbing focus
+ m_fileContainer.setTabList(new Control[]{textField});
+
+ // context menu
+ m_contextMenu = new Menu(getUiBrowseButton().getShell(), SWT.POP_UP);
+ m_contextMenu.addMenuListener(new P_ContextMenuListener());
+ getUiBrowseButton().setMenu(m_contextMenu);
+
+ // listener
+// P_RwtBrowseButtonListener browseButtonListener = new P_RwtBrowseButtonListener();
+// getUiBrowseButton().addSelectionListener(browseButtonListener);
+
+ // layout
+ container.setLayout(new LogicalGridLayout(1, 0));
+
+ m_fileContainer.setLayoutData(LogicalGridDataBuilder.createField(((IFormField) getScoutObject()).getGridData()));
+ m_fileContainer.setLayout(new FormLayout());
+
+ final FormData textLayoutData = new FormData(SWT.DEFAULT, SWT.DEFAULT);
+ textLayoutData.right = new FormAttachment(100, -20);
+ textLayoutData.left = new FormAttachment(0, 0);
+ textLayoutData.bottom = new FormAttachment(textField, -1, SWT.BOTTOM);
+ textField.setLayoutData(textLayoutData);
+ }
+
+ private void createBrowseButton() {
+ m_browseButton = getUiEnvironment().getFormToolkit().createDropDownFileUpload(m_fileContainer, SWT.DROP_DOWN);
m_browseButton.setData(WidgetUtil.CUSTOM_VARIANT, VARIANT_FILECHOOSER);
// to ensure the text is validated on a context menu call this mouse
// listener is used.
@@ -101,50 +162,103 @@ public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileC
getUiField().setFocus();
}
});
+ setBackgroundFromScout(getScoutObject().getBackgroundColor());
- setUiContainer(container);
- setUiLabel(label);
- setUiField(textField);
- // prevent the button from grabbing focus
- m_fileContainer.setTabList(new Control[]{textField});
+ getUiBrowseButton().addSelectionListener(new SelectionAdapter() {
+ private static final long serialVersionUID = 1L;
- // context menu
- m_contextMenu = new Menu(m_browseButton.getShell(), SWT.POP_UP);
- m_contextMenu.addMenuListener(new P_ContextMenuListener());
- m_browseButton.setMenu(m_contextMenu);
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ String filename = getUiBrowseButton().getFileName();
+ getUiField().setText(filename);
+ handleUpload();
+ }
+ });
- // listener
- P_RwtBrowseButtonListener browseButtonListener = new P_RwtBrowseButtonListener();
- getUiBrowseButton().addSelectionListener(browseButtonListener);
+ final FormData buttonLayoutData = new FormData(SWT.DEFAULT, SWT.DEFAULT);
+ buttonLayoutData.left = new FormAttachment(getUiField(), -4, SWT.RIGHT);
+ buttonLayoutData.bottom = new FormAttachment(getUiBrowseButton(), -6, SWT.BOTTOM);
+ getUiBrowseButton().setLayoutData(buttonLayoutData);
- // layout
- container.setLayout(new LogicalGridLayout(1, 0));
+ setEnabledFromScout(getScoutObject().isEnabled());
+ m_fileContainer.layout();
+ }
- m_fileContainer.setLayoutData(LogicalGridDataBuilder.createField(((IFormField) getScoutObject()).getGridData()));
- m_fileContainer.setLayout(new FormLayout());
+ private void createProgressBar() {
+ m_progressBar = new ProgressBar(m_fileContainer, SWT.HORIZONTAL | SWT.SMOOTH | getUiEnvironment().getFormToolkit().getOrientation());
+ getUiEnvironment().getFormToolkit().adapt(m_progressBar, true, true);
+ setBackgroundFromScout(getScoutObject().getBackgroundColor());
- final FormData textLayoutData = new FormData(SWT.DEFAULT, SWT.DEFAULT);
- textLayoutData.right = new FormAttachment(100, -20);
- textLayoutData.left = new FormAttachment(0, 0);
- textLayoutData.bottom = new FormAttachment(textField, -1, SWT.BOTTOM);
- textField.setLayoutData(textLayoutData);
+ final FormData progressLayoutData = new FormData(SWT.DEFAULT, SWT.DEFAULT);
+ progressLayoutData.right = new FormAttachment(100, -20);
+ progressLayoutData.left = new FormAttachment(0, 0);
+ progressLayoutData.top = new FormAttachment(2, 0);
+ progressLayoutData.bottom = new FormAttachment(m_progressBar, 4, SWT.BOTTOM);
+ m_progressBar.setLayoutData(progressLayoutData);
- final FormData buttonLayoutData = new FormData(SWT.DEFAULT, SWT.DEFAULT);
- buttonLayoutData.left = new FormAttachment(textField, 0, SWT.RIGHT);
- buttonLayoutData.bottom = new FormAttachment(m_browseButton, 1, SWT.BOTTOM);
- m_browseButton.setLayoutData(buttonLayoutData);
+ m_fileContainer.layout();
}
@Override
- public DropDownButton getUiBrowseButton() {
+ public void disposeImpl() {
+ super.dispose();
+ if (m_uploadListener != null) {
+ m_handler.removeUploadListener(m_uploadListener);
+ m_uploadListener = null;
+ }
+ if (m_handler != null) {
+ m_handler.dispose();
+ m_handler = null;
+ }
+ if (m_browseButton != null) {
+ m_browseButton.dispose();
+ m_browseButton = null;
+ }
+ }
+
+ private void initializeFileUpload() {
+ FileUploadReceiver receiver = new DiskFileUploadReceiver();
+ m_handler = new FileUploadHandler(receiver);
+ }
+
+ @Override
+ public DropDownFileUpload getUiBrowseButton() {
return m_browseButton;
}
@Override
+ public ProgressBar getUiProgressBar() {
+ return m_progressBar;
+ }
+
+ @Override
public StyledText getUiField() {
return (StyledText) super.getUiField();
}
+ @Override
+ protected IRwtKeyStroke[] getUiKeyStrokes() {
+ List<IRwtKeyStroke> strokes = CollectionUtility.copyList(Arrays.asList(super.getUiKeyStrokes()));
+
+ strokes = CollectionUtility.appendList(strokes, new RwtKeyStroke(SWT.ESC) {
+ @Override
+ public void handleUiAction(Event e) {
+ if (cancelUpload()) {
+ e.doit = false;
+ }
+ }
+ });
+
+ strokes = CollectionUtility.appendList(strokes, new RwtKeyStroke(SWT.CR) {
+ @Override
+ public void handleUiAction(Event e) {
+ handleUiInputVerifier(e.doit);
+ }
+ });
+
+ return CollectionUtility.toArray(strokes, IRwtKeyStroke.class);
+ }
+
/*
* scout properties
*/
@@ -173,13 +287,16 @@ public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileC
@Override
protected void setEnabledFromScout(boolean b) {
super.setEnabledFromScout(b);
- m_browseButton.setButtonEnabled(b);
- getUiField().setEnabled(b);
+ getUiBrowseButton().setButtonEnabled(b);
+ //textfield must be disabled. We can't upload the file from it for now.
+ getUiField().setEnabled(false);
if (b) {
m_fileContainer.setData(WidgetUtil.CUSTOM_VARIANT, VARIANT_FILECHOOSER);
+ getUiBrowseButton().setImage(getUiEnvironment().getIcon("filechooserfield_file.png"));
}
else {
m_fileContainer.setData(WidgetUtil.CUSTOM_VARIANT, VARIANT_FILECHOOSER_DISABLED);
+ getUiBrowseButton().setImage(getUiEnvironment().getIcon("filechooserfield_file_disabled.png"));
}
}
@@ -200,9 +317,8 @@ public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileC
if (!doit) {
return;
}
- final String text = getUiField().getText();
// only handle if text has changed
- if (CompareUtility.equals(text, getScoutObject().getDisplayText()) && getScoutObject().getErrorStatus() == null) {
+ if (CompareUtility.equals(m_uploadedFile, getScoutObject().getDisplayText()) && getScoutObject().getErrorStatus() == null) {
return;
}
final Holder<Boolean> result = new Holder<Boolean>(Boolean.class, false);
@@ -210,7 +326,7 @@ public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileC
Runnable t = new Runnable() {
@Override
public void run() {
- boolean b = getScoutObject().getUIFacade().setTextFromUI(text);
+ boolean b = getScoutObject().getUIFacade().setTextFromUI(m_uploadedFile.getAbsolutePath());
result.setValue(b);
}
};
@@ -237,30 +353,31 @@ public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileC
getUiField().setSelection(0, 0);
}
- protected void handleUiFileChooserAction() {
- if (getScoutObject().isVisible() && getScoutObject().isEnabled()) {
- Runnable scoutJob = new Runnable() {
- @Override
- public void run() {
- IFileChooser fc = getScoutObject().getFileChooser();
- final File[] files = fc.startChooser();
-
- Runnable uiJob = new Runnable() {
- @Override
- public void run() {
- if (files != null && files.length > 0) {
- getUiField().setText(files[0].getAbsolutePath());
- handleUiInputVerifier(true);
- }
- }
- };
- if (getUiEnvironment() != null) {
- getUiEnvironment().invokeUiLater(uiJob);
- }
- }
- };
- getUiEnvironment().invokeScoutLater(scoutJob, 0);
+ private void handleUpload() {
+ m_uploadedFile = null;
+ String url = m_handler.getUploadUrl();
+ if (m_uploadListener == null) {
+ m_uploadListener = new P_FileUploadListener();
}
+ m_handler.addUploadListener(m_uploadListener);
+ getUiBrowseButton().submit(url);
+ }
+
+ private boolean cancelUpload() {
+ if (m_uploadedFile != null) {
+ return false;
+ }
+ m_handler.removeUploadListener(m_uploadListener);
+ m_handler.dispose();
+ getUiBrowseButton().dispose();
+ getUiProgressBar().dispose();
+ getUiField().setText("");
+
+ initializeFileUpload();
+
+ createProgressBar();
+ createBrowseButton();
+ return true;
}
@Override
@@ -271,16 +388,6 @@ public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileC
}
}
- private class P_RwtBrowseButtonListener extends SelectionAdapter {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- getUiField().forceFocus();
- handleUiFileChooserAction();
- }
- } // end class P_RwtBrowseButtonListener
-
private class P_ContextMenuListener extends MenuAdapterEx {
private static final long serialVersionUID = 1L;
@@ -325,4 +432,61 @@ public class RwtScoutFileChooserField extends RwtScoutValueFieldComposite<IFileC
}
}
} // end class P_ContextMenuListener
+
+ private class P_FileUploadListener implements FileUploadListener {
+
+ @Override
+ public void uploadProgress(final FileUploadEvent uploadEvent) {
+ getUiEnvironment().getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ double fraction = uploadEvent.getBytesRead() / (double) uploadEvent.getContentLength();
+ int percent = (int) Math.floor(fraction * 100);
+ if (getUiProgressBar() != null && !getUiProgressBar().isDisposed()) {
+ getUiProgressBar().setSelection(percent);
+ getUiProgressBar().setToolTipText("Upload progress: " + percent + "%");
+ }
+ }
+ });
+ }
+
+ @Override
+ public void uploadFinished(final FileUploadEvent uploadEvent) {
+ DiskFileUploadReceiver receiver = (DiskFileUploadReceiver) m_handler.getReceiver();
+ m_uploadedFile = receiver.getTargetFile();
+ getUiEnvironment().getDisplay().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ if (m_uploadedFile != null) {
+ handleUiInputVerifier(true);
+ }
+ }
+ });
+ getUiEnvironment().getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ int percent = 0;
+ if (getUiProgressBar() != null && !getUiProgressBar().isDisposed()) {
+ getUiProgressBar().setSelection(percent);
+ getUiProgressBar().setToolTipText("");
+ }
+ m_handler.removeUploadListener(m_uploadListener);
+ }
+ });
+ }
+
+ @Override
+ public void uploadFailed(final FileUploadEvent uploadEvent) {
+ getUiEnvironment().getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ if (getUiLabel() != null) {
+ getUiLabel().setStatus(new ScoutFieldStatus(uploadEvent.getException().getMessage(), IStatus.ERROR));
+ }
+ m_handler.removeUploadListener(m_uploadListener);
+ }
+ });
+ }
+ }
}
diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/util/ScoutFormToolkit.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/util/ScoutFormToolkit.java
index ef036a8d38..b35402e04a 100644
--- a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/util/ScoutFormToolkit.java
+++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/util/ScoutFormToolkit.java
@@ -17,6 +17,7 @@ import org.eclipse.scout.rt.ui.rap.basic.comp.HyperlinkEx;
import org.eclipse.scout.rt.ui.rap.core.ext.SectionContent;
import org.eclipse.scout.rt.ui.rap.ext.ButtonEx;
import org.eclipse.scout.rt.ui.rap.ext.DropDownButton;
+import org.eclipse.scout.rt.ui.rap.ext.DropDownFileUpload;
import org.eclipse.scout.rt.ui.rap.ext.ImageViewer;
import org.eclipse.scout.rt.ui.rap.ext.ScrolledFormEx;
import org.eclipse.scout.rt.ui.rap.ext.SnapButtonMaximized;
@@ -168,6 +169,12 @@ public class ScoutFormToolkit extends WrappedFormToolkit {
return button;
}
+ public DropDownFileUpload createDropDownFileUpload(Composite parent, int style) {
+ DropDownFileUpload fileUpload = new DropDownFileUpload(parent, style | kit.getOrientation());
+ adapt(fileUpload, false, false);
+ return fileUpload;
+ }
+
public Canvas createCanvas(Composite container) {
Canvas c = new Canvas(container, SWT.NONE);
adapt(c, false, false);
diff --git a/org.eclipse.scout.rt.ui.rap/theme/scout.css b/org.eclipse.scout.rt.ui.rap/theme/scout.css
index 55e1257cc6..bc9f85317f 100644
--- a/org.eclipse.scout.rt.ui.rap/theme/scout.css
+++ b/org.eclipse.scout.rt.ui.rap/theme/scout.css
@@ -1,5 +1,4 @@
/* Widget - Default for all widgets */
-
* {
color: #000000;
background-color: white;
@@ -11,11 +10,11 @@
color: #CFCFCF;
}
-Group-Label, CCombo, Combo, DateTime {
+Group-Label,CCombo,Combo,DateTime {
font: bold 11px Arial, Helvetica, sans-serif;
}
-DateTime-Calendar-Navbar, ToolTip-Text {
+DateTime-Calendar-Navbar,ToolTip-Text {
font: bold 12px Arial, Helvetica, sans-serif;
}
@@ -37,14 +36,12 @@ Display {
rwt-thinborder-color: #aca899;
rwt-selectionmarker-color: #fec83c;
rwt-infobackground-color: #ffffff;
-
-/* Rayo no icons in messageboxes */
-/* rwt-error-image: url( theme/img/dialog/error.png ); */
-/* rwt-information-image: url( theme/img/dialog/information.png ); */
-/* rwt-question-image: url( theme/img/dialog/question.png ); */
-/* rwt-warning-image: url( theme/img/dialog/warning.png ); */
-/* rwt-working-image: url( theme/img/dialog/information.png ); */
-
+ /* Rayo no icons in messageboxes */
+ /* rwt-error-image: url( theme/img/dialog/error.png ); */
+ /* rwt-information-image: url( theme/img/dialog/information.png ); */
+ /* rwt-question-image: url( theme/img/dialog/question.png ); */
+ /* rwt-warning-image: url( theme/img/dialog/warning.png ); */
+ /* rwt-working-image: url( theme/img/dialog/information.png ); */
rwt-fontlist: 12px Arial, Helvetica, sans-serif;
/*
@@ -53,7 +50,6 @@ Display {
}
/* Control - Default for all controls */
-
* {
border: none;
padding: 0px;
@@ -64,7 +60,6 @@ Display {
}
/* Composite - Default for all composites */
-
Composite {
padding: 0px;
opacity: 1;
@@ -79,7 +74,6 @@ Composite[BORDER] {
}
/* Group */
-
Group {
color: #4a4a4a;
background-color: transparent;
@@ -103,12 +97,11 @@ Group-Label {
}
/* GroupBox with empty border */
-
-Group.empty{
+Group.empty {
color: #4a4a4a;
}
-Group-Frame.empty{
+Group-Frame.empty {
padding: 6px 12px 6px 12px;
border: none;
}
@@ -143,7 +136,6 @@ Browser[BORDER] {
}
/* Button */
-
Button {
cursor: default;
color: white;
@@ -151,7 +143,7 @@ Button {
background-color: transparent;
}
-Button[PUSH], Button[TOGGLE], Button[BORDER] {
+Button[PUSH],Button[TOGGLE],Button[BORDER] {
background-image: gradient(
linear, left top, left bottom,
from( #7ab9dd ),
@@ -164,7 +156,7 @@ Button[PUSH], Button[TOGGLE], Button[BORDER] {
padding: 4px 5px;
}
-Button[PUSH]:disabled, Button[TOGGLE]:disabled {
+Button[PUSH]:disabled,Button[TOGGLE]:disabled {
background-image: gradient(
linear, left top, left bottom,
from( #dee1e7 ),
@@ -175,7 +167,7 @@ Button[PUSH]:disabled, Button[TOGGLE]:disabled {
background-color: transparent;
}
-Button[PUSH]:hover, Button[TOGGLE]:hover {
+Button[PUSH]:hover,Button[TOGGLE]:hover {
background-image: gradient(
linear, left top, left bottom,
from( #55aedb ),
@@ -183,11 +175,11 @@ Button[PUSH]:hover, Button[TOGGLE]:hover {
);
}
-Button[PUSH]:pressed, Button[TOGGLE]:pressed {
+Button[PUSH]:pressed,Button[TOGGLE]:pressed {
animation: none;
}
-Button-FocusIndicator[PUSH], Button-FocusIndicator[TOGGLE] {
+Button-FocusIndicator[PUSH],Button-FocusIndicator[TOGGLE] {
/* XXX hstaudacher we need to add a border radius when bug 346436 is fixed */
background-color: transparent;
border: 1px solid #b0cce3;
@@ -230,7 +222,6 @@ Button[TOGGLE]:selected:hover {
}
/* Link */
-
Link-Hyperlink {
/* XXX hstaudacher Theme text decorator when bug 346438 is fixed */
color: #67A8CE;
@@ -240,16 +231,16 @@ Link-Hyperlink:disabled {
color: #2a5a76;
}
-Button[CHECK], Button[RADIO] {
+Button[CHECK],Button[RADIO] {
color: #000000;
font: 12px Arial, Helvetica, sans-serif; /* not bold */
}
-Button[CHECK]:disabled, Button[RADIO]:disabled {
+Button[CHECK]:disabled,Button[RADIO]:disabled {
color: #2a5a76;
}
-Button[CHECK][BORDER], Button[RADIO][BORDER] {
+Button[CHECK][BORDER],Button[RADIO][BORDER] {
background-image: none;
}
@@ -292,7 +283,8 @@ Button-CheckIcon:selected {
}
Button-CheckIcon:selected:disabled {
- background-image: url( theme/img/button/check_box_disabled_selected.png );
+ background-image:
+ url( theme/img/button/check_box_disabled_selected.png );
}
Button-RadioIcon {
@@ -308,7 +300,6 @@ Button-RadioIcon:selected {
}
/* CCombo */
-
CCombo {
border: none;
background-color: #fcfcfc;
@@ -378,7 +369,6 @@ CCombo-FocusIndicator {
}
/* CLabel */
-
CLabel {
color: #000000;
background-color: transparent;
@@ -405,7 +395,6 @@ CLabel[BORDER] {
}
/* Combo */
-
Combo {
border: 1px solid #c1c1c1;
background-color: #fcfcfc;
@@ -467,7 +456,6 @@ Combo-FocusIndicator {
}
/* CoolBar */
-
CoolBar {
background-image: none;
}
@@ -478,7 +466,6 @@ CoolItem-Handle {
}
/* CTabFolder */
-
CTabFolder {
border-color: #bbcddb;
border-radius: 8px 8px 0px 0px;
@@ -511,7 +498,6 @@ CTabFolder-DropDownButton-Icon:hover {
}
/* DateTime */
-
DateTime {
color: #464a4e;
background-color: #fcfcfc;
@@ -528,7 +514,7 @@ DateTime[BORDER] {
border-radius: 2px 2px 2px 2px;
}
-DateTime-Field:selected, DateTime-Calendar-Day:selected {
+DateTime-Field:selected,DateTime-Calendar-Day:selected {
background-color: #D2D2D2;
color: #4a4a4a;
}
@@ -681,7 +667,6 @@ DateTime-DropDownCalendar {
}
/* ExpandBar */
-
ExpandBar {
color: #4a4a4a;
background-color: white;
@@ -727,7 +712,6 @@ ExpandItem-Button:expanded:hover {
}
/* Label */
-
Label {
color: #000000;
background-color: transparent;
@@ -760,7 +744,6 @@ Label-SeparatorLine[SHADOW_OUT] {
}
/* List */
-
List {
background-color: white;
border: none;
@@ -835,7 +818,6 @@ List-Item:even:selected:unfocused {
}
/* Menu */
-
Menu {
background-image: none;
padding: 4px 0px 4px 0px;
@@ -878,16 +860,16 @@ MenuItem-CascadeIcon {
}
/* ProgressBar */
-
ProgressBar {
- background-color: #ffffff;
+ background-color: white;
background-image: none;
- border: 1px solid #A4A4A4;
- border-radius: 2px;
+ border: none;
+ padding: 0px 0px;
+ border-radius: 5px;
}
ProgressBar-Indicator {
- background-color: #00589f;
+ background-color: #67A8CE;
background-image: none;
border: none;
opacity: 1;
@@ -902,7 +884,6 @@ ProgressBar-Indicator:error {
}
/* Sash */
-
Sash {
border: none;
background-image: none;
@@ -919,7 +900,6 @@ Sash-Handle {
}
/* Scale */
-
Scale {
background-color: white;
}
@@ -929,7 +909,6 @@ Scale-Thumb {
}
/* ScrollBar */
-
ScrollBar {
/* XXX hstaudacher We need to set a gradient as background when bg 346618 is fixed */
border: none;
@@ -945,7 +924,7 @@ ScrollBar-Thumb {
background-image: none;
}
-ScrollBar-UpButton, ScrollBar-DownButton {
+ScrollBar-UpButton,ScrollBar-DownButton {
background-color: #ffffff;
border: none;
border-radius: 0px;
@@ -953,7 +932,6 @@ ScrollBar-UpButton, ScrollBar-DownButton {
}
/* Icons */
-
ScrollBar-Thumb-Icon[VERTICAL] {
background-image: none;
}
@@ -999,7 +977,6 @@ ScrollBar-DownButton-Icon[HORIZONTAL]:hover {
}
/* Gradients */
-
ScrollBar-Thumb[VERTICAL] {
background-image: gradient(
linear, left top, right top,
@@ -1017,7 +994,6 @@ ScrollBar-Thumb[HORIZONTAL] {
}
/* Shell */
-
Shell {
border: 1px black;
padding: 0px;
@@ -1025,18 +1001,18 @@ Shell {
opacity: 1;
}
-Shell[TITLE], Shell[BORDER] {
+Shell[TITLE],Shell[BORDER] {
background-color: white;
border: 2px solid #67a8ce;
border-radius: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
}
-Shell[BORDER]:inactive, Shell[TITLE]:inactive {
+Shell[BORDER]:inactive,Shell[TITLE]:inactive {
border: 2px solid #91b8cf;
}
-Shell:maximized, Shell:maximized:inactive {
+Shell:maximized,Shell:maximized:inactive {
border: none;
border-radius: 0px 0px 0px 0px;
}
@@ -1048,7 +1024,6 @@ Shell-DisplayOverlay {
}
/* Shell titlebar */
-
Shell-Titlebar {
font: bold 12px Arial, Helvetica, sans-serif;
background-color: #67a8ce;
@@ -1064,13 +1039,12 @@ Shell-Titlebar:inactive {
background-color: #91b8cf;
}
-Shell-MinButton, Shell-MaxButton, Shell-CloseButton {
+Shell-MinButton,Shell-MaxButton,Shell-CloseButton {
margin: 0px;
}
/* Shell buttons */
/* Minimize button */
-
Shell-MinButton {
background-image: url( theme/img/window/shell-min.png );
}
@@ -1088,7 +1062,6 @@ Shell-MinButton:inactive:hover {
}
/* Maximize button */
-
Shell-MaxButton {
background-image: url( theme/img/window/shell-max.png );
}
@@ -1106,7 +1079,6 @@ Shell-MaxButton:inactive:hover {
}
/* Restore button */
-
Shell-MaxButton:maximized {
background-image: url( theme/img/window/shell-restore.png );
}
@@ -1124,7 +1096,6 @@ Shell-MaxButton:maximized:inactive:hover {
}
/* Close button */
-
Shell-CloseButton {
background-image: url( theme/img/window/shell-close.png );
}
@@ -1142,14 +1113,12 @@ Shell-CloseButton:inactive:hover {
}
/* Slider */
-
Slider {
border: none;
background-color: #f3f3f4;
}
/* Thumb */
-
Slider-Thumb {
background-color: transparent;
border: 1px solid #a4a4a4;
@@ -1196,14 +1165,13 @@ Slider-Thumb[VERTICAL]:pressed {
}
/* Buttons */
-
-Slider-UpButton, Slider-DownButton {
+Slider-UpButton,Slider-DownButton {
background-color: transparent;
border: 1px solid #a4a4a4;
cursor: default;
}
-Slider-UpButton[HORIZONTAL], Slider-DownButton[HORIZONTAL] {
+Slider-UpButton[HORIZONTAL],Slider-DownButton[HORIZONTAL] {
background-image: gradient(
linear, left top, left bottom,
from( #ffffff ),
@@ -1213,7 +1181,7 @@ Slider-UpButton[HORIZONTAL], Slider-DownButton[HORIZONTAL] {
);
}
-Slider-UpButton[VERTICAL], Slider-DownButton[VERTICAL] {
+Slider-UpButton[VERTICAL],Slider-DownButton[VERTICAL] {
background-image: gradient(
linear, left top, right top,
from( #ffffff ),
@@ -1232,7 +1200,7 @@ Slider-UpButton[HORIZONTAL]:pressed, Slider-DownButton[HORIZONTAL]:pressed {
);
}
-Slider-UpButton[VERTICAL]:pressed, Slider-DownButton[VERTICAL]:pressed {
+Slider-UpButton[VERTICAL]:pressed,Slider-DownButton[VERTICAL]:pressed {
background-image: gradient(
linear, left top, right top,
from( #e0e0e0 ),
@@ -1242,7 +1210,6 @@ Slider-UpButton[VERTICAL]:pressed, Slider-DownButton[VERTICAL]:pressed {
}
/* Rounded Borders */
-
Slider-UpButton[HORIZONTAL] {
border-radius: 0px 2px 2px 0px;
}
@@ -1260,7 +1227,6 @@ Slider-DownButton[VERTICAL] {
}
/* Button Icons */
-
Slider-UpButton-Icon[HORIZONTAL] {
background-image: url( theme/img/slider/right.png );
}
@@ -1294,7 +1260,6 @@ Slider-DownButton-Icon[VERTICAL]:hover {
}
/* Spinner */
-
Spinner {
border: none;
padding: 1px 2px;
@@ -1372,7 +1337,6 @@ Spinner-DownButton-Icon:hover {
}
/* TabFolder */
-
TabItem {
background-color: white;
border-top-color: white;
@@ -1393,7 +1357,6 @@ TabItem:hover {
}
/* Table */
-
Table {
background-color: white;
background-image: none;
@@ -1434,12 +1397,10 @@ Composite.tableFieldDisabled {
/* padding: 0px 0px 0px 0px; */
/* background-color: #EBF4F8; */
/* } */
-
Composite.wideTableStatus {
background-color: #EBF4F8;
}
-
Label.wideTableStatus {
color: #264159;
border: 3px solid transparent;
@@ -1456,12 +1417,10 @@ Label.wideTableStatus_error {
/* Composite.tableStatusContainer{ */
/* padding: 2px 0px 0px 0px; */
/* } */
-
Composite.tableStatus {
background-color: #DDEBF4;
}
-
Label.tableStatus {
color: #264159;
border: 3px solid transparent;
@@ -1563,7 +1522,6 @@ Table-Checkbox:selected:disabled {
}
/* Text */
-
Text {
border: none;
padding: 2px 3px;
@@ -1608,7 +1566,6 @@ Text-Message {
}
/* ToolBar */
-
ToolBar {
color: black;
padding: 0px;
@@ -1648,7 +1605,7 @@ ToolItem:hover {
padding: 2px 3px;
}
-ToolItem:pressed, ToolItem:selected {
+ToolItem:pressed,ToolItem:selected {
border: 1px solid #a4a4a4;
border-radius: 2px;
padding: 3px 2px 1px 4px;
@@ -1669,7 +1626,6 @@ ToolItem-Separator {
}
/* ToolTip */
-
ToolTip {
cursor: default;
border: 1px solid #a4a4a4;
@@ -1687,15 +1643,18 @@ ToolTip {
}
ToolTip-Image[ICON_ERROR] {
-/* background-image: url( theme/img/tooltip/error.png ); */
+ /* background-image: url( theme/img/tooltip/error.png ); */
+
}
ToolTip-Image[ICON_INFORMATION] {
-/* background-image: url( theme/img/tooltip/information.png ); */
+ /* background-image: url( theme/img/tooltip/information.png ); */
+
}
ToolTip-Image[ICON_WARNING] {
-/* background-image: url( theme/img/tooltip/warning.png ); */
+ /* background-image: url( theme/img/tooltip/warning.png ); */
+
}
ToolTip-Text {
@@ -1707,7 +1666,6 @@ ToolTip-Message {
}
/* Tree */
-
Tree {
background-color: white;
background-image: none;
@@ -1798,7 +1756,7 @@ TreeColumn {
to( #ececec )
);
color: #666666;
- border-bottom:none;
+ border-bottom: none;
}
TreeColumn:disabled {
@@ -1811,7 +1769,7 @@ TreeColumn:hover {
from( #f4f5f6 ),
to( #e6e6e6 )
);
- border-bottom:none;
+ border-bottom: none;
}
TreeColumn-SortIndicator {
@@ -2006,6 +1964,7 @@ Composite.filechooser-disabled {
}
Text.filechooser {
+ background-color: transparent;
border-radius: 5px;
}
@@ -2117,12 +2076,11 @@ Button.timefield:hover {
}
/* generated at http://www.ajaxload.info */
-Composite.busyIndicator{
+Composite.busyIndicator {
padding: 8px;
background-image: url( theme/img/busy/busy.gif );
}
-
Composite.viewsArea {
background-color: #FFFFFF;
padding: 3px 3px 3px 3px;
@@ -2142,12 +2100,10 @@ Composite.viewPartNoRadius {
Composite.form {
background-color: transparent;
- /* XXX hstaudacher We need to add the box-shadow when bug 346645 is fixed */
+ /* XXX hstaudacher We need to add the box-shadow when bug 346645 is fixed */
padding: 0px 0px 0px 0px;
}
-
-
Composite.toolbarContainer {
background-color: #DDEBF4;
}
@@ -2162,10 +2118,9 @@ Button.menuButton {
}
Button.menuButton:selected, Button.menuButton:selected:hover,
Button.menuButton:pressed, Button.menuButton:hover {
- background-image: url( theme/img/button/icon_menu_mouse_over.png );
+ background-image: url( theme/img/button/icon_menu_mouse_over.png );
}
-
Button.viewButton {
background-image: none;
color: #000000;
@@ -2245,11 +2200,11 @@ Composite.toolButtonBar-active {
border-radius: 5px 0px 0px 0px;
}
-Button.toolButtonBarCollapseButton{
+Button.toolButtonBarCollapseButton {
background-image: url( theme/img/button/icon_slider.png );
background-color: #67a8ce;
-/* padding: 8px 15px; */
-/* border-radius: 0px 0px 0px 0px; */
+ /* padding: 8px 15px; */
+ /* border-radius: 0px 0px 0px 0px; */
}
Button.toolButtonBarCollapseButton:pressed, Button.toolButtonBarCollapseButton:selected,
Button.toolButtonBarCollapseButton:selected:hover, Button.toolButtonBarCollapseButton:hover {
@@ -2417,6 +2372,7 @@ Shell.proposal-form {
}
Composite.proposal-form {
+
}
Table.proposal-form {
@@ -2467,7 +2423,7 @@ Button.formButton-active {
background-color: #F1F7FB;
border-radius: 0px 0px 5px 5px;
color: #000000;
-/* font: bold 12px Arial, Helvetica, sans-serif; */
+ /* font: bold 12px Arial, Helvetica, sans-serif; */
padding: 0px 15px;
}
@@ -2486,7 +2442,7 @@ Composite.formTabArea {
Composite.formTab {
background-color: transparent;
-/* border: 1px solid #bbcddb; */
+ /* border: 1px solid #bbcddb; */
border-radius: 8px 8px 0px 0px;
/* XXX hstaudacher We need to add the box-shadow when bug 346645 is fixed */
padding: 2px 5px 0px 5px;
@@ -2494,7 +2450,7 @@ Composite.formTab {
Composite.formTab-active {
background-color: #ffffff;
-/* border: 1px solid #bbcddb; */
+ /* border: 1px solid #bbcddb; */
border-radius: 8px 8px 0px 0px;
/* XXX hstaudacher We need to add the box-shadow when bug 346645 is fixed */
padding: 2px 5px 0px 5px;
@@ -2515,7 +2471,7 @@ Button.formTabActivate {
background-image: none;
background-color: transparent;
color: #2a5a76;
-/* font: bold 12px Arial, Helvetica, sans-serif; */
+ /* font: bold 12px Arial, Helvetica, sans-serif; */
padding: 2px 5px 0px 6px;
}

Back to the top