diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..25e3ad3 --- /dev/null +++ b/.classpath @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..762a14d --- /dev/null +++ b/.project @@ -0,0 +1,36 @@ + + + accounting-manager-theme + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.m2e.core.maven2Nature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/.settings/com.google.gwt.eclipse.core.prefs b/.settings/com.google.gwt.eclipse.core.prefs new file mode 100644 index 0000000..a797a23 --- /dev/null +++ b/.settings/com.google.gwt.eclipse.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +entryPointModules=com.sencha.gxt.theme.neptune.Theme +filesCopiedToWebInfLib= diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..7a53139 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 +encoding/src=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..6249222 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..94de415 --- /dev/null +++ b/.settings/org.eclipse.wst.common.component @@ -0,0 +1,5 @@ + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..1b22d70 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.settings/org.eclipse.wst.validation.prefs b/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 0000000..04cad8c --- /dev/null +++ b/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,2 @@ +disabled=06target +eclipse.preferences.version=1 diff --git a/config/profile.xml b/config/profile.xml new file mode 100644 index 0000000..896eaf3 --- /dev/null +++ b/config/profile.xml @@ -0,0 +1,29 @@ + + + + Library + + accounting-manager-theme is the theme of accounting-manager + PortletsAdmin + accounting-manager-theme + 0.0.1-SNAPSHOT + + + accounting-manager-theme is the theme of accounting-manager + accounting-manager-theme + 0.0.1-SNAPSHOT + + org.gcube.portlets.admin + accounting-manager-theme + 0.0.1-SNAPSHOT + + webapplication + + accounting-manager-theme-0.0.1-SNAPSHOT.jar + + + + + + + diff --git a/distro/INSTALL b/distro/INSTALL new file mode 100644 index 0000000..e69de29 diff --git a/distro/LICENSE b/distro/LICENSE new file mode 100644 index 0000000..cc51139 --- /dev/null +++ b/distro/LICENSE @@ -0,0 +1,6 @@ +gCube System - License +------------------------------------------------------------ + +The gCube/gCore software is licensed as Free Open Source software conveying to the EUPL (http://ec.europa.eu/idabc/eupl). +The software and documentation is provided by its authors/distributors "as is" and no expressed or +implied warranty is given for its use, quality or fitness for a particular case. \ No newline at end of file diff --git a/distro/MAINTAINERS b/distro/MAINTAINERS new file mode 100644 index 0000000..0bc9be3 --- /dev/null +++ b/distro/MAINTAINERS @@ -0,0 +1 @@ +Giancarlo Panichi (giancarlo.panichi@isti.cnr.it), CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" diff --git a/distro/README b/distro/README new file mode 100644 index 0000000..995d309 --- /dev/null +++ b/distro/README @@ -0,0 +1,48 @@ +The gCube System - accounting-manager-theme +------------------------------------------------------------ + +This work has been supported by the following European projects: iMarine (FP7-INFRASTRUCTURES-2011-2) + +Authors +------- + +Giancarlo Panichi (giancarlo.panichi@isti.cnr.it), CNR Pisa, +Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" + + +Version and Release Date +------------------------ + +v. 0.0.1-SNAPSHOT (2015-04-30) + + +Description +----------- + +accounting-manager-theme is the theme of accounting-manager + + +Download information +-------------------- +Source code is available from SVN: + https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/accounting-manager-theme + +Binaries can be downloaded from: + http://software.d4science.research-infrastructures.eu/ + + +Documentation +------------- + +accounting-manager-theme is the theme of accounting-manager + +Documentation is available on-line from the Projects Documentation Wiki: + https://gcube.wiki.gcube-system.org/gcube/index.php/Accounting_Manager + + +Licensing +--------- + +This software is licensed under the terms you may find in the file named "LICENSE" in this directory. + + diff --git a/distro/changelog.xml b/distro/changelog.xml new file mode 100644 index 0000000..ac2e028 --- /dev/null +++ b/distro/changelog.xml @@ -0,0 +1,5 @@ + + + First Release + + \ No newline at end of file diff --git a/distro/svnpath.txt b/distro/svnpath.txt new file mode 100644 index 0000000..160f4a3 --- /dev/null +++ b/distro/svnpath.txt @@ -0,0 +1 @@ +https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/accounting-manager-theme \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..27bec5f --- /dev/null +++ b/pom.xml @@ -0,0 +1,201 @@ + + + maven-parent + org.gcube.tools + 1.0.0 + + + + 4.0.0 + org.gcube.portlets.admin + accounting-manager-theme + 0.0.1-SNAPSHOT + jar + + + accounting-manager-theme + accounting-manager-theme is the theme of accounting-manager + + + https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/accounting-manager-theme + + + + + + Giancarlo Panichi + g.panichi@isti.cnr.it + CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" + + architect + developer + + + + + + + + ${project.basedir}/distro + ${project.build.directory}/${project.build.finalName} + 2015-04-30 + https://gcube.wiki.gcube-system.org/gcube/index.php/Accounting_Manager + templates + distro + config + + ${env.KEYS} + + UTF-8 + UTF-8 + + + + 2.6.1 + 3.3.2 + 3.1.1 + 2.6.1 + + + + + + com.google.gwt + gwt-user + ${gwtVersion} + + + + com.google.gwt + gwt-dev + ${gwtVersion} + + + + + + com.sencha.gxt + gxt + ${gxtVersion} + + + + + + src + + + src + + + + + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + + + + + + + + maven-resources-plugin + 2.6 + + + copy-profile + process-resources + + copy-resources + + + ${configDirectory} + + + ${templatesDirectory} + + profile.xml + + true + + + + + + copy-distro-resources + process-resources + + copy-resources + + + ${distroDirectory} + + + ${templatesDirectory} + + profile.xml + descriptor.xml + + true + + + + + + + + + maven-clean-plugin + 2.5 + + + + ${distroDirectory} + + ** + + false + + + ${configDirectory} + + ** + + false + + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.2 + + + ${templatesDirectory}/descriptor.xml + + ${project.build.finalName} + + + + servicearchive + package + + single + + + + + + + + + + \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/Theme.gwt.xml b/src/com/sencha/gxt/theme/neptune/Theme.gwt.xml new file mode 100644 index 0000000..dc09523 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/Theme.gwt.xml @@ -0,0 +1,505 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/sencha/gxt/theme/neptune/client/AccordionLayoutDetails.java b/src/com/sencha/gxt/theme/neptune/client/AccordionLayoutDetails.java new file mode 100644 index 0000000..2fe17ac --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/AccordionLayoutDetails.java @@ -0,0 +1,41 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface AccordionLayoutDetails extends PanelDetails { + + @Override + @TypeDetails(sampleValue = "#ffffff", comment = "background color for the panel body") + String backgroundColor(); + + @Override + @TypeDetails(sampleValue = "util.padding(0)", comment = "entire panel padding") + EdgeDetails padding(); + + @Override + @TypeDetails(sampleValue = "util.padding(10)", comment = "header padding") + EdgeDetails headerPadding(); + + @Override + @TypeDetails(sampleValue = "#ccffff", comment = "background color to fill behind the header gradient") + String headerBackgroundColor(); + + @Override + @TypeDetails(sampleValue = "#ccffff, #ccffff", comment = "header gradient string") + String headerGradient(); + + @Override + @TypeDetails(sampleValue = "util.border('solid', '#000000', 1)", comment = "border around the contentpanel") + BorderDetails border(); + + @Override + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "panel heading text style") + FontDetails font(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/BorderDetails.java b/src/com/sencha/gxt/theme/neptune/client/BorderDetails.java new file mode 100644 index 0000000..7c3a9cb --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/BorderDetails.java @@ -0,0 +1,22 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.DetailTemplate; + +/** + * + */ +public interface BorderDetails extends EdgeDetails { + String style(); + String color(); + + @Override + @DetailTemplate("{top}px {right}px {bottom}px {left}px") + public String toString(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/BorderLayoutDetails.java b/src/com/sencha/gxt/theme/neptune/client/BorderLayoutDetails.java new file mode 100644 index 0000000..2305276 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/BorderLayoutDetails.java @@ -0,0 +1,18 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface BorderLayoutDetails { + @TypeDetails(sampleValue = "#DFEAF2", comment = "background for the borderlayoutcontainer, visible in margins and collapsed regions") + String panelBackgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#DFEAF2', 1)", comment = "border styling for a non-mini collapsed region") + BorderDetails collapsePanelBorder(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ButtonDetails.java b/src/com/sencha/gxt/theme/neptune/client/ButtonDetails.java new file mode 100644 index 0000000..296158f --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ButtonDetails.java @@ -0,0 +1,58 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface ButtonDetails { + + @TypeDetails(sampleValue = "#ffffff", comment = "Color of the menu arrow") + String arrowColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#c4c7c7', 1)", comment = "the buttons border") + BorderDetails border(); + + @TypeDetails(sampleValue = "3", comment = "border radius of the button") + int borderRadius(); + + @TypeDetails(sampleValue = "util.radiusMinusBorderWidth(border, borderRadius)", comment = "helper for leftover space in css3 versus sliced images") + EdgeDetails radiusMinusBorderWidth(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','12px','#FFFFFF')", comment = "the buttons text") + FontDetails font(); + + @TypeDetails(sampleValue = "#f6f8f9 0%, #e5ebee 50%, #d7dee3 51%, #f5f7f9 100%", comment = "the normal state gradient") + String gradient(); + + @TypeDetails(sampleValue = "16", comment = "the large font size") + String largeFontSize(); + + @TypeDetails(sampleValue = "32", comment = "the large line height") + String largeLineHeight(); + + @TypeDetails(sampleValue = "14", comment = "the medium font size") + String mediumFontSize(); + + @TypeDetails(sampleValue = "24", comment = "the medium line height") + String mediumLineHeight(); + + @TypeDetails(sampleValue = "#4792C8, #3386C2 50%, #307FB8 51%, #3386C2", comment = "the mouseover state gradient") + String overGradient(); + + @TypeDetails(sampleValue = "util.padding(3)", comment = "the button's padding") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "#2A6D9E, #276796 50%, #2A6D9E 51%, #3F7BA7", comment = "the pressed state gradient") + String pressedGradient(); + + @TypeDetails(sampleValue = "12", comment = "the small font size") + String smallFontSize(); + + @TypeDetails(sampleValue = "18", comment = "the small line height") + String smallLineHeight(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ButtonGroupDetails.java b/src/com/sencha/gxt/theme/neptune/client/ButtonGroupDetails.java new file mode 100644 index 0000000..bec43c3 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ButtonGroupDetails.java @@ -0,0 +1,34 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface ButtonGroupDetails { + + @TypeDetails(sampleValue = "#FFFFFF", comment = "the body background color") + String bodyBackgroundColor(); + + @TypeDetails(sampleValue = "util.padding(4)", comment = "the group's body padding") + EdgeDetails bodyPadding(); + + @TypeDetails(sampleValue = "util.border('solid', '#dfeaf2', 3)", comment = "the groups border") + BorderDetails border(); + + @TypeDetails(sampleValue = "3", comment = "border radius of the button group") + int borderRadius(); + + @TypeDetails(sampleValue = "util.fontStyle('helvetica, arial, verdana, sans-serif','13px','#666666')", comment = "the groups text") + FontDetails font(); + + @TypeDetails(sampleValue = "#1bbcca 0%, #31c2cf 50%, #5fd0d9 51%, #31c2cf", comment = "the header gradient") + String headerGradient(); + + @TypeDetails(sampleValue = "util.padding(2)", comment = "the group's header padding") + EdgeDetails headerPadding(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ColorPaletteDetails.java b/src/com/sencha/gxt/theme/neptune/client/ColorPaletteDetails.java new file mode 100644 index 0000000..ba01572 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ColorPaletteDetails.java @@ -0,0 +1,30 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface ColorPaletteDetails { + @TypeDetails(sampleValue = "14", comment = "height and width of each color swatch") + int itemSize(); + + @TypeDetails(sampleValue = "util.padding(3)", comment = "padding between each color swatch") + EdgeDetails itemPadding(); + + @TypeDetails(sampleValue = "#ffffff", comment = "background color behind all of the items") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#e1e1e1', 1)", comment = "border around each color swatch") + BorderDetails itemBorder(); + + @TypeDetails(sampleValue = "#e6e6e6", comment = "background to surround a selected or hovered color swatch") + String selectedBackgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#666666', 1)", comment = "border to draw around a selected or hovered color swatch") + BorderDetails selectedBorder(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/DatePickerDetails.java b/src/com/sencha/gxt/theme/neptune/client/DatePickerDetails.java new file mode 100644 index 0000000..d15b231 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/DatePickerDetails.java @@ -0,0 +1,107 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +/** + * + */ +public interface DatePickerDetails { + @TypeDetails(sampleValue = "util.border('solid', '#000000', 1)", comment = "DatePicker border") + BorderDetails border(); + + @TypeDetails(sampleValue = "#ffffff", comment = "DatePicker background color") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.padding(8,6)", comment = "padding in the header") + EdgeDetails headerPadding(); + + @TypeDetails(sampleValue = "#f5f5f5", comment = "header background color") + String headerBackgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '12px', '#000000')", comment = "header font styling") + FontDetails headerText(); + + @TypeDetails(sampleValue = "util.padding(5)", comment = "header text padding") + EdgeDetails headerTextPadding(); + + @TypeDetails(sampleValue = "#ffffff", comment = "day of week header background color") + String dayOfWeekBackgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '12px', '#000000')", comment = "day of week header font style") + FontDetails dayOfWeekText(); + + @TypeDetails(sampleValue = "24px", comment = "day of week header line height") + String dayOfWeekLineHeight(); + + @TypeDetails(sampleValue = "util.padding(5)", comment = "day of week header padding") + EdgeDetails dayOfWeekPadding(); + + + @TypeDetails(sampleValue = "util.border('solid', '#ffffff', 1)", comment = "day border") + BorderDetails dayBorder(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '12px', '#000000')", comment = "day font style") + FontDetails dayText(); + + @TypeDetails(sampleValue = "24px", comment = "day line height") + String dayLineHeight(); + + @TypeDetails(sampleValue = "util.padding(5)", comment = "day padding") + EdgeDetails dayPadding(); + + + @TypeDetails(sampleValue = "#e8e8e8", comment = "disabled day background color") + String dayDisabledBackgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '12px', '#000000')", comment = "disabled day font style") + FontDetails dayDisabledText(); + + @TypeDetails(sampleValue = "#ffffff", comment = "next month day background color") + String dayNextBackgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '12px', '#000000')", comment = "next month day font style") + FontDetails dayNextText(); + + @TypeDetails(sampleValue = "#ffffff", comment = "previous month day background color") + String dayPreviousBackgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '12px', '#000000')", comment = "previous month day font style") + FontDetails dayPreviousText(); + + @TypeDetails(sampleValue = "#000000", comment = "over text color") + String itemOverColor(); + + @TypeDetails(sampleValue = "#d6e8f6", comment = "over background color") + String itemOverBackgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#0000ff', 1)", comment = "selected item border") + BorderDetails itemSelectedBorder(); + + @TypeDetails(sampleValue = "#d6e8f6", comment = "selected item background color") + String itemSelectedBackgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '12px', '#000000')", comment = "selected item font style") + FontDetails itemSelectedText(); + + @TypeDetails(sampleValue = "util.border('solid', '#ff0000', 1)", comment = "current date border") + BorderDetails todayBorder(); + + @TypeDetails(sampleValue = "util.padding(5)", comment = "footer padding") + EdgeDetails footerPadding(); + + @TypeDetails(sampleValue = "#e1e1e1", comment = "footer background color") + String footerBackgroundColor(); + + @TypeDetails(sampleValue = "util.margin(0, 3)", comment = "button margins") + EdgeDetails buttonMargin(); + + @TypeDetails(sampleValue = "212px", comment = "width of the DatePicker widget") + String width(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/EdgeDetails.java b/src/com/sencha/gxt/theme/neptune/client/EdgeDetails.java new file mode 100644 index 0000000..390f0b4 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/EdgeDetails.java @@ -0,0 +1,25 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.DetailTemplate; + +/** + * + */ +public interface EdgeDetails { + int top(); + int right(); + int bottom(); + int left(); + + + @Override + @DetailTemplate("{top}px {right}px {bottom}px {left}px") + public String toString(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/FieldDetails.java b/src/com/sencha/gxt/theme/neptune/client/FieldDetails.java new file mode 100644 index 0000000..424fc32 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/FieldDetails.java @@ -0,0 +1,80 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +/** + * + */ +public interface FieldDetails { + + @TypeDetails(sampleValue = "1", comment = "border width of the field") + int borderWidth(); + + @TypeDetails(sampleValue = "#000000", comment = "border color of the field") + String borderColor(); + + @TypeDetails(sampleValue = "'solid'", comment = "border style of the field") + String borderStyle(); + + @TypeDetails(sampleValue = "#ffffff", comment = "background color of the inside of the field") + String backgroundColor(); + + @TypeDetails(sampleValue = "#cccccc", comment = "border color of the field when focused") + String focusBorderColor(); + + @TypeDetails(sampleValue = "#cccccc", comment = "background color of the field when invalid") + String invalidBackgroundColor(); + + @TypeDetails(sampleValue = "#ff0000", comment = "border color of the field when invalid") + String invalidBorderColor(); + + @TypeDetails(sampleValue = "1", comment = "border width of the field when invalid") + int invalidBorderWidth(); + + @TypeDetails(sampleValue = "18", comment = "height of textfields (other than text area") + int height(); + + @TypeDetails(sampleValue = "18px", comment = "line-height of textfields") + String lineHeight(); + + @TypeDetails(sampleValue = "util.padding(8, 12)", comment = "padding around fields") + EdgeDetails padding(); + + + @TypeDetails(sampleValue = "#808080", comment = "color of the empty placeholder text") + String emptyTextColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', 'medium')", comment = "text styling for fields") + FontDetails text(); + + SliderDetails slider(); + + FieldLabelDetails sideLabel(); + + FieldLabelDetails topLabel(); + + + public interface FieldLabelDetails { + @TypeDetails(sampleValue = "util.padding(0, 0, 5)", comment = "spacing around the entire field label") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "util.padding(3,0,0)", comment = "spacing around the label text") + EdgeDetails labelPadding(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "spacing around the field within the label") + EdgeDetails fieldPadding(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', 'medium')", comment = "text styling for field labels") + FontDetails text(); + + @TypeDetails(sampleValue = "'left'", comment = "alignment for the label text, may be 'center', 'left', or 'right'") + String textAlign(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/FieldSetDetails.java b/src/com/sencha/gxt/theme/neptune/client/FieldSetDetails.java new file mode 100644 index 0000000..eddedf5 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/FieldSetDetails.java @@ -0,0 +1,17 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface FieldSetDetails { + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','large')", comment = "text details for the fieldset's legend") + FontDetails text(); + @TypeDetails(sampleValue = "util.border('solid', '#bbbbbb', 1)", comment = "border styling and colors around the fieldset") + BorderDetails border(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/FontDetails.java b/src/com/sencha/gxt/theme/neptune/client/FontDetails.java new file mode 100644 index 0000000..a167491 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/FontDetails.java @@ -0,0 +1,21 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +/** + * Details on fonts/text + */ +public interface FontDetails { + String color(); + + String family(); + + String size(); + + String weight(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/FramedPanelDetails.java b/src/com/sencha/gxt/theme/neptune/client/FramedPanelDetails.java new file mode 100644 index 0000000..7d38ec2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/FramedPanelDetails.java @@ -0,0 +1,47 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface FramedPanelDetails extends PanelDetails { + @TypeDetails(sampleValue = "1", comment = "border radius of the framed panel") + int borderRadius(); + + @TypeDetails(sampleValue = "util.radiusMinusBorderWidth(border, borderRadius)", comment = "helper for leftover space in css3 versus sliced images") + EdgeDetails radiusMinusBorderWidth(); + + + @Override + @TypeDetails(sampleValue = "#ffffff", comment = "background color for the panel body") + String backgroundColor(); + + @Override + @TypeDetails(sampleValue = "util.padding(0)", comment = "entire panel padding") + EdgeDetails padding(); + + @Override + @TypeDetails(sampleValue = "util.padding(10)", comment = "header padding") + EdgeDetails headerPadding(); + + @Override + @TypeDetails(sampleValue = "#ccffff", comment = "background color to fill behind the header gradient") + String headerBackgroundColor(); + + @Override + @TypeDetails(sampleValue = "#ccffff, #ccffff", comment = "header gradient string") + String headerGradient(); + + @Override + @TypeDetails(sampleValue = "util.border('solid', '#000000', 1)", comment = "border around the contentpanel") + BorderDetails border(); + + @Override + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "panel heading text style") + FontDetails font(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/GridDetails.java b/src/com/sencha/gxt/theme/neptune/client/GridDetails.java new file mode 100644 index 0000000..04e601b --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/GridDetails.java @@ -0,0 +1,172 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface GridDetails { + ColumnHeaderDetails columnHeader(); + + public interface RowEditorDetails { + + @TypeDetails(sampleValue = "#DFEAF2", comment = "background color") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#e1e1e1', 1, 0)", comment = "border parameters") + BorderDetails border(); + } + + public interface ColumnHeaderDetails { + @TypeDetails(sampleValue = "1", comment = "width of borders between header cells") + int borderWidth(); + @TypeDetails(sampleValue = "#222222", comment = "color of borders around header cells") + String borderColor(); + @TypeDetails(sampleValue = "'solid'", comment = "style of borders around header cells") + String borderStyle(); + + @TypeDetails(sampleValue = "util.solidGradientString('#e2e7ec')", comment = "css gradient string for column headers") + String gradient(); + @TypeDetails(sampleValue = "util.solidGradientString('#dddddd')", comment = "css gradient string for column header with mouseover") + String overGradient(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '13px', '#666666', 'bold')", comment = "Styling to use for grid headers") + FontDetails text(); + + @TypeDetails(sampleValue = "15px", comment = "line height for grid headers") + String lineHeight(); + + @TypeDetails(sampleValue = "util.padding(4,3,4,5)", comment = "column header padding") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "18", comment = "width of the menu icon") + int menuButtonWidth(); + + @TypeDetails(sampleValue = "util.solidGradientString('#e8e8e8')", comment = "background gradient of the menu icon") + String menuGradient(); + @TypeDetails(sampleValue = "util.border('solid', '#222222', 0, 0, 0, 1)", comment = "border around the menu icon") + BorderDetails menuBorder(); + + @TypeDetails(sampleValue = "util.solidGradientString('#828282')", comment = "mouseover background gradient of the menu icon") + String menuHoverGradient(); + @TypeDetails(sampleValue = "util.border('solid', '#222222', 0, 0, 0, 1)", comment = "mouseover border around the menu icon") + BorderDetails menuHoverBorder(); + + @TypeDetails(sampleValue = "util.solidGradientString('add2ed')", comment = "active background gradient of the menu icon") + String menuActiveGradient(); + @TypeDetails(sampleValue = "util.border('solid', '#222222', 0, 0, 0, 1)", comment = "active border around the menu icon") + BorderDetails menuActiveBorder(); + } + + @TypeDetails(sampleValue = "util.padding(4,3,3,5)", comment = "cell padding") + EdgeDetails cellPadding(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '13px')", comment = "Styling to use for grid cell text") + FontDetails cellText(); + @TypeDetails(sampleValue = "15px", comment = "line height for grid cell text") + String cellLineHeight(); + + @TypeDetails(sampleValue = "#666666", comment = "border color between grid cells (if column lines enabled)") + String cellVBorderColor(); + @TypeDetails(sampleValue = "#666666", comment = "border color between grid rows") + String cellHBorderColor(); + + @TypeDetails(sampleValue = "1", comment = "width of borders between grid rows (and cells, if column lines enabled)") + int cellBorderWidth(); + @TypeDetails(sampleValue = "#ffffff", comment = "cell background") + String cellBackgroundColor(); + @TypeDetails(sampleValue = "#cccccc", comment = "cell background for alt rows, if enabled") + String cellAltBackgroundColor(); + + @TypeDetails(sampleValue = "#666666", comment = "mouseover border color between grid cells (if column lines enabled)") + String cellOverVBorderColor(); + @TypeDetails(sampleValue = "'solid'", comment = "mouseover border style between grid cells (if column lines enabled)") + String cellOverVBorderStyle(); + + @TypeDetails(sampleValue = "#666666", comment = "mouseover border color between grid rows") + String cellOverHBorderColor(); + @TypeDetails(sampleValue = "'solid'", comment = "mouseover border style between grid rows") + String cellOverHBorderStyle(); + + @TypeDetails(sampleValue = "#ccffff", comment = "mouseover background color for grid rows") + String cellOverBackgroundColor(); + + @TypeDetails(sampleValue = "#666666", comment = "border color between grid cells for selected rows/columns (if column lines enabled)") + String cellSelectedVBorderColor(); + @TypeDetails(sampleValue = "'solid'", comment = "border style between grid cells for selected rows/columns (if column lines enabled)") + String cellSelectedVBorderStyle(); + + @TypeDetails(sampleValue = "#666666", comment = "border color between grid rows for selected rows/columns") + String cellSelectedHBorderColor(); + @TypeDetails(sampleValue = "'solid'", comment = "border style between grid rows for selected rows/columns") + String cellSelectedHBorderStyle(); + + @TypeDetails(sampleValue = "#ccccff", comment = "background color for selected rows/columns") + String cellSelectedBackgroundColor(); + + + @TypeDetails(sampleValue = "util.solidGradientString('#e8e8e8')", comment = "gradient to use as a background for columns such as RowNumberer and CheckBoxSelectionModel") + String specialColumnGradient(); + + @TypeDetails(sampleValue = "util.solidGradientString('#666666')", comment = "gradient to use as a background for columns such as RowNumberer and CheckBoxSelectionModel when selected") + String specialColumnGradientSelected(); + + + GroupDetails group(); + + public interface GroupDetails { + @TypeDetails(sampleValue = "#ffffff", comment = "background color for group row") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#000000', 0, 0, 1)", comment = "border around group row") + BorderDetails border(); + + @TypeDetails(sampleValue = "util.fontStyle('san-serif', '13px', '#000000', 'bold')", comment = "styling for group row text") + FontDetails text(); + + @TypeDetails(sampleValue = "util.padding(8, 4)", comment = "padding around the group row") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "17", comment = "spacing to the side of the text to allow for the icon") + int iconSpacing(); + + SummaryDetails summary(); + + public interface SummaryDetails { + @TypeDetails(sampleValue = "util.fontStyle('san-serif', '13px', '#000000', 'bold')", comment = "styling for group summary cell text") + FontDetails text(); + + @TypeDetails(sampleValue = "#ffffff", comment = "background color for group summary row") + String backgroundColor(); + } + } + + RowNumbererDetails rowNumberer(); + + RowEditorDetails rowEditor(); + + public interface RowNumbererDetails { + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '13px')", comment = "styling to use for row numberer text") + FontDetails text(); + + @TypeDetails(sampleValue = "util.padding(4,3,3,5)", comment = "row numberer text padding") + EdgeDetails padding(); + } + + FooterDetails footer(); + + public interface FooterDetails { + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', '13px')", comment = "text style to use on footer text") + FontDetails text(); + + @TypeDetails(sampleValue = "#ffffff", comment = "background color for footer cells") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#666666', 1, 0, 0)", comment = "border around footer cells") + BorderDetails cellBorder(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/InfoDetails.java b/src/com/sencha/gxt/theme/neptune/client/InfoDetails.java new file mode 100644 index 0000000..1576b42 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/InfoDetails.java @@ -0,0 +1,46 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface InfoDetails { + + @TypeDetails(sampleValue="#000000", comment = "background color") + String backgroundColor(); + + @TypeDetails(sampleValue = "0.8", comment = "popup opacity, 0.0-1.0") + double opacity(); + + @TypeDetails(sampleValue = "util.padding(4)", comment = "padding") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "6", comment = "border radius") + int borderRadius(); + + @TypeDetails(sampleValue = "util.border('none')", comment = "border parameters") + BorderDetails border(); + + @TypeDetails(sampleValue = "util.radiusMinusBorderWidth(border, borderRadius)", comment = "helper for leftover space in css3 versus sliced images") + EdgeDetails radiusMinusBorderWidth(); + + @TypeDetails(sampleValue = "util.margin(4,0,0,0)", comment = "margin") + EdgeDetails margin(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','large','#ffffff','bold')", comment = "info header text style") + FontDetails headerText(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium','#ffffff','normal')", comment = "info message text style") + FontDetails messageText(); + + @TypeDetails(sampleValue = "util.padding(4)", comment = "padding around the header text") + EdgeDetails headerPadding(); + + @TypeDetails(sampleValue = "util.padding(4)", comment = "padding around the message text") + EdgeDetails messagePadding(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ListViewDetails.java b/src/com/sencha/gxt/theme/neptune/client/ListViewDetails.java new file mode 100644 index 0000000..bcb1f19 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ListViewDetails.java @@ -0,0 +1,40 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface ListViewDetails { + + public interface ItemDetails { + @TypeDetails(sampleValue = "util.solidGradientString('#ffffff')", comment = "") + String gradient(); + + @TypeDetails(sampleValue = "util.border('none')", comment = "") + BorderDetails border(); + + @TypeDetails(sampleValue = "util.padding(0, 4)", comment = "") + EdgeDetails padding(); + } + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', 'medium')", comment = "listview text styling") + FontDetails text(); + @TypeDetails(sampleValue = "'normal'", comment = "height of text in listview") + String lineHeight(); + + @TypeDetails(sampleValue = "'#ffffff'", comment = "listview background color") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#444444', 1)", comment = "listview body border") + BorderDetails border(); + + ItemDetails item(); + ItemDetails overItem(); + ItemDetails selectedItem(); + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/MaskDetails.java b/src/com/sencha/gxt/theme/neptune/client/MaskDetails.java new file mode 100644 index 0000000..6e7b627 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/MaskDetails.java @@ -0,0 +1,55 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface MaskDetails { + + @TypeDetails(sampleValue = "0.5", comment = "opacity of the element that covers masked content") + double opacity(); + + @TypeDetails(sampleValue = "#000000", comment = "color of the element that covers masked content") + String backgroundColor(); + + BoxDetails box(); + public interface BoxDetails { + + @TypeDetails(sampleValue = "util.padding(5)", comment = "padding between the border and the content of the mask message") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "#555555", comment = "border color for the mask's message") + String borderColor(); + + @TypeDetails(sampleValue = "'solid'", comment = "border style for the mask's message") + String borderStyle(); + + @TypeDetails(sampleValue = "2", comment = "border width for the mask's message") + int borderWidth(); + + @TypeDetails(sampleValue = "0", comment = "border radius for the mask's message") + int borderRadius(); + + @TypeDetails(sampleValue = "util.max(0, borderRadius - borderWidth)", comment = "helper for leftover space in css3 versus sliced images") + int radiusMinusBorderWidth(); + + + @TypeDetails(sampleValue = "#dddddd", comment = "background color for the mask's message") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', 'normal', '#555555')", comment = "font style for mask text") + FontDetails text(); + + @TypeDetails(sampleValue = "util.padding(21, 0, 0)", comment = "padding around the text, useful to provide space for loading image") + EdgeDetails textPadding(); + + @TypeDetails(sampleValue = "'center 0'", comment = "css background-position for the loading image, if any") + String loadingImagePosition(); + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/MenuDetails.java b/src/com/sencha/gxt/theme/neptune/client/MenuDetails.java new file mode 100644 index 0000000..add1e07 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/MenuDetails.java @@ -0,0 +1,96 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface MenuDetails { + + @TypeDetails(sampleValue = "util.border('solid', '#000000', 1)", comment = "border around the menu popup") + BorderDetails border(); + @TypeDetails(sampleValue = "util.padding(0)", comment = "spacing between the border and the list of contents") + EdgeDetails padding(); + @TypeDetails(sampleValue = "util.solidGradientString('#ffffff')", comment = "background gradient (left to right) for the menu list") + String gradient(); + @TypeDetails(sampleValue = "#ffffff", comment = "helper for sliced browsers to have a background color after the sliced image runs out for wide menus") + String lastGradientColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "item text styling") + FontDetails itemText(); + @TypeDetails(sampleValue = "'normal'", comment = "item line height") + String itemLineHeight(); + @TypeDetails(sampleValue = "util.padding(1,8)", comment = "padding around each individual menu item") + EdgeDetails itemPadding(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "item text styling") + FontDetails activeItemText(); + @TypeDetails(sampleValue = "util.solidGradientString('#cccccc')", comment = "gradient for active items (top to bottom)") + String activeItemGradient(); + @TypeDetails(sampleValue = "util.border('solid', '#333333', 1)", comment = "border for active items") + BorderDetails activeItemBorder(); + + MenuBarDetails bar(); + + public interface MenuBarDetails { + @TypeDetails(sampleValue = "util.border('none')", comment = "menu bar border") + BorderDetails border(); + @TypeDetails(sampleValue = "util.padding(1, 8)", comment = "spacing between the border and the items") + EdgeDetails padding(); + @TypeDetails(sampleValue = "util.solidGradientString('#ffffff')", comment = "background gradient of the menubar") + String gradient(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "item text styling") + FontDetails itemText(); + @TypeDetails(sampleValue = "'normal'", comment = "height of each menubar item") + String itemLineHeight(); + @TypeDetails(sampleValue = "util.padding(0)", comment = "menu bar item text padding") + EdgeDetails itemPadding(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "hovered item text styling") + FontDetails hoverItemText(); + @TypeDetails(sampleValue = "util.solidGradientString('#ffffff')", comment = "hovered menu bar item background gradient") + String hoverItemGradient(); + @TypeDetails(sampleValue = "util.border('none')", comment = "hovered menu bar item border") + BorderDetails hoverItemBorder(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "active item text styling") + FontDetails activeItemText(); + @TypeDetails(sampleValue = "util.solidGradientString('#ffffff')", comment = "active menu bar item background gradient") + String activeItemGradient(); + @TypeDetails(sampleValue = "util.border('none')", comment = "active menu bar item horder") + BorderDetails activeItemBorder(); + } + + MenuSeparatorDetails separator(); + + public interface MenuSeparatorDetails { + @TypeDetails(sampleValue = "1", comment = "separator height in px") + int height(); + @TypeDetails(sampleValue = "util.margin(2,3)", comment = "separator margins") + EdgeDetails margin(); + @TypeDetails(sampleValue = "#cccccc", comment = "separator line color") + String color(); + } + + HeaderItemDetails header(); + + public interface HeaderItemDetails { + @TypeDetails(sampleValue = "util.border('solid', '#333333', 0, 0, 1)", comment = "border around the header text") + BorderDetails border(); + @TypeDetails(sampleValue = "#dddddd", comment = "background color for header text") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "header text styling") + FontDetails itemText(); + @TypeDetails(sampleValue = "'normal'", comment = "") + String itemLineHeight(); + @TypeDetails(sampleValue = "util.padding(3)", comment = "padding between header text and border") + EdgeDetails itemPadding(); + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/MessageBoxDetails.java b/src/com/sencha/gxt/theme/neptune/client/MessageBoxDetails.java new file mode 100644 index 0000000..f70ad16 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/MessageBoxDetails.java @@ -0,0 +1,24 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface MessageBoxDetails { + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', 'normal')", comment = "style of the text in the body of the message box") + FontDetails text(); + + @TypeDetails(sampleValue = "util.padding(10, 10, 5)", comment = "padding around the message box") + EdgeDetails messagePadding(); + + @TypeDetails(sampleValue = "util.padding(5, 10, 10)", comment = "padding around the body of the message box") + EdgeDetails bodyPadding(); + + @TypeDetails(sampleValue = "util.padding(10)", comment = "padding around the icon") + EdgeDetails iconPadding(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/PanelDetails.java b/src/com/sencha/gxt/theme/neptune/client/PanelDetails.java new file mode 100644 index 0000000..78c2543 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/PanelDetails.java @@ -0,0 +1,34 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface PanelDetails { + + @TypeDetails(sampleValue = "#ffffff", comment = "background color for the panel body") + String backgroundColor(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "entire panel padding") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "util.padding(10)", comment = "header padding") + EdgeDetails headerPadding(); + + @TypeDetails(sampleValue = "#ccffff", comment = "background color to fill behind the header gradient") + String headerBackgroundColor(); + + @TypeDetails(sampleValue = "#ccffff, #ccffff", comment = "header gradient string") + String headerGradient(); + + @TypeDetails(sampleValue = "util.border('solid', '#000000', 1)", comment = "border around the contentpanel") + BorderDetails border(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "panel heading text style") + FontDetails font(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ProgressBarDetails.java b/src/com/sencha/gxt/theme/neptune/client/ProgressBarDetails.java new file mode 100644 index 0000000..b74b1f2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ProgressBarDetails.java @@ -0,0 +1,37 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface ProgressBarDetails { + + @TypeDetails(sampleValue = "util.border('solid', '#000000', 1)", comment = "border around the entire progressbar") + BorderDetails border(); + + @TypeDetails(sampleValue = "util.solidGradientString('#ffffff')", comment = "background gradient for the empty progressbar") + String backgroundGradient(); + + @TypeDetails(sampleValue = "util.fontStyle(\"sans-serif\", 'medium', '#000000', 'bold')", comment = "font style for the progressbar text") + FontDetails text(); + + @TypeDetails(sampleValue = "'center'", comment = "alignment for the progressbar text, may be 'center', 'left', or 'right'") + String textAlign(); + + @TypeDetails(sampleValue = "util.padding(4, 0)", comment = "padding around the progressbar, typically with zero left/right padding to prevent offsetting the bar itself") + EdgeDetails textPadding(); + + @TypeDetails(sampleValue = "util.solidGradientString('#add8e6')", comment = "gradient for the progress bar as it fills") + String barGradient(); + + @TypeDetails(sampleValue = "util.border('solid', '#000000', 0, 1, 0, 0)", comment = "border around the progressbar as it fills") + BorderDetails barBorder(); + + @TypeDetails(sampleValue = "#000000", comment = "text color for the text covered by the progress bar as it fills") + String barTextColor(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/SliderDetails.java b/src/com/sencha/gxt/theme/neptune/client/SliderDetails.java new file mode 100644 index 0000000..4ec1caf --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/SliderDetails.java @@ -0,0 +1,44 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +/** + * Captures details for the Slider field appearance generation + */ +public interface SliderDetails { + @TypeDetails(sampleValue = "#f5f5f5", comment = "background color for slider track") + String trackBackgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#d4d4d4', 1)", comment = "border") + BorderDetails trackBorder(); + + @TypeDetails(sampleValue = "8", comment = "height of track, not the entire field") + int trackHeight(); + + @TypeDetails(sampleValue = "4", comment = "border radius for track") + int trackRadius(); + + + + @TypeDetails(sampleValue = "#f5f5f5", comment = "background color for thumb") + String thumbBackgroundColor(); + + @TypeDetails(sampleValue = "util.border('solid', '#777777', 1)", comment = "border") + BorderDetails thumbBorder(); + + @TypeDetails(sampleValue = "15", comment = "height of thumb") + int thumbHeight(); + + @TypeDetails(sampleValue = "8", comment = "border radius for thumb") + int thumbRadius(); + + @TypeDetails(sampleValue = "15", comment = "width of thumb") + int thumbWidth(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/SplitBarDetails.java b/src/com/sencha/gxt/theme/neptune/client/SplitBarDetails.java new file mode 100644 index 0000000..69a758a --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/SplitBarDetails.java @@ -0,0 +1,24 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface SplitBarDetails { + @TypeDetails(sampleValue = "#b4b4b4", comment = "color of split bar drag") + String dragColor(); + + @TypeDetails(sampleValue = "0.5", comment = "split bar drag handle opacity (0.0 to 1.0)") + double handleOpacity(); + + @TypeDetails(sampleValue = "8", comment = "width of the split bar handle in east/west (height of the handle on north/south)") + int handleWidth(); + + @TypeDetails(sampleValue = "48", comment = "height of the split bar handle in easy/west (width of the handle on east/west)") + int handleHeight(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/StatusDetails.java b/src/com/sencha/gxt/theme/neptune/client/StatusDetails.java new file mode 100644 index 0000000..72f2b01 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/StatusDetails.java @@ -0,0 +1,25 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface StatusDetails { + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','small')", comment = "status box text") + FontDetails text(); + + @TypeDetails(sampleValue = "'normal'", comment = "line height of the status widget") + String lineHeight(); + + @TypeDetails(sampleValue = "util.padding(0, 2)", comment = "padding around the status text") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "util.border('solid', '#dddddd #ffffff #ffffff #dddddd', 1)", comment = "status box border, only applies to BoxStatusAppearance") + BorderDetails border(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/StatusProxyDetails.java b/src/com/sencha/gxt/theme/neptune/client/StatusProxyDetails.java new file mode 100644 index 0000000..0881a2c --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/StatusProxyDetails.java @@ -0,0 +1,24 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface StatusProxyDetails { + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', 'normal')", comment = "dnd proxy test styling") + FontDetails text(); + + @TypeDetails(sampleValue = "util.border('solid', '#dddddd #bbbbbb #bbbbbb #dddddd', 1)", comment = "border around the dnd proxy") + BorderDetails border(); + + @TypeDetails(sampleValue = "#ffffff", comment = "background color for the dnd proxy") + String backgroundColor(); + + @TypeDetails(sampleValue = "0.85", comment = "opacity of the status proxy") + double opacity(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/TabDetails.java b/src/com/sencha/gxt/theme/neptune/client/TabDetails.java new file mode 100644 index 0000000..fd3019f --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/TabDetails.java @@ -0,0 +1,105 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +/** + * + */ +public interface TabDetails { + @TypeDetails(sampleValue = "3", comment = "border radius of tabs") + int borderRadius(); + + @TypeDetails(sampleValue = "#ffffff", comment = "background color of tab body") + String bodyBackgroundColor(); + + @TypeDetails(sampleValue = "#dfe5e5", comment = "border color or tab panel") + String borderColor(); + + @TypeDetails(sampleValue = "util.solidGradientString('#8b8b8b')", comment = "tab gradient string (top to bottom)") + String gradient(); + + @TypeDetails(sampleValue = "util.solidGradientString('#d5dadd')", comment = "inactive tab gradient string (top to bottom)") + String inactiveGradient(); + + @TypeDetails(sampleValue = "util.solidGradientString('#aeafaf')", comment = "hover tab gradient string (top to bottom)") + String hoverGradient(); + + @TypeDetails(sampleValue = "#8b8b8b", comment = "last color in gradient") + String lastStopColor(); + + @TypeDetails(sampleValue = "#d5dadd", comment = "last color in inactive gradient") + String inactiveLastStopColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium','#000000','normal')", comment = "tab heading text style") + FontDetails headingText(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium','#000000','normal')", comment = "active tab heading text style") + FontDetails activeHeadingText(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium','#000000','normal')", comment = "active tab heading text style") + FontDetails hoverHeadingText(); + + @TypeDetails(sampleValue = "util.solidGradientString('#f1f1f1')", comment = "tab strip background gradient string (top to bottom)") + String tabStripGradient(); + + @TypeDetails(sampleValue = "'none'", comment = "tab item left border") + String tabItemBorderLeft(); + + @TypeDetails(sampleValue = "'none'", comment = "tab item top border") + String tabItemBorderTop(); + + @TypeDetails(sampleValue = "'none'", comment = "tab item right border") + String tabItemBorderRight(); + + @TypeDetails(sampleValue = "'none'", comment = "tab bar border") + String tabBarBorder(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "padding") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "padding") + EdgeDetails paddingWithIcon(); + + @TypeDetails(sampleValue = "6", comment = "left offset for tab icon") + int iconLeftOffset(); + + @TypeDetails(sampleValue = "5", comment = "top offset for tab icon") + int iconTopOffset(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "padding") + EdgeDetails paddingWithClosable(); + + @TypeDetails(sampleValue = "#ecf2f2", comment = "background color of the tab scrollers") + String scrollerBackgroundColor(); + + @TypeDetails(sampleValue = "18", comment = "width of scroller") + int scrollerWidth(); + + @TypeDetails(sampleValue = "31", comment = "height of tabs") + int tabHeight(); + + @TypeDetails(sampleValue = "1", comment = "spacing between tabs") + int tabSpacing(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "padding") + EdgeDetails tabStripPadding(); + + @TypeDetails(sampleValue = "4", comment = "Spacing between tab bar and body") + int tabBarBottomHeight(); + + @TypeDetails(sampleValue = "'none'", comment = "tab strip bottom border") + String tabStripBottomBorder(); + + @TypeDetails(sampleValue = "'none'", comment = "border of tab panel body") + String tabBodyBorder(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "padding") + EdgeDetails tabTextPadding(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ThemeDetails.java b/src/com/sencha/gxt/theme/neptune/client/ThemeDetails.java new file mode 100644 index 0000000..6e909ec --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ThemeDetails.java @@ -0,0 +1,84 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.google.gwt.resources.client.ResourcePrototype; +import com.google.gwt.resources.ext.ResourceGeneratorType; +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; +import com.sencha.gxt.themebuilder.base.rebind.DetailsResourceGenerator; + +@ResourceGeneratorType(DetailsResourceGenerator.class) +public interface ThemeDetails extends ResourcePrototype { + + AccordionLayoutDetails accordionLayout(); + + @TypeDetails(sampleValue = "#000000", comment = "Default color to use on borders in the theme") + String borderColor(); + + @TypeDetails(sampleValue = "#000000", comment = "Default color to use for backgrounds, usually within panels and the like") + String backgroundColor(); + + @TypeDetails(sampleValue = "0.6", comment = "Opactiy value to use on disabled elements/widgets") + double disabledOpacity(); + + @TypeDetails(sampleValue = "'gray'", comment = "Text color to use in disabled widgets. Can be left blank to not set a color and instead let widgets retain their defaults") + String disabledTextColor(); + + BorderLayoutDetails borderLayout(); + + ButtonDetails button(); + + ButtonGroupDetails buttonGroup(); + + FieldDetails field(); + + DatePickerDetails datePicker(); + + PanelDetails panel(); + + FramedPanelDetails framedPanel(); + + MenuDetails menu(); + + SplitBarDetails splitbar(); + + WindowDetails window(); + + TabDetails tabs(); + + ToolBarDetails toolbar(); + + ToolIconDetails tools(); + + InfoDetails info(); + + FieldSetDetails fieldset(); + + TipDetails tip(); + + TreeDetails tree(); + + TipDetails errortip(); + + GridDetails grid(); + + ListViewDetails listview(); + + StatusDetails status(); + + MaskDetails mask(); + + ProgressBarDetails progressbar(); + + StatusProxyDetails statusproxy(); + + ColorPaletteDetails colorpalette(); + + MessageBoxDetails messagebox(); + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ThemeDetailsImpl.java b/src/com/sencha/gxt/theme/neptune/client/ThemeDetailsImpl.java new file mode 100644 index 0000000..ae5d0c4 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ThemeDetailsImpl.java @@ -0,0 +1,6439 @@ +package com.sencha.gxt.theme.neptune.client; + +public class ThemeDetailsImpl implements ThemeDetails { + + @Override + public com.sencha.gxt.theme.neptune.client.PanelDetails panel() { + return new com.sencha.gxt.theme.neptune.client.PanelDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails font() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#101010"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "arial,helvetica,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 10; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 10; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String headerBackgroundColor() { + return "#cecece"; + } + + @Override + public java.lang.String headerGradient() { + return "#cecece 0%, #cecece 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderLayoutDetails borderLayout() { + return new com.sencha.gxt.theme.neptune.client.BorderLayoutDetails() { + + @Override + public java.lang.String panelBackgroundColor() { + return "#f0f2f2"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails collapsePanelBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#d0f4f7"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ColorPaletteDetails colorpalette() { + return new com.sencha.gxt.theme.neptune.client.ColorPaletteDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails itemBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#e1e1e1"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public java.lang.String selectedBackgroundColor() { + return "#e6e6e6"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails selectedBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#8bb8f3"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails itemPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 2; + } + + @Override + public int bottom() { + return 2; + } + + @Override + public int left() { + return 2; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int itemSize() { + return 16; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.MaskDetails mask() { + return new com.sencha.gxt.theme.neptune.client.MaskDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.MaskDetails.BoxDetails box() { + return new com.sencha.gxt.theme.neptune.client.MaskDetails.BoxDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails textPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 21; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String backgroundColor() { + return "#e5e5e5"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#666666"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica, arial, verdana, sans-serif"; + } + }; + } + + @Override + public java.lang.String borderStyle() { + return "none"; + } + + @Override + public int borderWidth() { + return 0; + } + + @Override + public java.lang.String borderColor() { + return ""; + } + + @Override + public int radiusMinusBorderWidth() { + return 3; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 5; + } + + @Override + public int right() { + return 5; + } + + @Override + public int bottom() { + return 5; + } + + @Override + public int left() { + return 5; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int borderRadius() { + return 3; + } + + @Override + public java.lang.String loadingImagePosition() { + return "center 0"; + } + }; + } + + @Override + public double opacity() { + return 0.7; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.DatePickerDetails datePicker() { + return new com.sencha.gxt.theme.neptune.client.DatePickerDetails() { + + @Override + public java.lang.String itemOverColor() { + return "#000000"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails dayBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#ffffff"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String itemOverBackgroundColor() { + return "#eaf3fa"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails todayBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#8b0000"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String itemSelectedBackgroundColor() { + return "#d6e8f6"; + } + + @Override + public java.lang.String dayOfWeekBackgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 8; + } + + @Override + public int right() { + return 6; + } + + @Override + public int bottom() { + return 8; + } + + @Override + public int left() { + return 6; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String dayOfWeekLineHeight() { + return "24px"; + } + + @Override + public java.lang.String dayDisabledBackgroundColor() { + return "#eeeeee"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails dayPreviousText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#bfbfbf"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails dayText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String dayPreviousBackgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails dayNextText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#bfbfbf"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#e1e1e1"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String width() { + return "212px"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails dayOfWeekPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 9; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String headerBackgroundColor() { + return "#f5f5f5"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails buttonMargin() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 2; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails itemSelectedBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#d0f4f7"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails dayPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String footerBackgroundColor() { + return "#f5f5f5"; + } + + @Override + public java.lang.String dayNextBackgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails dayDisabledText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#808080"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails itemSelectedText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String dayLineHeight() { + return "23px"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails headerText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#d0f4f7"; + } + + @Override + public java.lang.String size() { + return "12px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerTextPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 5; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 5; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails footerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails dayOfWeekText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.StatusProxyDetails statusproxy() { + return new com.sencha.gxt.theme.neptune.client.StatusProxyDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#dddddd #bbbbbb #bbbbbb #dddddd"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public double opacity() { + return 0.85; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.StatusDetails status() { + return new com.sencha.gxt.theme.neptune.client.StatusDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#cccccc #d9d9d9 #d9d9d9"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "12px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 5; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 5; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String lineHeight() { + return "16px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FramedPanelDetails framedPanel() { + return new com.sencha.gxt.theme.neptune.client.FramedPanelDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails font() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#ffffff"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "arial,helvetica,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 5; + } + + @Override + public java.lang.String color() { + return "#cecece"; + } + + @Override + public int right() { + return 5; + } + + @Override + public int bottom() { + return 5; + } + + @Override + public int left() { + return 5; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 6; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 10; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String headerBackgroundColor() { + return "#cecece"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails radiusMinusBorderWidth() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String headerGradient() { + return "#cecece 0%, #cecece 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int borderRadius() { + return 4; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.AccordionLayoutDetails accordionLayout() { + return new com.sencha.gxt.theme.neptune.client.AccordionLayoutDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails font() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#666666"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica, arial, verdana, sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#ffffff"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 8; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 8; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String headerBackgroundColor() { + return "#DFEAF2"; + } + + @Override + public java.lang.String headerGradient() { + return "#DFEAF2 0%, #DFEAF2 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.TabDetails tabs() { + return new com.sencha.gxt.theme.neptune.client.TabDetails() { + + @Override + public java.lang.String tabItemBorderLeft() { + return "none"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails tabTextPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 10; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 10; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails hoverHeadingText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#505050"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica, arial, verdana, sans-serif"; + } + }; + } + + @Override + public java.lang.String borderColor() { + return "#c2f1f5"; + } + + @Override + public int scrollerWidth() { + return 18; + } + + @Override + public java.lang.String tabStripGradient() { + return "#c2f1f5 0%, #c2f1f5 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 10; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 10; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#a3a3a3 0%, #a3a3a3 100%"; + } + + @Override + public int tabHeight() { + return 31; + } + + @Override + public java.lang.String tabBarBorder() { + return "none"; + } + + @Override + public java.lang.String scrollerBackgroundColor() { + return "#007cd1"; + } + + @Override + public java.lang.String bodyBackgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails activeHeadingText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#ffffff"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica, arial, verdana, sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails headingText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#505050"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica, arial, verdana, sans-serif"; + } + }; + } + + @Override + public java.lang.String lastStopColor() { + return "#e4e8ec"; + } + + @Override + public int iconLeftOffset() { + return 6; + } + + @Override + public java.lang.String tabBodyBorder() { + return "none"; + } + + @Override + public int tabBarBottomHeight() { + return 4; + } + + @Override + public java.lang.String hoverGradient() { + return "#aeafaf 0%, #aeafaf 100%"; + } + + @Override + public int tabSpacing() { + return 1; + } + + @Override + public java.lang.String tabItemBorderRight() { + return "none"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails paddingWithClosable() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 19; + } + + @Override + public int right() { + return 19; + } + + @Override + public int bottom() { + return 19; + } + + @Override + public int left() { + return 19; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String tabItemBorderTop() { + return "none"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails tabStripPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String inactiveGradient() { + return "#e7e7e7 0%, #e7e7e7 100%"; + } + + @Override + public int borderRadius() { + return 3; + } + + @Override + public java.lang.String inactiveLastStopColor() { + return "#e7e7e7"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails paddingWithIcon() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 18; + } + + @Override + public int right() { + return 18; + } + + @Override + public int bottom() { + return 18; + } + + @Override + public int left() { + return 18; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String tabStripBottomBorder() { + return "none"; + } + + @Override + public int iconTopOffset() { + return 5; + } + }; + } + + @Override + public java.lang.String disabledTextColor() { + return "#f1f1f1"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ButtonDetails button() { + return new com.sencha.gxt.theme.neptune.client.ButtonDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails radiusMinusBorderWidth() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String mediumFontSize() { + return "14"; + } + + @Override + public java.lang.String overGradient() { + return "#e5e5e5 0%, #aeafaf 50%, #b5b5b5 51%, #aeafaf"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#f6f8f9 0%, #e5ebee 50%, #d7dee3 51%, #f5f7f9 100%"; + } + + @Override + public java.lang.String largeFontSize() { + return "16"; + } + + @Override + public java.lang.String smallLineHeight() { + return "18"; + } + + @Override + public java.lang.String largeLineHeight() { + return "32"; + } + + @Override + public java.lang.String pressedGradient() { + return "#dbdbdb 0%, #a3a3a3 50%, #9e9e9e 51%, #a3a3a3"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails font() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#505050"; + } + + @Override + public java.lang.String size() { + return "12px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String arrowColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#747474"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String smallFontSize() { + return "12"; + } + + @Override + public java.lang.String mediumLineHeight() { + return "24"; + } + + @Override + public int borderRadius() { + return 4; + } + }; + } + + @Override + public java.lang.String borderColor() { + return "#cecece"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ButtonGroupDetails buttonGroup() { + return new com.sencha.gxt.theme.neptune.client.ButtonGroupDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails font() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#666666"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica, arial, verdana, sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public java.lang.String color() { + return "#dfeaf2"; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 2; + } + + @Override + public int bottom() { + return 2; + } + + @Override + public int left() { + return 2; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails bodyPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 4; + } + + @Override + public int right() { + return 4; + } + + @Override + public int bottom() { + return 4; + } + + @Override + public int left() { + return 4; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String headerGradient() { + return "#dfeaf2 0%, #dfeaf2 100%"; + } + + @Override + public int borderRadius() { + return 3; + } + + @Override + public java.lang.String bodyBackgroundColor() { + return "#FFFFFF"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.MessageBoxDetails messagebox() { + return new com.sencha.gxt.theme.neptune.client.MessageBoxDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails messagePadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 10; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 5; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails iconPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 10; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 10; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails bodyPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 5; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 10; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.SplitBarDetails splitbar() { + return new com.sencha.gxt.theme.neptune.client.SplitBarDetails() { + + @Override + public int handleWidth() { + return 8; + } + + @Override + public java.lang.String dragColor() { + return "#B4B4B4"; + } + + @Override + public int handleHeight() { + return 48; + } + + @Override + public double handleOpacity() { + return 0.5; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.TipDetails tip() { + return new com.sencha.gxt.theme.neptune.client.TipDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails messagePadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 4; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String backgroundColor() { + return "#eaf3fa"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#e1e1e1"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails margin() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails radiusMinusBorderWidth() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 2; + } + + @Override + public int bottom() { + return 2; + } + + @Override + public int left() { + return 2; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public double opacity() { + return 1.0; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails headerText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "12px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "Tahoma, Arial, Verdana, sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int borderRadius() { + return 3; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails messageText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "12px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "Tahoma, Arial, Verdana, sans-serif"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FieldDetails field() { + return new com.sencha.gxt.theme.neptune.client.FieldDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.FieldDetails.FieldLabelDetails sideLabel() { + return new com.sencha.gxt.theme.neptune.client.FieldDetails.FieldLabelDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails fieldPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String textAlign() { + return "left"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails labelPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 5; + } + + @Override + public int right() { + return 5; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public int invalidBorderWidth() { + return 1; + } + + @Override + public java.lang.String borderStyle() { + return "solid"; + } + + @Override + public java.lang.String borderColor() { + return "#c0c0c0"; + } + + @Override + public java.lang.String focusBorderColor() { + return "#d0f4f7"; + } + + @Override + public java.lang.String invalidBorderColor() { + return "#D94E37"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 6; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 6; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String emptyTextColor() { + return "#808080"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FieldDetails.FieldLabelDetails topLabel() { + return new com.sencha.gxt.theme.neptune.client.FieldDetails.FieldLabelDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails fieldPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String textAlign() { + return "left"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 5; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails labelPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 6; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public java.lang.String invalidBackgroundColor() { + return "#ffffff"; + } + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.SliderDetails slider() { + return new com.sencha.gxt.theme.neptune.client.SliderDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails thumbBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#777777"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int thumbRadius() { + return 8; + } + + @Override + public java.lang.String trackBackgroundColor() { + return "#f5f5f5"; + } + + @Override + public int thumbHeight() { + return 15; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails trackBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#d4d4d4"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int trackRadius() { + return 4; + } + + @Override + public java.lang.String thumbBackgroundColor() { + return "#f5f5f5"; + } + + @Override + public int thumbWidth() { + return 15; + } + + @Override + public int trackHeight() { + return 8; + } + }; + } + + @Override + public int borderWidth() { + return 1; + } + + @Override + public java.lang.String lineHeight() { + return "18px"; + } + + @Override + public int height() { + return 24; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ToolIconDetails tools() { + return new com.sencha.gxt.theme.neptune.client.ToolIconDetails() { + + @Override + public java.lang.String warningColor() { + return "#D94E37"; + } + + @Override + public java.lang.String primaryClickColor() { + return "#c4dff2"; + } + + @Override + public java.lang.String primaryColor() { + return "#8abfe5"; + } + + @Override + public java.lang.String primaryOverColor() { + return "#b8d8ef"; + } + + @Override + public java.lang.String allowColor() { + return "#C6E38A"; + } + }; + } + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ToolBarDetails toolbar() { + return new com.sencha.gxt.theme.neptune.client.ToolBarDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.ButtonDetails buttonOverride() { + return new com.sencha.gxt.theme.neptune.client.ButtonDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails radiusMinusBorderWidth() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String mediumFontSize() { + return "14"; + } + + @Override + public java.lang.String overGradient() { + return "#EDEDED 0%, #EBEBEB 50%, #DFDFDF 51%, #EBEBEB 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#F6F6F6 0%, #F5F5F5 50%, #E8E8E8 51%, #F5F5F5 100%"; + } + + @Override + public java.lang.String largeFontSize() { + return "16"; + } + + @Override + public java.lang.String smallLineHeight() { + return "18"; + } + + @Override + public java.lang.String largeLineHeight() { + return "32"; + } + + @Override + public java.lang.String pressedGradient() { + return "#E1E1E1 0%, #D5D5D5 50%, #E1E1E1 51%, #E4E4E4 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails font() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#666666"; + } + + @Override + public java.lang.String size() { + return "12px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String arrowColor() { + return "#666666"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#cecece"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String smallFontSize() { + return "12"; + } + + @Override + public java.lang.String mediumLineHeight() { + return "24"; + } + + @Override + public int borderRadius() { + return 4; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ToolBarDetails.LabelToolItemDetails labelItem() { + return new com.sencha.gxt.theme.neptune.client.ToolBarDetails.LabelToolItemDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 2; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 2; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String lineHeight() { + return "17px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#ffffff 0%, #ffffff 100%"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.TreeDetails tree() { + return new com.sencha.gxt.theme.neptune.client.TreeDetails() { + + @Override + public java.lang.String dropBackgroundColor() { + return "#e2eff8"; + } + + @Override + public java.lang.String selectedBackgroundColor() { + return "#c1ddf1"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String overBackgroundColor() { + return "#e2eff8"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails nodePadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 6; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String itemHeight() { + return "25px"; + } + + @Override + public java.lang.String dragOverBackgroundColor() { + return "#e2eff8"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails iconMargin() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 4; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 2; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FieldSetDetails fieldset() { + return new com.sencha.gxt.theme.neptune.client.FieldSetDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#b5b8c8"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.WindowDetails window() { + return new com.sencha.gxt.theme.neptune.client.WindowDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails font() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#ffffff"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "arial,helvetica,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 5; + } + + @Override + public java.lang.String color() { + return "#e7e7e7"; + } + + @Override + public int right() { + return 5; + } + + @Override + public int bottom() { + return 5; + } + + @Override + public int left() { + return 5; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 6; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 10; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String headerBackgroundColor() { + return "#cecece"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails radiusMinusBorderWidth() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String headerGradient() { + return "#e7e7e7 0%, #e7e7e7 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int borderRadius() { + return 4; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ProgressBarDetails progressbar() { + return new com.sencha.gxt.theme.neptune.client.ProgressBarDetails() { + + @Override + public java.lang.String backgroundGradient() { + return ""; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails textPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String barTextColor() { + return "#666666"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails barBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String barGradient() { + return "#c1ddf1 0%, #c1ddf1 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#666666"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica, arial, verdana, sans-serif"; + } + }; + } + + @Override + public java.lang.String textAlign() { + return "center"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.TipDetails errortip() { + return new com.sencha.gxt.theme.neptune.client.TipDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails messagePadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 4; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String backgroundColor() { + return "#eaf3fa"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#e1e1e1"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails margin() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails radiusMinusBorderWidth() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 2; + } + + @Override + public int bottom() { + return 2; + } + + @Override + public int left() { + return 2; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public double opacity() { + return 1.0; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails headerText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "12px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "Tahoma, Arial, Verdana, sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int borderRadius() { + return 3; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails messageText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "12px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "Tahoma, Arial, Verdana, sans-serif"; + } + }; + } + }; + } + + @Override + public double disabledOpacity() { + return 0.5; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ListViewDetails listview() { + return new com.sencha.gxt.theme.neptune.client.ListViewDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.ListViewDetails.ItemDetails overItem() { + return new com.sencha.gxt.theme.neptune.client.ListViewDetails.ItemDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 6; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 6; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#d6e8f6 0%, #d6e8f6 100%"; + } + }; + } + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#e1e1e1"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica, arial, verdana, sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ListViewDetails.ItemDetails item() { + return new com.sencha.gxt.theme.neptune.client.ListViewDetails.ItemDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 6; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 6; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#ffffff 0%, #ffffff 100%"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.ListViewDetails.ItemDetails selectedItem() { + return new com.sencha.gxt.theme.neptune.client.ListViewDetails.ItemDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 6; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 6; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#c1ddf1 0%, #c1ddf1 100%"; + } + }; + } + + @Override + public java.lang.String lineHeight() { + return "22px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.InfoDetails info() { + return new com.sencha.gxt.theme.neptune.client.InfoDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails messagePadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public java.lang.String color() { + return "#cccccc"; + } + + @Override + public int right() { + return 2; + } + + @Override + public int bottom() { + return 2; + } + + @Override + public int left() { + return 2; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails headerPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 8; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails margin() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails radiusMinusBorderWidth() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 6; + } + + @Override + public int right() { + return 6; + } + + @Override + public int bottom() { + return 6; + } + + @Override + public int left() { + return 6; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public double opacity() { + return 1.0; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails headerText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#555555"; + } + + @Override + public java.lang.String size() { + return "15px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "Tahoma, Arial, Verdana, sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 7; + } + + @Override + public int bottom() { + return 2; + } + + @Override + public int left() { + return 7; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int borderRadius() { + return 8; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails messageText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#555555"; + } + + @Override + public java.lang.String size() { + return "14px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "Tahoma, Arial, Verdana, sans-serif"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.GridDetails grid() { + return new com.sencha.gxt.theme.neptune.client.GridDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails cellPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 5; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 4; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int cellBorderWidth() { + return 1; + } + + @Override + public java.lang.String cellOverHBorderStyle() { + return "solid"; + } + + @Override + public java.lang.String cellBackgroundColor() { + return "#ffffff"; + } + + @Override + public java.lang.String cellSelectedVBorderColor() { + return "#ededed"; + } + + @Override + public java.lang.String specialColumnGradientSelected() { + return ""; + } + + @Override + public com.sencha.gxt.theme.neptune.client.GridDetails.RowEditorDetails rowEditor() { + return new com.sencha.gxt.theme.neptune.client.GridDetails.RowEditorDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#DFEAF2"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#e1e1e1"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public java.lang.String cellSelectedVBorderStyle() { + return "solid"; + } + + @Override + public java.lang.String specialColumnGradient() { + return ""; + } + + @Override + public com.sencha.gxt.theme.neptune.client.GridDetails.RowNumbererDetails rowNumberer() { + return new com.sencha.gxt.theme.neptune.client.GridDetails.RowNumbererDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 5; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 4; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public java.lang.String cellVBorderColor() { + return "#ededed"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.GridDetails.ColumnHeaderDetails columnHeader() { + return new com.sencha.gxt.theme.neptune.client.GridDetails.ColumnHeaderDetails() { + + @Override + public java.lang.String menuGradient() { + return "#f5f5f5 0%, #f5f5f5 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails menuBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#c0c0c0"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String borderStyle() { + return "solid"; + } + + @Override + public java.lang.String borderColor() { + return "#c0c0c0"; + } + + @Override + public java.lang.String overGradient() { + return "#eef6fb 0%, #eef6fb 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 7; + } + + @Override + public int right() { + return 10; + } + + @Override + public int bottom() { + return 7; + } + + @Override + public int left() { + return 10; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#f5f5f5 0%, #f5f5f5 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#666666"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String menuActiveGradient() { + return "#DFEAF2 0%, #DFEAF2 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails menuHoverBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#c0c0c0"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int borderWidth() { + return 1; + } + + @Override + public int menuButtonWidth() { + return 18; + } + + @Override + public java.lang.String lineHeight() { + return "15px"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails menuActiveBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#c0c0c0"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String menuHoverGradient() { + return "#eef6fb 0%, #eef6fb 100%"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails cellText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String cellLineHeight() { + return "15px"; + } + + @Override + public java.lang.String cellSelectedHBorderColor() { + return "#e2eff8"; + } + + @Override + public java.lang.String cellHBorderColor() { + return "#ededed"; + } + + @Override + public java.lang.String cellOverHBorderColor() { + return "#e2eff8"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.GridDetails.FooterDetails footer() { + return new com.sencha.gxt.theme.neptune.client.GridDetails.FooterDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails cellBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#ededed"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public java.lang.String cellSelectedHBorderStyle() { + return "solid"; + } + + @Override + public java.lang.String cellOverBackgroundColor() { + return "#e2eff8"; + } + + @Override + public java.lang.String cellOverVBorderStyle() { + return "solid"; + } + + @Override + public java.lang.String cellSelectedBackgroundColor() { + return "#c1ddf1"; + } + + @Override + public java.lang.String cellAltBackgroundColor() { + return "#fafafa"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.GridDetails.GroupDetails group() { + return new com.sencha.gxt.theme.neptune.client.GridDetails.GroupDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#f5f5f5"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.GridDetails.GroupDetails.SummaryDetails summary() { + return new com.sencha.gxt.theme.neptune.client.GridDetails.GroupDetails.SummaryDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#ffffff"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#c0c0c0"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails text() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#666666"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 8; + } + + @Override + public int right() { + return 4; + } + + @Override + public int bottom() { + return 8; + } + + @Override + public int left() { + return 4; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int iconSpacing() { + return 17; + } + }; + } + + @Override + public java.lang.String cellOverVBorderColor() { + return "#ededed"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.MenuDetails menu() { + return new com.sencha.gxt.theme.neptune.client.MenuDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.MenuDetails.MenuBarDetails bar() { + return new com.sencha.gxt.theme.neptune.client.MenuDetails.MenuBarDetails() { + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails activeItemText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails activeItemBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String hoverItemGradient() { + return "#d6e8f6 0%, #d6e8f6 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails itemPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public int right() { + return 8; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 8; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String itemLineHeight() { + return "24px"; + } + + @Override + public java.lang.String activeItemGradient() { + return "#d6e8f6 0%, #d6e8f6 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails hoverItemText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails itemText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#ffffff 0%, #ffffff 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails hoverItemBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails activeItemText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public java.lang.String itemLineHeight() { + return "24px"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.MenuDetails.HeaderItemDetails header() { + return new com.sencha.gxt.theme.neptune.client.MenuDetails.HeaderItemDetails() { + + @Override + public java.lang.String backgroundColor() { + return "#D6E3F2"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#99bbe8"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails itemPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 3; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 3; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String itemLineHeight() { + return "13px"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails itemText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#15428b"; + } + + @Override + public java.lang.String size() { + return "10px"; + } + + @Override + public java.lang.String weight() { + return "bold"; + } + + @Override + public java.lang.String family() { + return "tahoma,arial,verdana,sans-serif"; + } + }; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails padding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String gradient() { + return "#ffffff 0%, #ffffff 100%"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.FontDetails itemText() { + return new com.sencha.gxt.theme.neptune.client.FontDetails() { + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public java.lang.String size() { + return "13px"; + } + + @Override + public java.lang.String weight() { + return "normal"; + } + + @Override + public java.lang.String family() { + return "helvetica,arial,verdana,sans-serif"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.MenuDetails.MenuSeparatorDetails separator() { + return new com.sencha.gxt.theme.neptune.client.MenuDetails.MenuSeparatorDetails() { + + @Override + public java.lang.String color() { + return "#e1e1e1"; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails margin() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 2; + } + + @Override + public int right() { + return 3; + } + + @Override + public int bottom() { + return 2; + } + + @Override + public int left() { + return 3; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public int height() { + return 1; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails activeItemBorder() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public java.lang.String color() { + return "#000000"; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String style() { + return "none"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.BorderDetails border() { + return new com.sencha.gxt.theme.neptune.client.BorderDetails() { + + @Override + public int top() { + return 1; + } + + @Override + public java.lang.String color() { + return "#e1e1e1"; + } + + @Override + public int right() { + return 1; + } + + @Override + public int bottom() { + return 1; + } + + @Override + public int left() { + return 1; + } + + @Override + public java.lang.String style() { + return "solid"; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public com.sencha.gxt.theme.neptune.client.EdgeDetails itemPadding() { + return new com.sencha.gxt.theme.neptune.client.EdgeDetails() { + + @Override + public int top() { + return 0; + } + + @Override + public int right() { + return 0; + } + + @Override + public int bottom() { + return 0; + } + + @Override + public int left() { + return 0; + } + + @Override + public java.lang.String toString () { + return top() + "px " + right() + "px " + bottom() + "px " + left() + "px"; + } + }; + } + + @Override + public java.lang.String activeItemGradient() { + return "#d6e8f6 0%, #d6e8f6 100%"; + } + + @Override + public java.lang.String lastGradientColor() { + return "#ffffff"; + } + }; + } +public String getName() {return "theme";} + +} + diff --git a/src/com/sencha/gxt/theme/neptune/client/TipDetails.java b/src/com/sencha/gxt/theme/neptune/client/TipDetails.java new file mode 100644 index 0000000..38d451a --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/TipDetails.java @@ -0,0 +1,46 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface TipDetails { + + @TypeDetails(sampleValue="#ffffff", comment = "background color") + String backgroundColor(); + + @TypeDetails(sampleValue = "1", comment = "tooltip opacity, 0.0-1.0") + double opacity(); + + @TypeDetails(sampleValue = "util.padding(2)", comment = "padding") + EdgeDetails padding(); + + @TypeDetails(sampleValue = "6", comment = "border radius") + int borderRadius(); + + @TypeDetails(sampleValue = "util.border('solid', '#cccccc', 1)", comment = "border parameters") + BorderDetails border(); + + @TypeDetails(sampleValue = "util.radiusMinusBorderWidth(border, borderRadius)", comment = "helper for leftover space in css3 versus sliced images") + EdgeDetails radiusMinusBorderWidth(); + + @TypeDetails(sampleValue = "util.margin(0)", comment = "margin") + EdgeDetails margin(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium','#000000','normal')", comment = "info header text style") + FontDetails headerText(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium','#000000','normal')", comment = "info message text style") + FontDetails messageText(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "padding around the header text") + EdgeDetails headerPadding(); + + @TypeDetails(sampleValue = "util.padding(0)", comment = "padding around the message text") + EdgeDetails messagePadding(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ToolBarDetails.java b/src/com/sencha/gxt/theme/neptune/client/ToolBarDetails.java new file mode 100644 index 0000000..7ab970b --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ToolBarDetails.java @@ -0,0 +1,38 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +/** + * + */ +public interface ToolBarDetails { + @TypeDetails(sampleValue = "util.solidGradientString('#ffffff')", comment = "background gradient of the toolbar") + String gradient(); + + @TypeDetails(sampleValue = "util.border('none')", comment = "border around the toolbar") + BorderDetails border(); + + @TypeDetails(sampleValue = "util.padding(2)", comment = "padding between the toolbar's border and its contents") + EdgeDetails padding(); + + ButtonDetails buttonOverride(); + + LabelToolItemDetails labelItem(); + + public interface LabelToolItemDetails { + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', 'medium')", comment = "LabelToolItem text styling") + FontDetails text(); + @TypeDetails(sampleValue = "'medium'", comment = "LabelToolItem text styling") + String lineHeight(); + @TypeDetails(sampleValue = "util.padding(2, 2, 0)", comment = "label padding") + EdgeDetails padding(); + + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/ToolIconDetails.java b/src/com/sencha/gxt/theme/neptune/client/ToolIconDetails.java new file mode 100644 index 0000000..8d29b4d --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/ToolIconDetails.java @@ -0,0 +1,30 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +/** + * + */ +public interface ToolIconDetails { + @TypeDetails(sampleValue = "util.mixColors('#ffffff', '#cecece', 0.5)", comment = "primary color of icons") + String primaryColor(); + + @TypeDetails(sampleValue = "util.mixColors('#ffffff', '#cecece', 0.3)", comment = "icon color when hover") + String primaryOverColor(); + + @TypeDetails(sampleValue = "util.mixColors('#ffffff', '#cecece', 0.25)", comment = "icon color when clicked") + String primaryClickColor(); + + @TypeDetails(sampleValue = "#ff0000", comment = "color used for warning actions, such as exclamation icon") + String warningColor(); + + @TypeDetails(sampleValue = "#00ff00", comment = "color used for allowed actions, such as allowed drop zones with DnD") + String allowColor(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/TreeDetails.java b/src/com/sencha/gxt/theme/neptune/client/TreeDetails.java new file mode 100644 index 0000000..d01bc50 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/TreeDetails.java @@ -0,0 +1,40 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +/** + * + */ +public interface TreeDetails { + + @TypeDetails(sampleValue = "#e2eff8", comment = "tree node drag over background color") + String dragOverBackgroundColor(); + + @TypeDetails(sampleValue = "#e2eff8", comment = "tree node drop background color") + String dropBackgroundColor(); + + @TypeDetails(sampleValue = "util.margin(4, 3, 0, 2)", comment = "margins for tree element icon") + EdgeDetails iconMargin(); + + @TypeDetails(sampleValue = "25px", comment = "tree item height") + String itemHeight(); + + @TypeDetails(sampleValue = "util.padding(0, 6)", comment = "tree node padding") + EdgeDetails nodePadding(); + + @TypeDetails(sampleValue = "#e2eff8", comment = "tree node over background color") + String overBackgroundColor(); + + @TypeDetails(sampleValue = "#c1ddf1", comment = "tree node selected background color") + String selectedBackgroundColor(); + + @TypeDetails(sampleValue = "util.fontStyle('sans-serif', 'large','#ffffff','bold')", comment = "tree node text style") + FontDetails text(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/WindowDetails.java b/src/com/sencha/gxt/theme/neptune/client/WindowDetails.java new file mode 100644 index 0000000..48b0785 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/WindowDetails.java @@ -0,0 +1,49 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client; + +import com.sencha.gxt.themebuilder.base.client.config.TypeDetails; + +public interface WindowDetails extends FramedPanelDetails { + @Override + @TypeDetails(sampleValue = "1", comment = "border radius of the framed panel") + int borderRadius(); + + @Override + @TypeDetails(sampleValue = "util.radiusMinusBorderWidth(border, borderRadius)", comment = "helper for leftover space in css3 versus sliced images") + EdgeDetails radiusMinusBorderWidth(); + + + @Override + @TypeDetails(sampleValue = "#ffffff", comment = "background color for the panel body") + String backgroundColor(); + + @Override + @TypeDetails(sampleValue = "util.padding(0)", comment = "entire panel padding") + EdgeDetails padding(); + + @Override + @TypeDetails(sampleValue = "util.padding(10)", comment = "header padding") + EdgeDetails headerPadding(); + + @Override + @TypeDetails(sampleValue = "#ccffff", comment = "background color to fill behind the header gradient") + String headerBackgroundColor(); + + @Override + @TypeDetails(sampleValue = "#ccffff, #ccffff", comment = "header gradient string") + String headerGradient(); + + @Override + @TypeDetails(sampleValue = "util.border('solid', '#000000', 1)", comment = "border around the contentpanel") + BorderDetails border(); + + @Override + @TypeDetails(sampleValue = "util.fontStyle('sans-serif','medium')", comment = "panel heading text style") + FontDetails font(); +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/Css3Theme.css b/src/com/sencha/gxt/theme/neptune/client/base/Css3Theme.css new file mode 100644 index 0000000..612f090 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/Css3Theme.css @@ -0,0 +1,63 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def borderColor value('theme.borderColor'); + +@def disabledTextColor value('theme.disabledTextColor'); +@def disabledOpacity value('theme.disabledOpacity'); +@eval ieDisabledOpacity com.sencha.gxt.themebuilder.base.client.CssResourceThemeUtils.opacityToIe8Filter(theme().disabledOpacity()); + + +@if user.agent safari { + *:focus { + outline: none !important; + } +} + + +.border { + border: 1px solid borderColor !important; +} + +.borderLeft { + border: none; + border-left: 1px solid borderColor !important; +} + +.borderRight { + border: none; + border-right: 1px solid borderColor !important; +} + +.borderTop { + border: none; + border-top: 1px solid borderColor !important; +} + +.borderBottom { + border: none; + border-bottom: 1px solid borderColor !important; +} + +.disabled { + color: disabledTextColor !important; + cursor: default !important; +} + +.disabled * { + cursor: default !important; +} + +@if user.agent ie8 { + .disabled { + filter: ieDisabledOpacity; + } +} @else { + .disabled { + opacity: disabledOpacity; + } +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/Css3ThemeAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/Css3ThemeAppearance.java new file mode 100644 index 0000000..b7e3db0 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/Css3ThemeAppearance.java @@ -0,0 +1,68 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.core.client.resources.ThemeStyles.Styles; +import com.sencha.gxt.core.client.resources.ThemeStyles.ThemeAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +/** + * + */ +public class Css3ThemeAppearance implements ThemeAppearance { + + public interface Css3ThemeResources extends ClientBundle { + @Source("Css3Theme.css") + Css3ThemeStyles style(); + + ThemeDetails theme(); + } + + public interface Css3ThemeStyles extends Styles { + + } + + + private final Css3ThemeStyles style; + private final Css3ThemeResources resources; + + public Css3ThemeAppearance() { + this(GWT.create(Css3ThemeResources.class)); + } + + public Css3ThemeAppearance(Css3ThemeResources resources) { + this.resources = resources; + this.style = resources.style(); + + StyleInjectorHelper.ensureInjected(style, true); + } + + + @Override + public Styles style() { + return style; + } + + @Override + public String borderColor() { + return resources.theme().borderColor(); + } + + @Override + public String borderColorLight() { + return resources.theme().borderColor(); + } + + @Override + public String backgroundColorLight() { + return resources.theme().backgroundColor(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCell.css b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCell.css new file mode 100644 index 0000000..b04695b --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCell.css @@ -0,0 +1,167 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def borderRadius value('theme.button.borderRadius','px'); +@def borderColor value('theme.button.border.color'); +@def borderStyle value('theme.button.border.style'); +@def borderWidth value('theme.button.border.toString'); + +@def gradient value('theme.button.gradient'); +@def overGradient value('theme.button.overGradient'); +@def pressedGradient value('theme.button.pressedGradient'); + +@def padding value('theme.button.padding.toString'); + +@def fontSize value('theme.button.font.size','px'); +@def fontFamily value('theme.button.font.family'); +@def fontWeight value('theme.button.font.weight'); +@def fontColor value('theme.button.font.color'); + +@def smallFontSize value('theme.button.smallFontSize','px'); +@def mediumFontSize value('theme.button.mediumFontSize','px'); +@def largeFontSize value('theme.button.largeFontSize','px'); +@def smallLineHeight value('theme.button.smallLineHeight','px'); +@def mediumLineHeight value('theme.button.mediumLineHeight','px'); +@def largeLineHeight value('theme.button.largeLineHeight','px'); + +@def css3Leftover value('theme.button.radiusMinusBorderWidth.toString'); + +.button { + border-radius: borderRadius; + border-width: borderWidth; + border-style: borderStyle; + border-color: borderColor; + background-color: #d0f4f7; + box-sizing: border-box; + height: 100%; + + background: -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, gradient); /* IE10+ */ + background: linear-gradient(to bottom, gradient); /* W3C */ + + padding: css3Leftover; + cursor: pointer; + outline: none; + white-space: nowrap; + overflow: hidden; +} + +.buttonInner { + padding: padding; + text-align: center; + font-size: fontSize; + color: fontColor; + font-weight: fontWeight; + font-family: fontFamily; + vertical-align: middle; +} + +.over { + background: -webkit-linear-gradient(top, overGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, overGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, overGradient); /* IE10+ */ + background: linear-gradient(to bottom, overGradient); /* W3C */ +} + +.pressed { + background: -webkit-linear-gradient(top, pressedGradient) !important; /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, pressedGradient) !important; /* Opera 11.10+ */ + background: -ms-linear-gradient(top, pressedGradient) !important; /* IE10+ */ + background: linear-gradient(to bottom, pressedGradient) !important; /* W3C */ +} + +.focused { + background: -webkit-linear-gradient(top, overGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, overGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, overGradient); /* IE10+ */ + background: linear-gradient(to bottom, overGradient); /* W3C */ +} + + +.small { + line-height: smallLineHeight; + font-size: smallFontSize; +} + +.medium { + line-height: mediumLineHeight; + font-size: mediumFontSize; +} + +.large { + line-height: largeLineHeight; + font-size: largeFontSize; +} + +.iconLeft { + display: inline-block; + vertical-align: middle; + margin-right: 2px; +} + +.iconRight { + display: inline-block; + vertical-align: middle; + margin-left: 2px; +} + +.iconTop { + display: block; + margin: 0 auto; + margin-bottom: 2px; +} + +.iconBottom { + display: block; + margin: 0 auto; + margin-top: 2px; +} + +.noText .iconLeft { + margin-right: 0px; +} + +.noText .iconRight { + margin-left: 0px; +} + +@sprite .split { + gwt-image: 'split'; + width: auto; + height: auto; + background-position: right center; + padding-right: 20px; + background-repeat: no-repeat; +} + +@sprite .splitBottom { + gwt-image: 'splitBottom'; + width: auto; + height: auto; + background-position: center bottom; + padding-bottom: 14px; + background-repeat: no-repeat; +} + +@sprite .arrow { + gwt-image: 'arrow'; + width: auto; + height: auto; + padding-right: 10px; + background-position: right center; + background-repeat: no-repeat; +} + +@sprite .arrowBottom { + gwt-image: 'arrowBottom'; + width: auto; + height: auto; + padding-bottom: 14px; + background-position: center bottom; + background-repeat: no-repeat; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCell.html b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCell.html new file mode 100644 index 0000000..e15a1c4 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCell.html @@ -0,0 +1 @@ +
{value}
\ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCellAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCellAppearance.java new file mode 100644 index 0000000..b20a856 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCellAppearance.java @@ -0,0 +1,328 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.button; + +import com.google.gwt.cell.client.Cell.Context; +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.resources.client.ImageResource.ImageOptions; +import com.google.gwt.resources.client.ImageResource.RepeatStyle; +import com.google.gwt.safecss.shared.SafeStylesBuilder; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.google.gwt.user.client.ui.AbstractImagePrototype; +import com.sencha.gxt.cell.core.client.ButtonCell; +import com.sencha.gxt.cell.core.client.ButtonCell.ButtonArrowAlign; +import com.sencha.gxt.cell.core.client.ButtonCell.ButtonCellAppearance; +import com.sencha.gxt.cell.core.client.ButtonCell.ButtonScale; +import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; +import com.sencha.gxt.cell.core.client.SplitButtonCell; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ButtonDetails; +import com.sencha.gxt.theme.neptune.client.EdgeDetails; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3ButtonCellAppearance implements ButtonCellAppearance { + + public interface Css3ButtonResources extends ClientBundle { + + @ImageOptions(repeatStyle = RepeatStyle.None) + ImageResource arrow(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + ImageResource arrowBottom(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + ImageResource split(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + ImageResource splitBottom(); + + @Source({"Css3ButtonCell.css", "Css3ButtonCellToolBar.css"}) + Css3ButtonStyle style(); + + ThemeDetails theme(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("toolBarArrow.png") + ImageResource toolBarArrow(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("toolBarArrowBottom.png") + ImageResource toolBarArrowBottom(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("toolBarButtonSplit.png") + ImageResource toolBarSplit(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("toolBarButtonSplitBottom.png") + ImageResource toolBarSplitBottom(); + } + + public interface Css3ButtonStyle extends CssResource { + String iconRight(); + + String iconTop(); + + String iconLeft(); + + String iconBottom(); + + String noText(); + + String split(); + + String button(); + + String buttonInner(); + + String over(); + + String pressed(); + + String focused(); + + String small(); + + String medium(); + + String large(); + + String arrow(); + + String arrowBottom(); + + String splitBottom(); + + } + + public interface Css3ButtonTemplates extends XTemplates { + @XTemplate(source = "Css3ButtonCell.html") + SafeHtml render(String value, Css3ButtonStyle style); + } + + private final Css3ButtonResources resources; + private final Css3ButtonStyle style; + + public Css3ButtonCellAppearance() { + resources = GWT.create(Css3ButtonResources.class); + style = resources.style(); + + StyleInjectorHelper.ensureInjected(resources.style(), true); + } + + @Override + public XElement getButtonElement(XElement parent) { + return parent.getFirstChildElement().cast(); + } + + @Override + public XElement getFocusElement(XElement parent) { + return parent.getFirstChildElement().cast(); + } + + @Override + public void onFocus(XElement parent, boolean focused) { + parent.getFirstChildElement(). cast().setClassName(style.focused(), focused); + } + + @Override + public void onOver(XElement parent, boolean over) { + parent.getFirstChildElement(). cast().setClassName(style.over(), over); + } + + @Override + public void onPress(XElement parent, boolean pressed) { + parent.getFirstChildElement(). cast().setClassName(style.pressed(), pressed); + } + + @Override + public void onToggle(XElement parent, boolean pressed) { + parent.getFirstChildElement(). cast().setClassName(style.pressed(), pressed); + } + + @Override + public void render(ButtonCell cell, Context context, M value, SafeHtmlBuilder sb) { + String constantHtml = cell.getHTML(); + boolean hasConstantHtml = constantHtml != null && constantHtml.length() != 0; + boolean isBoolean = value != null && value instanceof Boolean; + // is a boolean always a toggle button? + String text = hasConstantHtml ? cell.getText() : (value != null && !isBoolean) + ? SafeHtmlUtils.htmlEscape(value.toString()) : ""; + + ImageResource icon = cell.getIcon(); + IconAlign iconAlign = cell.getIconAlign(); + + String arrowClass = ""; + String scaleClass = ""; + String iconClass = ""; + + int width = cell.getWidth(); + int height = cell.getHeight(); + boolean hasIcon = cell.getIcon() != null; + boolean isSplitButton = cell instanceof SplitButtonCell; + boolean hasMenu = cell.getMenu() != null; + + boolean hasWidth = width != -1; + + if (cell.getMenu() != null) { + + if (cell instanceof SplitButtonCell) { + switch (cell.getArrowAlign()) { + case RIGHT: + arrowClass = style.split(); + break; + case BOTTOM: + arrowClass = style.splitBottom(); + break; + } + + } else { + switch (cell.getArrowAlign()) { + case RIGHT: + arrowClass = style.arrow(); + break; + case BOTTOM: + arrowClass = style.arrowBottom(); + break; + } + } + + } + + ButtonScale scale = cell.getScale(); + + switch (scale) { + case SMALL: + scaleClass = style.small(); + break; + + case MEDIUM: + scaleClass = style.medium(); + break; + + case LARGE: + scaleClass = style.large(); + break; + case NONE: + break; + default: + break; + } + + if (icon != null) { + switch (iconAlign) { + case TOP: + iconClass = style.iconTop(); + break; + case BOTTOM: + iconClass = style.iconBottom(); + break; + case LEFT: + iconClass = style.iconLeft(); + break; + case RIGHT: + iconClass = style.iconRight(); + break; + } + } + + String buttonClass = style.button(); + boolean hasText = text != null && !text.equals(""); + if (!hasText) { + buttonClass += " " + style.noText(); + } + + // toggle button + if (value == Boolean.TRUE) { + buttonClass += " " + style.pressed(); + } + + String innerClass = style.buttonInner() + " " + iconClass; + + innerClass += " " + arrowClass; + innerClass += " " + scaleClass; + + SafeHtmlBuilder builder = new SafeHtmlBuilder(); + + SafeStylesBuilder ss = new SafeStylesBuilder(); + + if (height != -1) { + ButtonDetails bd = resources.theme().button(); + EdgeDetails padding = bd.padding(); + EdgeDetails paddingInner = bd.radiusMinusBorderWidth(); + int ah = height; + ah -= padding.top(); + ah -= padding.bottom(); + ah -= paddingInner.top(); + ah -= paddingInner.bottom(); + + ss.appendTrustedString("line-height: " + ah + "px;"); + } + + builder.appendHtmlConstant("
"); + + // get iconbuilder ready + SafeHtmlBuilder iconBuilder = new SafeHtmlBuilder(); + if (icon != null) { + int iconWidth = icon != null ? icon.getWidth() : 0; + int iconHeight = icon != null ? icon.getHeight() : 0; + String styles = "width: " + iconWidth + "px; height: " + iconHeight + "px;"; + + iconBuilder.appendHtmlConstant("
"); + iconBuilder.append(AbstractImagePrototype.create(icon).getSafeHtml()); + iconBuilder.appendHtmlConstant("
"); + } + + // for left / right aligned icons with a fixed button width we render the icon outside of the inner div + if (hasWidth && hasIcon && iconAlign == IconAlign.LEFT) { + builder.append(iconBuilder.toSafeHtml()); + } + + if (hasWidth && hasIcon && (iconAlign == IconAlign.LEFT)) { + int tw = width - (resources.theme().button().borderRadius() * 2); + if (isSplitButton && cell.getArrowAlign() == ButtonArrowAlign.RIGHT) { + tw -= resources.split().getWidth() + 10; + } + + if (!isSplitButton && iconAlign == IconAlign.LEFT && hasMenu && cell.getArrowAlign() == ButtonArrowAlign.RIGHT) { + tw -= resources.arrow().getWidth() + 10; + } + + if (hasIcon && iconAlign == IconAlign.LEFT) { + tw -= icon.getWidth(); + } + + ss.appendTrustedString("width: " + tw + "px;"); + } + + builder.appendHtmlConstant("
"); + + if (icon != null) { + if ((!hasWidth && iconAlign == IconAlign.LEFT) || iconAlign == IconAlign.TOP) { + builder.append(iconBuilder.toSafeHtml()); + } + builder.appendHtmlConstant(text); + if (iconAlign == IconAlign.RIGHT || iconAlign == IconAlign.BOTTOM) { + builder.append(iconBuilder.toSafeHtml()); + } + } else { + builder.appendHtmlConstant(text); + } + + builder.appendHtmlConstant("
"); + sb.append(builder.toSafeHtml()); + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCellToolBar.css b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCellToolBar.css new file mode 100644 index 0000000..9876dd2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonCellToolBar.css @@ -0,0 +1,176 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@external x-toolbar-mark; + + +@def tbborderRadius value('theme.toolbar.buttonOverride.borderRadius','px'); +@def tbborderColor value('theme.toolbar.buttonOverride.border.color'); +@def tbborderStyle value('theme.toolbar.buttonOverride.border.style'); +@def tbborderWidth value('theme.toolbar.buttonOverride.border.toString'); + +@def tbgradient value('theme.toolbar.buttonOverride.gradient'); +@def tboverGradient value('theme.toolbar.buttonOverride.overGradient'); +@def tbpressedGradient value('theme.toolbar.buttonOverride.pressedGradient'); + +@def tbpadding value('theme.toolbar.buttonOverride.padding.toString'); + +@def tbfontSize value('theme.toolbar.buttonOverride.font.size','px'); +@def tbfontFamily value('theme.toolbar.buttonOverride.font.family'); +@def tbfontWeight value('theme.toolbar.buttonOverride.font.weight'); +@def tbfontColor value('theme.toolbar.buttonOverride.font.color'); + + +@def tbsmallFontSize value('theme.toolbar.buttonOverride.smallFontSize','px'); +@def tbmediumFontSize value('theme.toolbar.buttonOverride.mediumFontSize','px'); +@def tblargeFontSize value('theme.toolbar.buttonOverride.largeFontSize','px'); +@def tbsmallLineHeight value('theme.toolbar.buttonOverride.smallLineHeight','px'); +@def tbmediumLineHeight value('theme.toolbar.buttonOverride.mediumLineHeight','px'); +@def tblargeLineHeight value('theme.toolbar.buttonOverride.largeLineHeight','px'); + +/* +@def tbsmallFontSize 10px; +@def tbmediumFontSize 11px; +@def tblargeFontSize 12px; +@def tbsmallLineHeight 14px; +@def tbmediumLineHeight 15px; +@def tblargeLineHeight 16px; +*/ + +@def tbcss3Leftover value('theme.button.radiusMinusBorderWidth.toString'); + +.x-toolbar-mark .button { + border-radius: tbborderRadius; + border-width: tbborderWidth; + border-style: tbborderStyle; + border-color: tbborderColor; + background-color: #d0f4f7; + + background: -webkit-linear-gradient(top, tbgradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, tbgradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, tbgradient); /* IE10+ */ + background: linear-gradient(to bottom, tbgradient); /* W3C */ + + padding: tbcss3Leftover; + cursor: pointer; + outline: none; +} + +.x-toolbar-mark .buttonInner { + padding: tbpadding; + text-align: center; + font-size: tbfontSize; + color: tbfontColor; + font-weight: tbfontWeight; + font-family: tbfontFamily; +} + +.x-toolbar-mark .over { + background: -webkit-linear-gradient(top, tboverGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, tboverGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, tboverGradient); /* IE10+ */ + background: linear-gradient(to bottom, tboverGradient); /* W3C */ +} + +.x-toolbar-mark .pressed { + background: -webkit-linear-gradient(top, tbpressedGradient) !important; /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, tbpressedGradient) !important; /* Opera 11.10+ */ + background: -ms-linear-gradient(top, tbpressedGradient) !important; /* IE10+ */ + background: linear-gradient(to bottom, tbpressedGradient) !important; /* W3C */ +} + +.x-toolbar-mark .focused { + background: -webkit-linear-gradient(top, tboverGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, tboverGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, tboverGradient); /* IE10+ */ + background: linear-gradient(to bottom, tboverGradient); /* W3C */ +} + + +.x-toolbar-mark .small { + line-height: tbsmallLineHeight; + font-size: tbsmallFontSize; +} + +.x-toolbar-mark .medium { + line-height: tbmediumLineHeight; + font-size: tbmediumFontSize; +} + +.x-toolbar-mark .large { + line-height: tblargeLineHeight; + font-size: tblargeFontSize; +} + + +.x-toolbar-mark .iconLeft { + display: inline-block; + vertical-align: middle; + margin-right: 2px; +} + +.x-toolbar-mark .iconRight { + display: inline-block; + vertical-align: middle; + margin-left: 2px; +} + +.x-toolbar-mark .iconTop { + display: block; + margin: 0 auto; + margin-bottom: 2px; +} + +.x-toolbar-mark .iconBottom { + display: block; + margin: 0 auto; + margin-top: 2px; +} + +.x-toolbar-mark .noText .iconLeft { + margin-right: 0px; +} + +.x-toolbar-mark .noText .iconRight { + margin-left: 0px; +} + +@sprite .x-toolbar-mark .split { + gwt-image: 'toolBarSplit'; + width: auto; + height: auto; + background-position: right center; + padding-right: 20px; + background-repeat: no-repeat; +} + +@sprite .x-toolbar-mark .splitBottom { + gwt-image: 'toolBarSplitBottom'; + width: auto; + height: auto; + background-position: center bottom; + padding-bottom: 14px; + background-repeat: no-repeat; +} + +@sprite .x-toolbar-mark .arrow { + gwt-image: 'toolBarArrow'; + width: auto; + height: auto; + padding-right: 10px; + background-position: right center; + background-repeat: no-repeat; +} + +@sprite .x-toolbar-mark .arrowBottom { + gwt-image: 'toolBarArrowBottom'; + width: auto; + height: auto; + padding-bottom: 14px; + background-position: center bottom; + background-repeat: no-repeat; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonGroup.css b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonGroup.css new file mode 100644 index 0000000..41a0db2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonGroup.css @@ -0,0 +1,48 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def borderRadius value('theme.buttonGroup.borderRadius','px'); +@def borderColor value('theme.buttonGroup.border.color'); +@def borderStyle value('theme.buttonGroup.border.style'); +@def borderWidth value('theme.buttonGroup.border.toString'); + +@def fontSize value('theme.buttonGroup.font.size'); +@def fontFamily value('theme.buttonGroup.font.family'); +@def fontWeight value('theme.buttonGroup.font.weight'); +@def fontColor value('theme.buttonGroup.font.color'); +@def headerGradient value('theme.buttonGroup.headerGradient'); +@def headerPadding value('theme.buttonGroup.headerPadding.toString'); + +@def bodyPadding value('theme.buttonGroup.bodyPadding.toString'); +@def bodyBackgroundColor value('theme.buttonGroup.bodyBackgroundColor'); + +.group { + border-radius: borderRadius; + border-width: borderWidth; + border-style: borderStyle; + border-color: borderColor; +} + +.header { + font-size: fontSize; + color: fontColor; + font-weight: fontWeight; + font-family: fontFamily; + line-height: 16px; + padding: headerPadding; + text-align: center; + + background: -webkit-linear-gradient(top, headerGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, headerGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, headerGradient); /* IE10+ */ + background: linear-gradient(to bottom, headerGradient); /* W3C */ +} + +.body { + background-color: bodyBackgroundColor; + padding: bodyPadding; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonGroupAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonGroupAppearance.java new file mode 100644 index 0000000..8a9c452 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/button/Css3ButtonGroupAppearance.java @@ -0,0 +1,94 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.button; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.button.ButtonGroup.ButtonGroupAppearance; + +public class Css3ButtonGroupAppearance implements ButtonGroupAppearance { + + public interface Css3ButtonGroupResources extends ClientBundle { + @Source("Css3ButtonGroup.css") + Css3ButtonGroupStyle style(); + + ThemeDetails theme(); + } + + public interface Css3ButtonGroupStyle extends CssResource { + String group(); + + String body(); + + String header(); + } + + public interface Css3ButtonGroupTemplate extends XTemplates { + @XTemplate("
") + SafeHtml render(Css3ButtonGroupStyle style); + } + + private final Css3ButtonGroupResources resources; + private final Css3ButtonGroupStyle style; + private final Css3ButtonGroupTemplate template; + + public Css3ButtonGroupAppearance() { + this(GWT. create(Css3ButtonGroupResources.class)); + } + + public Css3ButtonGroupAppearance(Css3ButtonGroupResources resources) { + this.resources = resources; + style = resources.style(); + template = GWT.create(Css3ButtonGroupTemplate.class); + + StyleInjectorHelper.ensureInjected(resources.style(), true); + } + + @Override + public void render(SafeHtmlBuilder sb) { + sb.append(template.render(style)); + } + + @Override + public void updateText(XElement parent, String text) { + getHeaderElement(parent).setInnerText(text); + } + + @Override + public void onHideHeader(XElement parent, boolean hide) { + getHeaderElement(parent).setVisible(!hide); + } + + @Override + public XElement getHeaderElement(XElement parent) { + return parent.getFirstChildElement().cast(); + } + + @Override + public XElement getContentElem(XElement parent) { + return parent.selectNode("." + style.body()); + } + + @Override + public int getFrameHeight(XElement parent) { + return resources.theme().buttonGroup().borderRadius() * 2; + } + + @Override + public int getFrameWidth(XElement parent) { + return resources.theme().buttonGroup().borderRadius() * 2; + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/arrow.png b/src/com/sencha/gxt/theme/neptune/client/base/button/arrow.png new file mode 100644 index 0000000..23380ca Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/button/arrow.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/arrowBottom.png b/src/com/sencha/gxt/theme/neptune/client/base/button/arrowBottom.png new file mode 100644 index 0000000..c081337 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/button/arrowBottom.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/split.png b/src/com/sencha/gxt/theme/neptune/client/base/button/split.png new file mode 100644 index 0000000..26f8e13 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/button/split.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/splitBottom.png b/src/com/sencha/gxt/theme/neptune/client/base/button/splitBottom.png new file mode 100644 index 0000000..0f809d0 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/button/splitBottom.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarArrow.png b/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarArrow.png new file mode 100644 index 0000000..6784ad1 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarArrow.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarArrowBottom.png b/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarArrowBottom.png new file mode 100644 index 0000000..5a0d6c2 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarArrowBottom.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarButtonSplit.png b/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarButtonSplit.png new file mode 100644 index 0000000..dc40c40 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarButtonSplit.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarButtonSplitBottom.png b/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarButtonSplitBottom.png new file mode 100644 index 0000000..ac313ba Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/button/toolBarButtonSplitBottom.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/colorpalette/Css3ColorPalette.css b/src/com/sencha/gxt/theme/neptune/client/base/colorpalette/Css3ColorPalette.css new file mode 100644 index 0000000..f1a696b --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/colorpalette/Css3ColorPalette.css @@ -0,0 +1,56 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def size value('theme.colorpalette.itemSize', 'px'); +@def itemPadding value('theme.colorpalette.itemPadding.toString'); + +@def backgroundColor value('theme.colorpalette.backgroundColor'); + +@def borderWidth value('theme.colorpalette.itemBorder.toString'); +@def borderStyle value('theme.colorpalette.itemBorder.style'); +@def borderColor value('theme.colorpalette.itemBorder.color'); + +@def selectedBackgroundColor value('theme.colorpalette.selectedBackgroundColor'); + +@def selectedBorderWidth value('theme.colorpalette.selectedBorder.toString'); +@def selectedBorderStyle value('theme.colorpalette.selectedBorder.style'); +@def selectedBorderColor value('theme.colorpalette.selectedBorder.color'); + + +.colorPalette { + background-color: backgroundColor; + border-collapse: collapse; +} + +.anchor { + /*same as background to keep spacing consistent*/ + border-color: backgroundColor; + + border-style: selectedBorderStyle; + border-width: selectedBorderWidth; + + padding: itemPadding; +} + +.inner { + height:size; + width:size; + line-height:size; +} + +.wrapper { + border-color: borderColor; + border-style: borderStyle; + border-width: borderWidth; +} + +.hover,.selected { + border-color: selectedBorderColor; + border-style: selectedBorderStyle; + border-width: selectedBorderWidth; + background-color: selectedBackgroundColor; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/colorpalette/Css3ColorPaletteAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/colorpalette/Css3ColorPaletteAppearance.java new file mode 100644 index 0000000..10c47a0 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/colorpalette/Css3ColorPaletteAppearance.java @@ -0,0 +1,31 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.colorpalette; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.sencha.gxt.theme.base.client.colorpalette.ColorPaletteBaseAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3ColorPaletteAppearance extends ColorPaletteBaseAppearance { + public interface Css3ColorPaletteResources extends ColorPaletteResources, ClientBundle { + @Override + @Source({"com/sencha/gxt/theme/base/client/colorpalette/ColorPalette.css","Css3ColorPalette.css"}) + Css3ColorPaletteStyle style(); + + ThemeDetails theme(); + } + + public interface Css3ColorPaletteStyle extends ColorPaletteStyle { + + } + + public Css3ColorPaletteAppearance() { + super(GWT.create(Css3ColorPaletteResources.class), GWT.create(BaseColorPaletteTemplate.class)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayout.css b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayout.css new file mode 100644 index 0000000..b1bf09a --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayout.css @@ -0,0 +1,46 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def backgroundColor value('theme.accordionLayout.backgroundColor'); +@def borderColor value('theme.accordionLayout.border.color'); +@def borderStyle value('theme.accordionLayout.border.style'); +@def borderWidth value('theme.accordionLayout.border.toString'); + +@def textColor value('theme.accordionLayout.textColor'); +@def headerBackgroundColor value('theme.accordionLayout.headerBackgroundColor'); +@def headerGradient value('theme.accordionLayout.headerGradient'); +@def padding value('theme.accordionLayout.headerPadding.toString'); + +.panel { + outline: 0 none; + border-style: borderStyle; + border-width: borderWidth; + border-color: borderColor; +} + +.body { + background-color: backgroundColor; + border: none; + position: relative; + overflow: hidden; +} + +.header { + background: -webkit-linear-gradient(top, headerGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, headerGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, headerGradient); /* IE10+ */ + background: linear-gradient(to bottom, headerGradient); /* W3C */ + + padding: padding; +} + +.footer { + position: relative; +} + +.bodyWrap { +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayoutAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayoutAppearance.java new file mode 100644 index 0000000..e21bfaf --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayoutAppearance.java @@ -0,0 +1,60 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.container; + +import com.google.gwt.core.shared.GWT; +import com.sencha.gxt.theme.neptune.client.base.panel.Css3ContentPanelAppearance; +import com.sencha.gxt.theme.neptune.client.base.panel.Css3HeaderAppearance; +import com.sencha.gxt.theme.neptune.client.base.panel.Css3HeaderAppearance.Css3HeaderResources; +import com.sencha.gxt.theme.neptune.client.base.panel.Css3HeaderAppearance.Css3HeaderStyle; +import com.sencha.gxt.widget.core.client.Header.HeaderAppearance; +import com.sencha.gxt.widget.core.client.button.ToolButton; +import com.sencha.gxt.widget.core.client.button.IconButton.IconConfig; +import com.sencha.gxt.widget.core.client.container.AccordionLayoutContainer.AccordionLayoutAppearance; + +public class Css3AccordionLayoutAppearance extends Css3ContentPanelAppearance implements AccordionLayoutAppearance { + + public interface Css3AccordionResources extends Css3ContentPanelResources { + @Override + @Source({"Css3AccordionLayout.css"}) + Css3AccordionStyle style(); + } + + public interface Css3AccordionStyle extends Css3ContentPanelStyle { + + } + + public interface Css3AccordionHeaderStyle extends Css3HeaderStyle { + + } + + public interface Css3AccordionHeaderResources extends Css3HeaderResources { + @Override + @Source({"com/sencha/gxt/theme/base/client/widget/Header.css", "Css3AccordionLayoutHeader.css"}) + Css3AccordionHeaderStyle style(); + } + + public Css3AccordionLayoutAppearance() { + super(GWT.create(Css3AccordionResources.class)); + } + + @Override + public HeaderAppearance getHeaderAppearance() { + return new Css3HeaderAppearance(GWT.create(Css3AccordionHeaderResources.class)); + } + + @Override + public IconConfig collapseIcon() { + return ToolButton.MINUS; + } + + @Override + public IconConfig expandIcon() { + return ToolButton.PLUS; + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayoutHeader.css b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayoutHeader.css new file mode 100644 index 0000000..aea84b4 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3AccordionLayoutHeader.css @@ -0,0 +1,24 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def textColor value('theme.accordionLayout.font.color'); +@def fontSize value('theme.accordionLayout.font.size'); +@def fontFamily value('theme.accordionLayout.font.family'); +@def fontWeight value('theme.accordionLayout.font.weight'); + +.header { + padding: 0px; +} + +.headerText { + color: textColor; + font-size: fontSize; + font-weight: fontWeight; + font-family: fontFamily; + line-height: 15px; + text-transform: none; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3BorderLayout.css b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3BorderLayout.css new file mode 100644 index 0000000..60483af --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3BorderLayout.css @@ -0,0 +1,12 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def backgroundColor value("theme.borderLayout.panelBackgroundColor"); + +.container { + background-color: backgroundColor; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3BorderLayoutAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3BorderLayoutAppearance.java new file mode 100644 index 0000000..85f1ac2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3BorderLayoutAppearance.java @@ -0,0 +1,69 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.container; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.user.client.ui.Widget; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.container.BorderLayoutContainer.BorderLayoutAppearance; + +/** + * + */ +public class Css3BorderLayoutAppearance implements BorderLayoutAppearance { + + + public interface Css3BorderLayoutResources extends ClientBundle { + @Source("Css3BorderLayout.css") + Css3BorderLayoutStyle style(); + + ThemeDetails theme(); + } + + public interface Css3BorderLayoutStyle extends CssResource { + String container(); + } + + private final Css3BorderLayoutResources resources; + private final Css3BorderLayoutStyle style; + + public Css3BorderLayoutAppearance() { + this(GWT.create(Css3BorderLayoutResources.class)); + } + + public Css3BorderLayoutAppearance(Css3BorderLayoutResources resources) { + this.resources = resources; + this.style = this.resources.style(); + + StyleInjectorHelper.ensureInjected(style, true); + } + + @Override + public XElement getContainerTarget(XElement parent) { + return parent; + } + + @Override + public void render(SafeHtmlBuilder sb) { + sb.appendHtmlConstant("
"); + } + + @Override + public void onInsert(Widget child) { + } + + @Override + public void onRemove(Widget child) { + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3HBoxLayoutContainer.css b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3HBoxLayoutContainer.css new file mode 100644 index 0000000..1913f45 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3HBoxLayoutContainer.css @@ -0,0 +1,18 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@external x-toolbar-mark; +@def moreIconToolBar literal('url(')value('moreIconToolBar.getSafeUri.asString',')'); + + +.x-toolbar-mark .moreIcon img { + background: moreIconToolBar !important; +} + + + + diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3HBoxLayoutContainerAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3HBoxLayoutContainerAppearance.java new file mode 100644 index 0000000..79196c7 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3HBoxLayoutContainerAppearance.java @@ -0,0 +1,38 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.container; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.theme.base.client.container.HBoxLayoutDefaultAppearance; + +public class Css3HBoxLayoutContainerAppearance extends HBoxLayoutDefaultAppearance { + + public interface Css3HBoxLayoutContainerResources extends HBoxLayoutBaseResources { + @Override + @Source({"com/sencha/gxt/theme/base/client/container/BoxLayout.css", "Css3HBoxLayoutContainer.css"}) + HBoxLayoutStyle style(); + + @Override + ImageResource moreIcon(); + + ImageResource moreIconToolBar(); + } + + public interface Css3HBoxLayoutContainerStyle extends HBoxLayoutStyle { + + } + + public Css3HBoxLayoutContainerAppearance() { + this(GWT.create(Css3HBoxLayoutContainerResources.class)); + } + + public Css3HBoxLayoutContainerAppearance(Css3HBoxLayoutContainerResources resources) { + super(resources); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3MessageBox.css b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3MessageBox.css new file mode 100644 index 0000000..e84299c --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3MessageBox.css @@ -0,0 +1,37 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def textColor value('theme.messagebox.text.color'); +@def textFamily value('theme.messagebox.text.family'); +@def textWeight value('theme.messagebox.text.weight'); +@def textSize value('theme.messagebox.text.size'); + +@def messagePadding value('theme.messagebox.messagePadding'); + +@def bodyPadding value('theme.messagebox.bodyPadding'); + +@def iconPadding value('theme.messagebox.iconPadding'); +.icon { + float: left; + width: 47px; + height: 32px; + display: none; + padding: iconPadding; +} + +.message { + color: textColor; + font-family: textFamily; + font-size: textSize; + font-weight: textWeight; + + padding: messagePadding; +} + +.content { + padding: bodyPadding; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/Css3MessageBoxAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3MessageBoxAppearance.java new file mode 100644 index 0000000..ec222c8 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/container/Css3MessageBoxAppearance.java @@ -0,0 +1,28 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.container; + +import com.google.gwt.core.shared.GWT; +import com.sencha.gxt.theme.base.client.container.MessageBoxDefaultAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3MessageBoxAppearance extends MessageBoxDefaultAppearance { + public interface Css3MessageBoxResources extends MessageBoxResources { + @Override + @Source("Css3MessageBox.css") + Css3MessageBoxStyles style(); + + ThemeDetails theme(); + } + public interface Css3MessageBoxStyles extends MessageBoxBaseStyle { + + } + public Css3MessageBoxAppearance() { + super(GWT.create(Css3MessageBoxResources.class)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/moreIcon.png b/src/com/sencha/gxt/theme/neptune/client/base/container/moreIcon.png new file mode 100644 index 0000000..979aa12 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/container/moreIcon.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/container/moreIconToolBar.png b/src/com/sencha/gxt/theme/neptune/client/base/container/moreIconToolBar.png new file mode 100644 index 0000000..a500685 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/container/moreIconToolBar.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DateCellAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DateCellAppearance.java new file mode 100644 index 0000000..5170bac --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DateCellAppearance.java @@ -0,0 +1,48 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.cell.core.client.form.DateCell.DateCellAppearance; + +/** + * + */ +public class Css3DateCellAppearance extends Css3TriggerFieldAppearance implements DateCellAppearance { + + public interface Css3DateCellResources extends Css3TriggerFieldResources { + @Override + @Source({"Css3ValueBaseField.css", "Css3TextField.css", "Css3TriggerField.css"}) + Css3DateCellStyle style(); + + @Override + @Source("dateTrigger.png") + ImageResource triggerArrow(); + + @Override + @Source("dateTriggerOver.png") + ImageResource triggerArrowOver(); + + @Override + @Source("dateTriggerClick.png") + ImageResource triggerArrowClick(); + } + + public interface Css3DateCellStyle extends Css3TriggerFieldStyle { + + } + + public Css3DateCellAppearance() { + this(GWT.create(Css3DateCellResources.class)); + } + + public Css3DateCellAppearance(Css3DateCellResources resources) { + super(resources); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DualListField.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DualListField.css new file mode 100644 index 0000000..dff27ef --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DualListField.css @@ -0,0 +1,92 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def upIcon literal('url(')value('upBtn.getSafeUri.asString',')'); +@def allRightIcon literal('url(')value('allRightBtn.getSafeUri.asString',')'); +@def rightIcon literal('url(')value('rightBtn.getSafeUri.asString',')'); +@def leftIcon literal('url(')value('leftBtn.getSafeUri.asString',')'); +@def allLeftIcon literal('url(')value('allLeftBtn.getSafeUri.asString',')'); +@def downIcon literal('url(')value('downBtn.getSafeUri.asString',')'); + +@def width value('upBtn.getWidth', 'px'); +@def height value('upBtn.getHeight', 'px'); + + +@def borderRadius value('theme.toolbar.buttonOverride.borderRadius', 'px'); +@def borderColor value('theme.toolbar.buttonOverride.border.color'); +@def borderStyle value('theme.toolbar.buttonOverride.border.style'); +@def borderWidth value('theme.toolbar.buttonOverride.border.toString'); + +@def gradient value('theme.toolbar.buttonOverride.gradient'); + + + + +.IconButtonStyle-button.up, +.IconButtonStyle-button.allRight, +.IconButtonStyle-button.right, +.IconButtonStyle-button.left, +.IconButtonStyle-button.allLeft, +.IconButtonStyle-button.down +{ + border-radius: borderRadius; + border-width: borderWidth; + border-style: borderStyle; + border-color: borderColor; + + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background-position: center center, left top; + width: width; + height: height; +} + + +.up { + background-image: upIcon, -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background-image: upIcon, -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background-image: upIcon, -ms-linear-gradient(top, gradient); /* IE10+ */ + background-image: upIcon, linear-gradient(to bottom, gradient); /* W3C */ +} + +.allRight { + background-image: allRightIcon, -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background-image: allRightIcon, -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background-image: allRightIcon, -ms-linear-gradient(top, gradient); /* IE10+ */ + background-image: allRightIcon, linear-gradient(to bottom, gradient); /* W3C */ +} + +.right { + background-image: rightIcon, -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background-image: rightIcon, -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background-image: rightIcon, -ms-linear-gradient(top, gradient); /* IE10+ */ + background-image: rightIcon, linear-gradient(to bottom, gradient); /* W3C */ +} + +.left { + background-image: leftIcon, -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background-image: leftIcon, -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background-image: leftIcon, -ms-linear-gradient(top, gradient); /* IE10+ */ + background-image: leftIcon, linear-gradient(to bottom, gradient); /* W3C */ +} + +.allLeft { + background-image: allLeftIcon, -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background-image: allLeftIcon, -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background-image: allLeftIcon, -ms-linear-gradient(top, gradient); /* IE10+ */ + background-image: allLeftIcon, linear-gradient(to bottom, gradient); /* W3C */ +} + +.down { + background-image: downIcon, -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background-image: downIcon, -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background-image: downIcon, -ms-linear-gradient(top, gradient); /* IE10+ */ + background-image: downIcon, linear-gradient(to bottom, gradient); /* W3C */ +} + + diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DualListFieldAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DualListFieldAppearance.java new file mode 100644 index 0000000..b5d2b1c --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3DualListFieldAppearance.java @@ -0,0 +1,118 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.CssResource.Import; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.resources.client.ImageResource.ImageOptions; +import com.google.gwt.resources.client.ImageResource.RepeatStyle; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.base.client.button.IconButtonDefaultAppearance.IconButtonStyle; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.button.IconButton.IconConfig; +import com.sencha.gxt.widget.core.client.form.DualListField.DualListFieldAppearance; + +/** + * + */ +public class Css3DualListFieldAppearance implements DualListFieldAppearance { + public interface Css3DualListFieldResources extends ClientBundle { + @Source("Css3DualListField.css") + @Import(IconButtonStyle.class) + Css3DualListFieldStyle style(); + + ThemeDetails theme(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("up.png") + ImageResource upBtn(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("allRight.png") + ImageResource allRightBtn(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("left.png") + ImageResource leftBtn(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("right.png") + ImageResource rightBtn(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("allLeft.png") + ImageResource allLeftBtn(); + + @ImageOptions(repeatStyle = RepeatStyle.None) + @Source("down.png") + ImageResource downBtn(); + } + + public interface Css3DualListFieldStyle extends CssResource { + String up(); + + String allRight(); + + String right(); + + String left(); + + String allLeft(); + + String down(); + } + + @SuppressWarnings("unused") + private Css3DualListFieldResources resources; + private Css3DualListFieldStyle style; + + public Css3DualListFieldAppearance() { + this( + GWT. create(Css3DualListFieldResources.class)); + } + + public Css3DualListFieldAppearance(Css3DualListFieldResources resources) { + this.resources = resources; + this.style = resources.style(); + + StyleInjectorHelper.ensureInjected(style, false); + } + + @Override + public IconConfig allLeft() { + return new IconConfig(style.allLeft()); + } + + @Override + public IconConfig allRight() { + return new IconConfig(style.allRight()); + } + + @Override + public IconConfig down() { + return new IconConfig(style.down()); + } + + @Override + public IconConfig left() { + return new IconConfig(style.left()); + } + + @Override + public IconConfig right() { + return new IconConfig(style.right()); + } + + @Override + public IconConfig up() { + return new IconConfig(style.up()); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ErrorTip.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ErrorTip.css new file mode 100644 index 0000000..df44ac2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ErrorTip.css @@ -0,0 +1,107 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def radius value('theme.errortip.borderRadius', 'px'); +@def borderStyle value('theme.errortip.border.style'); +@def borderColor value('theme.errortip.border.color'); +@def borderWidth value('theme.errortip.border.toString'); + +@def css3Leftover value('theme.errortip.radiusMinusBorderWidth.toString'); + +@def padding value('theme.errortip.padding.toString'); +@def margin value('theme.errortip.margin.toString'); + +@def opacity value('theme.errortip.opacity'); +@def backgroundColor value('theme.errortip.backgroundColor'); + + +@def headerColor value('theme.errortip.headerText.color'); +@def headerSize value('theme.errortip.headerText.size'); +@def headerWeight value('theme.errortip.headerText.weight'); +@def headerFamily value('theme.errortip.headerText.family'); +@def messageColor value('theme.errortip.messageText.color'); +@def messageSize value('theme.errortip.messageText.size'); +@def messageWeight value('theme.errortip.messageText.weight'); +@def messageFamily value('theme.errortip.messageText.family'); + +@def headerPadding value('theme.errortip.headerPadding.toString'); +@def messagePadding value('theme.errortip.messagePadding.toString'); + + +.tipWrap { + border-color: borderColor; + border-style: borderStyle; + border-width: borderWidth; + border-radius: radius; + overflow: hidden; + + background-color: backgroundColor; + + opacity: opacity; + + margin: margin; + /* applying the radius as padding here, avoiding us needing to do math when working out the sliced padding, + which already has the padding from the images */ + padding: css3Leftover; +} + +.tip { + padding: padding; +} + +.tools { + float: right; +} + +.heading { + color: headerColor; + font-size: headerSize; + font-weight: headerWeight; + font-family: headerFamily; +} + +.headingWrap { + padding: headerPadding; +} + +.text { + color: messageColor; + font-size: messageSize; + font-weight: messageWeight; + font-family: messageFamily; +} + +@sprite .textWrap { + gwt-image: 'errorIcon'; + width: auto; + height: auto; + background-position: -1 4px; + padding-left: 20px; + margin: messagePadding; +} + +.anchor {} + +@sprite .anchorBottom { + gwt-image: "anchorBottom"; + position: absolute; +} + +@sprite .anchorRight { + gwt-image: "anchorRight"; + position: absolute; +} + +@sprite .anchorLeft { + gwt-image: "anchorLeft"; + position: absolute; +} + +@sprite .anchorTop { + gwt-image: "anchorTop"; + position: absolute; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ErrorTipAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ErrorTipAppearance.java new file mode 100644 index 0000000..42d945a --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ErrorTipAppearance.java @@ -0,0 +1,30 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.theme.neptune.client.base.tips.Css3TipAppearance; +import com.sencha.gxt.widget.core.client.form.error.SideErrorHandler.SideErrorTooltipAppearance; + +public class Css3ErrorTipAppearance extends Css3TipAppearance implements SideErrorTooltipAppearance { + interface Css3ErrorTipResources extends Css3TipResources { + @Source("exclamation.png") + ImageResource errorIcon(); + + @Override + @Source("Css3ErrorTip.css") + Css3ErrorTipStyle style(); + } + interface Css3ErrorTipStyle extends Css3TipStyle { + + } + public Css3ErrorTipAppearance() { + super(GWT.create(Css3ErrorTipResources.class)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3FieldLabel.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3FieldLabel.css new file mode 100644 index 0000000..28df7fc --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3FieldLabel.css @@ -0,0 +1,83 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def textFamily value('theme.field.sideLabel.text.family'); +@def textWeight value('theme.field.sideLabel.text.weight'); +@def textSize value('theme.field.sideLabel.text.size'); +@def textColor value('theme.field.sideLabel.text.color'); + + +@def topTextFamily value('theme.field.topLabel.text.family'); +@def topTextWeight value('theme.field.topLabel.text.weight'); +@def topTextSize value('theme.field.topLabel.text.size'); +@def topTextColor value('theme.field.topLabel.text.color'); + + +@def padding value('theme.field.sideLabel.padding'); +@def labelPadding value('theme.field.sideLabel.labelPadding'); +@def fieldPadding value('theme.field.sideLabel.fieldPadding'); +@def textAlign value('theme.field.sideLabel.textAlign'); + +@def topPadding value('theme.field.topLabel.padding'); +@def topLabelPadding value('theme.field.topLabel.labelPadding'); +@def topFieldPadding value('theme.field.topLabel.fieldPadding'); +@def topTextAlign value('theme.field.topLabel.textAlign'); + +.fieldItem { + display: block; + padding:padding; + position: relative; +} + +/*.fieldItem*/.fieldItemLabelTop { + padding: topPadding; +} + +.fieldLabel { + font-family: textFamily; + font-size: textSize; + font-weight: textWeight; + color: textColor; + text-align: textAlign; + clear: left; + display: block; + float: left; + padding: labelPadding; + position: relative; + z-index: 2; + -moz-user-select: none; +} + +.fieldItemLabelTop .fieldLabel { + font-family: topTextFamily; + font-size: topTextSize; + font-weight: topTextWeight; + color: topTextColor; + + width: auto !important; + float: none !important; + clear: none; + position: static; + + text-align: topTextAlign; + padding: topLabelPadding; +} + +.fieldElement { + padding: fieldPadding; +} +.fieldItemLabelTop .fieldElement { + padding: topFieldPadding; +} + +.clearLeft { + clear: left; + font-size: 0; + height: 0; + line-height: 0; + overflow: hidden; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3FieldLabelAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3FieldLabelAppearance.java new file mode 100644 index 0000000..09be56e --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3FieldLabelAppearance.java @@ -0,0 +1,33 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.shared.GWT; +import com.sencha.gxt.theme.base.client.field.FieldLabelDefaultAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3FieldLabelAppearance extends FieldLabelDefaultAppearance { + public interface Css3FieldLabelResources extends FieldLabelResources { + @Override + @Source("Css3FieldLabel.css") + Css3FieldLabelStyles css(); + + ThemeDetails theme(); + } + public interface Css3FieldLabelStyles extends FieldLabelDefaultAppearance.Style { + + } + + public Css3FieldLabelAppearance() { + this(GWT.create(Css3FieldLabelResources.class)); + } + + public Css3FieldLabelAppearance(Css3FieldLabelResources resources) { + super(resources, GWT.create(FieldLabelTemplate.class)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SideErrorResourcesAdapter.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SideErrorResourcesAdapter.java new file mode 100644 index 0000000..f6c86f5 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SideErrorResourcesAdapter.java @@ -0,0 +1,32 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.widget.core.client.form.error.SideErrorHandler.SideErrorResources; + +public class Css3SideErrorResourcesAdapter implements SideErrorResources { + + interface Css3SideErrorResources extends SideErrorResources { + @Override + @Source("exclamation.png") + ImageResource errorIcon(); + } + + private final Css3SideErrorResources resources; + + public Css3SideErrorResourcesAdapter() { + this.resources = GWT.create(Css3SideErrorResources.class); + } + + public ImageResource errorIcon() { + return resources.errorIcon(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SpinnerField.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SpinnerField.css new file mode 100644 index 0000000..f20d82b --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SpinnerField.css @@ -0,0 +1,41 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@sprite .twinTriggerOver .twinTrigger { + gwt-image: "twinTriggerArrowOver"; +} + +@sprite .twinTriggerClick .twinTrigger { + gwt-image: "twinTriggerArrowClick"; +} + + + + +@sprite .triggerOver .trigger { + gwt-image: "triggerArrowOver"; +} + +@sprite .triggerClick .trigger { + gwt-image: "triggerArrowClick"; +} + +.trigger { + position: relative; + top: inherit; +} + +@sprite .twinTrigger { + gwt-image: "twinTriggerArrow"; + cursor: pointer; +} + +.triggerWrap { + position: absolute; + top: 50%; + right: 0px; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SpinnerFieldAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SpinnerFieldAppearance.java new file mode 100644 index 0000000..d1911a1 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3SpinnerFieldAppearance.java @@ -0,0 +1,66 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.cell.core.client.form.SpinnerFieldCell.SpinnerFieldAppearance; + +/** + * + */ +public class Css3SpinnerFieldAppearance extends Css3TwinTriggerFieldAppearance implements SpinnerFieldAppearance { + public interface Css3SpinnerFieldResources extends Css3TwinTriggerFieldResources { + @Override + @Source({"Css3ValueBaseField.css", "Css3TextField.css", "Css3TriggerField.css", "Css3SpinnerField.css"}) + Css3SpinnerFieldStyle style(); + + @Override + @Source("spinnerUp.png") + ImageResource triggerArrow(); + + @Override + @Source("spinnerUpOver.png") + ImageResource triggerArrowOver(); + + @Override + @Source("spinnerUpClick.png") + ImageResource triggerArrowClick(); + + @Source("spinnerDown.png") + public ImageResource twinTriggerArrow(); + + @Source("spinnerDownOver.png") + public ImageResource twinTriggerArrowOver(); + + @Source("spinnerDownClick.png") + public ImageResource twinTriggerArrowClick(); + } + + public interface Css3SpinnerFieldStyle extends Css3TwinTriggerFieldStyle { + + } + + + private final Css3SpinnerFieldResources resources; + + public Css3SpinnerFieldAppearance() { + this(GWT.create(Css3SpinnerFieldResources.class)); + } + + public Css3SpinnerFieldAppearance(Css3SpinnerFieldResources resources) { + super(resources); + + this.resources = resources; + } + + @Override + protected int getTriggerWrapHeight() { + return resources.triggerArrow().getHeight() + resources.twinTriggerArrow().getHeight(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3StoreFilterField.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3StoreFilterField.css new file mode 100644 index 0000000..7931bfc --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3StoreFilterField.css @@ -0,0 +1,7 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3StoreFilterFieldAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3StoreFilterFieldAppearance.java new file mode 100644 index 0000000..37ae8cd --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3StoreFilterFieldAppearance.java @@ -0,0 +1,47 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.widget.core.client.form.StoreFilterField.StoreFilterFieldAppearance; + +/** + * + */ +public class Css3StoreFilterFieldAppearance extends Css3TriggerFieldAppearance implements StoreFilterFieldAppearance { + public interface Css3StoreFilterFieldResources extends Css3TriggerFieldResources { + @Override + @Source({"Css3ValueBaseField.css", "Css3TextField.css", "Css3TriggerField.css", "Css3StoreFilterField.css"}) + Css3StoreFilterFieldStyle style(); + + @Override + @Source("clearTrigger.png") + ImageResource triggerArrow(); + + @Override + @Source("clearTriggerOver.png") + ImageResource triggerArrowOver(); + + @Override + @Source("clearTriggerClick.png") + ImageResource triggerArrowClick(); + } + + public interface Css3StoreFilterFieldStyle extends Css3TriggerFieldStyle { + + } + + public Css3StoreFilterFieldAppearance() { + this(GWT.create(Css3StoreFilterFieldResources.class)); + } + + public Css3StoreFilterFieldAppearance(Css3StoreFilterFieldResources resources) { + super(resources); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextArea.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextArea.css new file mode 100644 index 0000000..34c854c --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextArea.css @@ -0,0 +1,14 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +.wrap { + white-space: normal; +} + +.area { + +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextAreaAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextAreaAppearance.java new file mode 100644 index 0000000..b9f6832 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextAreaAppearance.java @@ -0,0 +1,135 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.sencha.gxt.cell.core.client.form.FieldCell.FieldAppearanceOptions; +import com.sencha.gxt.cell.core.client.form.TextAreaInputCell.TextAreaAppearance; +import com.sencha.gxt.cell.core.client.form.TextAreaInputCell.TextAreaCellOptions; +import com.sencha.gxt.core.client.GXT; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.util.Size; +import com.sencha.gxt.theme.neptune.client.base.field.Css3TextFieldAppearance.Css3TextFieldStyle; + +/** + * + */ +public class Css3TextAreaAppearance extends Css3ValueBaseFieldAppearance implements TextAreaAppearance { + + public interface Css3TextAreaResources extends Css3ValueBaseFieldResources, ClientBundle { + @Source({"Css3ValueBaseField.css", "Css3TextField.css", "Css3TextArea.css"}) + Css3TextAreaStyle style(); + } + + public interface Css3TextAreaStyle extends Css3TextFieldStyle { + String area(); + } + + private final Css3TextAreaStyle style; + + public Css3TextAreaAppearance() { + this(GWT.create(Css3TextAreaResources.class)); + } + + public Css3TextAreaAppearance(Css3TextAreaResources resources) { + super(resources); + + this.style = resources.style(); + } + + @Override + public XElement getInputElement(Element parent) { + return parent.getFirstChildElement().getFirstChildElement().cast(); + } + + @Override + public void onResize(XElement parent, int width, int height) { + Element frame = parent.getFirstChildElement(); + XElement inputElement = getInputElement(parent); + + Size adj = adjustTextAreaSize(width, height); + + if (width != -1) { + frame.getStyle().setWidth(width, Unit.PX); + width = adj.getWidth(); + inputElement.getStyle().setWidth(width, Unit.PX); + } + + if (height != -1) { + frame.getStyle().setHeight(height, Unit.PX); + height = adj.getHeight(); + inputElement.getStyle().setHeight(height, Unit.PX); + } + } + + @Override + public void render(SafeHtmlBuilder sb, String value, FieldAppearanceOptions options) { + String inputStyles = ""; + String wrapStyles = ""; + + int width = options.getWidth(); + int height = options.getHeight(); + + String name = options.getName() != null ? "name='" + options.getName() + "'" : ""; + String disabled = options.isDisabled() ? "disabled=true" : ""; + String placeholder = options.getEmptyText() != null ? " placeholder='" + SafeHtmlUtils.htmlEscape(options.getEmptyText()) + "' " : ""; + + boolean empty = false; + + if ((value == null || value.equals("")) && options.getEmptyText() != null) { + if (GXT.isIE8() || GXT.isIE9()) { + value = options.getEmptyText(); + } + empty = true; + } + + + Size adjusted = adjustTextAreaSize(width, height); + + if (width != -1) { + wrapStyles += "width:" + width + "px;"; + width = adjusted.getWidth(); + inputStyles += "width:" + width + "px;"; + } + + if (height != -1) { + height = adjusted.getHeight(); + inputStyles += "height: " + height + "px;"; + } + + String cls = style.area() + " " + style.field(); + if (empty) { + cls += " " + style.empty(); + } + + String ro = options.isReadonly() ? " readonly" : ""; + + if (options instanceof TextAreaCellOptions) { + TextAreaCellOptions opts = (TextAreaCellOptions) options; + inputStyles += "resize:" + opts.getResizable().name().toLowerCase() + ";"; + } + + + sb.appendHtmlConstant("
"); + sb.appendHtmlConstant("
"); + } + + protected Size adjustTextAreaSize(int width, int height) { + width = Math.max(0, width); + height = Math.max(0, height); + return new Size(width, height); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextField.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextField.css new file mode 100644 index 0000000..38bac97 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextField.css @@ -0,0 +1,38 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def height value('theme.field.height', 'px'); +@def lineHeight value('theme.field.lineHeight'); +@def padding value('theme.field.padding.toString'); + +.text { + height: auto; +} + +.text, .area { + padding: padding; + resize: none; +} + +.area { + overflow: visible; +} + +@if user.agent gecko1_8 gecko { + .area { + padding: 0px; + } +} + +.text { + height: height; + line-height: lineHeight; + vertical-align: top; +} + +.file {} + diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextFieldAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextFieldAppearance.java new file mode 100644 index 0000000..f653619 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TextFieldAppearance.java @@ -0,0 +1,118 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.sencha.gxt.cell.core.client.form.FieldCell.FieldAppearanceOptions; +import com.sencha.gxt.cell.core.client.form.TextInputCell.TextFieldAppearance; +import com.sencha.gxt.core.client.GXT; +import com.sencha.gxt.core.client.dom.XElement; + +public class Css3TextFieldAppearance extends Css3ValueBaseFieldAppearance implements TextFieldAppearance { + + public interface Css3TextFieldResources extends Css3ValueBaseFieldResources, ClientBundle { + + @Override + @Source({"Css3ValueBaseField.css", "Css3TextField.css"}) + Css3TextFieldStyle style(); + } + + public interface Css3TextFieldStyle extends Css3ValueBaseFieldStyle { + + String area(); + + String file(); + + String text(); + + } + + private final Css3TextFieldStyle style; + + public Css3TextFieldAppearance() { + this(GWT.create(Css3TextFieldResources.class)); + } + + public Css3TextFieldAppearance(Css3TextFieldResources resources) { + super(resources); + this.style = resources.style(); + } + + @Override + public XElement getInputElement(Element parent) { + return parent.getFirstChildElement().getFirstChildElement().cast(); + } + + @Override + public void onResize(XElement parent, int width, int height) { + Element wrap = parent.getFirstChildElement(); + + if (width != -1 && width > 0) { + wrap.getStyle().setPropertyPx("width", width); + + width = adjustTextAreaWidth(width); + + if (width > 0) { + getInputElement(parent).getStyle().setPropertyPx("width", width); + } + } + } + + @Override + public void render(SafeHtmlBuilder sb, String type, String value, FieldAppearanceOptions options) { + String inputStyles = ""; + String wrapStyles = ""; + + int width = options.getWidth(); + + String name = options.getName() != null ? " name='" + options.getName() + "' " : ""; + String disabled = options.isDisabled() ? "disabled=true" : ""; + String placeholder = options.getEmptyText() != null ? " placeholder='" + SafeHtmlUtils.htmlEscape(options.getEmptyText()) + "' " : ""; + + boolean empty = false; + + if ((value == null || value.equals("")) && options.getEmptyText() != null) { + if (GXT.isIE8() || GXT.isIE9()) { + value = options.getEmptyText(); + } + empty = true; + } + + if (width != -1) { + wrapStyles += "width:" + width + "px;"; + width = adjustTextAreaWidth(width); + inputStyles += "width:" + width + "px;"; + } + + String cls = style.text() + " " + style.field(); + if (empty) { + cls += " " + style.empty(); + } + + String ro = options.isReadonly() ? " readonly" : ""; + + value = SafeHtmlUtils.htmlEscape(value); + + sb.appendHtmlConstant("
"); + sb.appendHtmlConstant(""); + + } + + protected int adjustTextAreaWidth(int width) { + // 6px margin, 2px border FIXME + if (width != -1) { + width = Math.max(0, width); // - 8 + } + return width; + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TriggerField.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TriggerField.css new file mode 100644 index 0000000..4de8f77 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TriggerField.css @@ -0,0 +1,29 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +.noedit { + +} + +@sprite .over .trigger { + gwt-image: "triggerArrowOver"; +} + +@sprite .trigger { + gwt-image: "triggerArrow"; + position: absolute; + top: 50%; + cursor: pointer; +} + +@sprite .click .trigger { + gwt-image: "triggerArrowClick"; +} + +.text { + padding-right: 0px; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TriggerFieldAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TriggerFieldAppearance.java new file mode 100644 index 0000000..c15cbe6 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TriggerFieldAppearance.java @@ -0,0 +1,196 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safecss.shared.SafeStyles; +import com.google.gwt.safecss.shared.SafeStylesBuilder; +import com.google.gwt.safecss.shared.SafeStylesUtils; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.sencha.gxt.cell.core.client.form.FieldCell.FieldAppearanceOptions; +import com.sencha.gxt.cell.core.client.form.TriggerFieldCell.TriggerFieldAppearance; +import com.sencha.gxt.core.client.GXT; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.theme.neptune.client.FieldDetails; +import com.sencha.gxt.theme.neptune.client.base.field.Css3TextFieldAppearance.Css3TextFieldStyle; + +/** + * + */ +public class Css3TriggerFieldAppearance extends Css3ValueBaseFieldAppearance implements TriggerFieldAppearance { + + public interface Css3TriggerFieldResources extends Css3ValueBaseFieldResources, ClientBundle { + @Override + @Source({"Css3ValueBaseField.css", "Css3TextField.css", "Css3TriggerField.css"}) + Css3TriggerFieldStyle style(); + + ImageResource triggerArrow(); + + ImageResource triggerArrowClick(); + + ImageResource triggerArrowOver(); + } + + public interface Css3TriggerFieldStyle extends Css3TextFieldStyle { + String click(); + + String noedit(); + + String over(); + + String trigger(); + } + + private final Css3TriggerFieldResources resources; + private final Css3TriggerFieldStyle style; + + public Css3TriggerFieldAppearance() { + this(GWT.create(Css3TriggerFieldResources.class)); + } + + public Css3TriggerFieldAppearance(Css3TriggerFieldResources resources) { + super(resources); + + this.resources = resources; + this.style = resources.style(); + } + + @Override + public XElement getInputElement(Element parent) { + return parent.cast().selectNode("input"); + } + + @Override + public void onFocus(Element parent, boolean focus) { + parent.cast().setClassName(getResources().style().focus(), focus); + } + + @Override + public void onResize(XElement parent, int width, int height, boolean hideTrigger) { + if (width != -1) { + width = Math.max(0, width); + parent.getFirstChildElement().getStyle().setPropertyPx("width", width); + } + } + + @Override + public void onTriggerClick(XElement parent, boolean click) { + parent.setClassName(getResources().style().click(), click); + } + + @Override + public void onTriggerOver(XElement parent, boolean over) { + parent.setClassName(getResources().style().over(), over); + } + + @Override + public void render(SafeHtmlBuilder sb, String value, FieldAppearanceOptions options) { + int width = options.getWidth(); + boolean hideTrigger = options.isHideTrigger(); + + if (width == -1) { + width = 150; + } + + SafeStylesBuilder inputStylesBuilder = new SafeStylesBuilder(); + inputStylesBuilder.appendTrustedString("width:100%;"); + + // outer div needed for widgets like comboBox that need the full width to set for listview width + sb.appendHtmlConstant("
"); + + if (hideTrigger) { + sb.appendHtmlConstant("
"); + renderInput(sb, value, inputStylesBuilder.toSafeStyles(), options); + } else { + FieldDetails fieldDetails = getResources().theme().field(); + + int rightPadding = fieldDetails.padding().right(); + sb.appendHtmlConstant("
"); + renderInput(sb, value, inputStylesBuilder.toSafeStyles(), options); + + + int right = fieldDetails.borderWidth() + 1; + int halfHeight = getResources().triggerArrow().getHeight() / 2; + SafeStyles triggerStyle = SafeStylesUtils.fromTrustedString("margin-top:-" + halfHeight + "px;right:" + right + "px;"); + sb.appendHtmlConstant("
"); + } + + sb.appendHtmlConstant("
"); + } + + @Override + public void setEditable(XElement parent, boolean editable) { + getInputElement(parent).setClassName(getStyle().noedit(), !editable); + } + + @Override + public boolean triggerIsOrHasChild(XElement parent, Element target) { + return parent.isOrHasChild(target) && target.cast().is("." + getStyle().trigger()); + } + + + protected Css3TriggerFieldResources getResources() { + return resources; + } + + protected Css3TriggerFieldStyle getStyle() { + return style; + } + + + protected void renderInput(SafeHtmlBuilder shb, String value, SafeStyles inputStyles, FieldAppearanceOptions options) { + StringBuilder sb = new StringBuilder(); + sb.append(""); + + shb.append(SafeHtmlUtils.fromTrustedString(sb.toString())); + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TwinTriggerField.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TwinTriggerField.css new file mode 100644 index 0000000..396bf68 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TwinTriggerField.css @@ -0,0 +1,18 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +.twinTriggerClick {} + +.twinTriggerOver {} + +.triggerClick {} + +.triggerOver {} + +.twinTrigger {} + +.triggerWrap {} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TwinTriggerFieldAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TwinTriggerFieldAppearance.java new file mode 100644 index 0000000..8751e9e --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3TwinTriggerFieldAppearance.java @@ -0,0 +1,123 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.safecss.shared.SafeStylesBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.cell.core.client.form.FieldCell.FieldAppearanceOptions; +import com.sencha.gxt.cell.core.client.form.TwinTriggerFieldCell.TwinTriggerFieldAppearance; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.theme.neptune.client.FieldDetails; + +/** + * + */ +public class Css3TwinTriggerFieldAppearance extends Css3TriggerFieldAppearance implements TwinTriggerFieldAppearance { + public interface Css3TwinTriggerFieldResources extends Css3TriggerFieldResources { + @Override + @Source({"Css3ValueBaseField.css", "Css3TextField.css", "Css3TriggerField.css", "Css3TwinTriggerField.css"}) + Css3TwinTriggerFieldStyle style(); + } + + public interface Css3TwinTriggerFieldStyle extends Css3TriggerFieldStyle { + String triggerClick(); + + String triggerOver(); + + String triggerWrap(); + + String twinTrigger(); + + String twinTriggerClick(); + + String twinTriggerOver(); + } + + private final Css3TwinTriggerFieldStyle style; + + public Css3TwinTriggerFieldAppearance() { + this(GWT.create(Css3TwinTriggerFieldResources.class)); + } + + public Css3TwinTriggerFieldAppearance(Css3TwinTriggerFieldResources resources) { + super(resources); + this.style = resources.style(); + } + + @Override + public void onTriggerClick(XElement parent, boolean click) { + parent.setClassName(style.triggerClick(), click); + } + + @Override + public void onTriggerOver(XElement parent, boolean over) { + parent.setClassName(style.triggerOver(), over); + } + + @Override + public void onTwinTriggerClick(XElement parent, boolean click) { + parent.setClassName(style.twinTriggerClick(), click); + } + + @Override + public void onTwinTriggerOver(XElement parent, boolean over) { + parent.setClassName(style.twinTriggerOver(), over); + } + + @Override + public boolean twinTriggerIsOrHasChild(XElement parent, Element target) { + return parent.isOrHasChild(target) && target.cast().is("." + style.twinTrigger()); + } + + @Override + public void render(SafeHtmlBuilder sb, String value, FieldAppearanceOptions options) { + int width = options.getWidth(); + boolean hideTrigger = options.isHideTrigger(); + + if (width == -1) { + width = 150; + } + + SafeStylesBuilder inputStylesBuilder = new SafeStylesBuilder(); + inputStylesBuilder.appendTrustedString("width:100%;"); + + sb.appendHtmlConstant("
"); + + + if (hideTrigger) { + sb.appendHtmlConstant("
"); + renderInput(sb, value, inputStylesBuilder.toSafeStyles(), options); + } else { + FieldDetails fieldDetails = getResources().theme().field(); + + int rightPadding = fieldDetails.padding().right(); + sb.appendHtmlConstant("
"); + renderInput(sb, value, inputStylesBuilder.toSafeStyles(), options); + + int triggerWrapTopMargin = -(getTriggerWrapHeight() / 2); + + sb.appendHtmlConstant("
"); + sb.appendHtmlConstant("
"); + sb.appendHtmlConstant("
"); + sb.appendHtmlConstant("
"); + } + + sb.appendHtmlConstant("
"); + } + + @Override + protected Css3TwinTriggerFieldStyle getStyle() { + return style; + } + + protected int getTriggerWrapHeight() { + return getResources().triggerArrow().getHeight(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ValueBaseField.css b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ValueBaseField.css new file mode 100644 index 0000000..c567940 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ValueBaseField.css @@ -0,0 +1,84 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def backgroundColor value('theme.field.backgroundColor'); + +@def fieldColor value('theme.field.text.color'); +@def fontSize value('theme.field.text.size'); +@def fontFamily value('theme.field.text.family'); +@def fontWeight value('theme.field.text.weight'); +@def emptyTextColor value('theme.field.emptyTextColor'); + +@def height value('theme.field.height', 'px'); +@def lineHeight value('theme.field.lineHeight'); + +@def borderColor value('theme.field.borderColor'); +@def borderWidth value('theme.field.borderWidth', 'px'); + +@def focusColor value('theme.field.focusBorderColor'); + +@def invalidBackgroundColor value('theme.field.invalidBackgroundColor'); +@def invalidBorderColor value('theme.field.invalidBorderColor'); +@def invalidBorderWidth value('theme.field.invalidBorderWidth', 'px'); + + +.focus {} +.invalid {} + +.focus .wrap { + border-color: focusColor; +} + +.invalid .wrap { + background-color: invalidBackgroundColor; + border: solid invalidBorderColor; + border-width: invalidBorderWidth; +} + +.wrap { + zoom: 1; + white-space: nowrap; + text-align: left; + width: auto; + position: relative; + background-color: backgroundColor; + + border-color: borderColor; + border-width: borderWidth; + border-style: solid; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; +} + +.field { + color: fieldColor; + font-size: fontSize; + font-family: fontFamily; + font-weight: fontWeight; + + border: 0px; + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + + -webkit-box-shadow: none; + box-shadow: none; +} + +.field::-ms-clear { + display: none; +} + +.empty { + color: emptyTextColor; +} + +.readonly {} + diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ValueBaseFieldAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ValueBaseFieldAppearance.java new file mode 100644 index 0000000..be40a9d --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/field/Css3ValueBaseFieldAppearance.java @@ -0,0 +1,72 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.field; + +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.InputElement; +import com.google.gwt.resources.client.CssResource; +import com.sencha.gxt.cell.core.client.form.ValueBaseInputCell.ValueBaseFieldAppearance; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.form.Field.FieldStyles; + +public abstract class Css3ValueBaseFieldAppearance implements ValueBaseFieldAppearance { + + public interface Css3ValueBaseFieldResources { + Css3ValueBaseFieldStyle style(); + + ThemeDetails theme(); + } + + public interface Css3ValueBaseFieldStyle extends CssResource, FieldStyles { + @Override + String focus(); + + @Override + String invalid(); + + String empty(); + + String field(); + + String readonly(); + + String wrap(); + + } + + private final Css3ValueBaseFieldStyle style; + + public Css3ValueBaseFieldAppearance(Css3ValueBaseFieldResources resources) { + this.style = resources.style(); + + StyleInjectorHelper.ensureInjected(this.style, true); + } + + @Override + public void onEmpty(Element parent, boolean empty) { + getInputElement(parent).setClassName(style.empty(), empty); + } + + @Override + public void onFocus(Element parent, boolean focus) { + parent.cast().setClassName(style.focus(), focus); + } + + @Override + public void onValid(Element parent, boolean valid) { + parent.cast().setClassName(style.invalid(), !valid); + } + + @Override + public void setReadOnly(Element parent, boolean readOnly) { + getInputElement(parent).cast().setReadOnly(readOnly); + getInputElement(parent).setClassName(style.readonly(), readOnly); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/allLeft.png b/src/com/sencha/gxt/theme/neptune/client/base/field/allLeft.png new file mode 100644 index 0000000..c58b340 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/allLeft.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/allLeftClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/allLeftClick.png new file mode 100644 index 0000000..519d561 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/allLeftClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/allLeftOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/allLeftOver.png new file mode 100644 index 0000000..3334fc1 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/allLeftOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/allRight.png b/src/com/sencha/gxt/theme/neptune/client/base/field/allRight.png new file mode 100644 index 0000000..330c2eb Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/allRight.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/allRightClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/allRightClick.png new file mode 100644 index 0000000..99533e2 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/allRightClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/allRightOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/allRightOver.png new file mode 100644 index 0000000..58ba00a Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/allRightOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/clearTrigger.png b/src/com/sencha/gxt/theme/neptune/client/base/field/clearTrigger.png new file mode 100644 index 0000000..1fefe0d Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/clearTrigger.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/clearTriggerClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/clearTriggerClick.png new file mode 100644 index 0000000..e61340a Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/clearTriggerClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/clearTriggerOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/clearTriggerOver.png new file mode 100644 index 0000000..d88d7e5 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/clearTriggerOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/dateTrigger.png b/src/com/sencha/gxt/theme/neptune/client/base/field/dateTrigger.png new file mode 100644 index 0000000..354d27f Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/dateTrigger.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/dateTriggerClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/dateTriggerClick.png new file mode 100644 index 0000000..bb5f257 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/dateTriggerClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/dateTriggerOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/dateTriggerOver.png new file mode 100644 index 0000000..428318a Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/dateTriggerOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/down.png b/src/com/sencha/gxt/theme/neptune/client/base/field/down.png new file mode 100644 index 0000000..abd8ce1 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/down.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/downClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/downClick.png new file mode 100644 index 0000000..9833452 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/downClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/downOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/downOver.png new file mode 100644 index 0000000..8e926ab Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/downOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/exclamation.png b/src/com/sencha/gxt/theme/neptune/client/base/field/exclamation.png new file mode 100644 index 0000000..9ed2cc9 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/exclamation.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/exclamationClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/exclamationClick.png new file mode 100644 index 0000000..9ed2cc9 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/exclamationClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/exclamationOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/exclamationOver.png new file mode 100644 index 0000000..9ed2cc9 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/exclamationOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/left.png b/src/com/sencha/gxt/theme/neptune/client/base/field/left.png new file mode 100644 index 0000000..063f774 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/left.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/leftClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/leftClick.png new file mode 100644 index 0000000..4614771 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/leftClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/leftOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/leftOver.png new file mode 100644 index 0000000..0d95297 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/leftOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/right.png b/src/com/sencha/gxt/theme/neptune/client/base/field/right.png new file mode 100644 index 0000000..b615463 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/right.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/rightClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/rightClick.png new file mode 100644 index 0000000..43f6594 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/rightClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/rightOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/rightOver.png new file mode 100644 index 0000000..c933c51 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/rightOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDown.png b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDown.png new file mode 100644 index 0000000..46d6aae Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDown.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDownClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDownClick.png new file mode 100644 index 0000000..5af6916 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDownClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDownOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDownOver.png new file mode 100644 index 0000000..1e9c014 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerDownOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUp.png b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUp.png new file mode 100644 index 0000000..c0e0929 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUp.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUpClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUpClick.png new file mode 100644 index 0000000..aaefa63 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUpClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUpOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUpOver.png new file mode 100644 index 0000000..927191f Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/spinnerUpOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrow.png b/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrow.png new file mode 100644 index 0000000..23d15a0 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrow.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrowClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrowClick.png new file mode 100644 index 0000000..b08a441 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrowClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrowOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrowOver.png new file mode 100644 index 0000000..8cb0174 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/triggerArrowOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/up.png b/src/com/sencha/gxt/theme/neptune/client/base/field/up.png new file mode 100644 index 0000000..e17f146 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/up.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/upClick.png b/src/com/sencha/gxt/theme/neptune/client/base/field/upClick.png new file mode 100644 index 0000000..fa773de Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/upClick.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/field/upOver.png b/src/com/sencha/gxt/theme/neptune/client/base/field/upOver.png new file mode 100644 index 0000000..2d1cc51 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/field/upOver.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/fieldset/Css3FieldSet.css b/src/com/sencha/gxt/theme/neptune/client/base/fieldset/Css3FieldSet.css new file mode 100644 index 0000000..58f9d01 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/fieldset/Css3FieldSet.css @@ -0,0 +1,29 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def textSize value('theme.fieldset.text.size'); +@def textColor value('theme.fieldset.text.color'); +@def textFamily value('theme.fieldset.text.family'); +@def textWeight value('theme.fieldset.text.weight'); + +@def borderWidth value('theme.fieldset.border.toString'); +@def borderColor value('theme.fieldset.border.color'); +@def borderStyle value('theme.fieldset.border.style'); + + +.fieldSet { + border-color: borderColor; + border-style: borderStyle; + border-width: borderwidth; +} + +.fieldSet legend { + font-size: textSize; + font-family: textFamily; + font-weight: textWeight; + color: textColor; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/fieldset/Css3FieldSetAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/fieldset/Css3FieldSetAppearance.java new file mode 100644 index 0000000..afe9e8c --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/fieldset/Css3FieldSetAppearance.java @@ -0,0 +1,33 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.fieldset; + +import com.google.gwt.core.shared.GWT; +import com.sencha.gxt.theme.base.client.field.FieldSetDefaultAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3FieldSetAppearance extends FieldSetDefaultAppearance { + public interface Css3FieldSetResources extends FieldSetResources { + @Source({"com/sencha/gxt/theme/base/client/field/FieldSet.css", "Css3FieldSet.css"}) + @Override + Css3FieldSetStyle css(); + + ThemeDetails theme(); + } + public interface Css3FieldSetStyle extends FieldSetStyle { + + } + + public Css3FieldSetAppearance() { + this(GWT.create(Css3FieldSetResources.class)); + } + + public Css3FieldSetAppearance(Css3FieldSetResources resources) { + super(resources); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3CheckBoxColumn.css b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3CheckBoxColumn.css new file mode 100644 index 0000000..c741f5b --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3CheckBoxColumn.css @@ -0,0 +1,51 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def specialColumnGradient value('theme.grid.specialColumnGradient'); +@def specialColumnGradientSelected value('theme.grid.specialColumnGradientSelected'); + +.cell { + padding: 2px 0px 0px 2px !important; +} + +.cellInner { + padding: 4px 0px 0px 0px !important; +} + +.grid-row .cell { + vertical-align: top; + background: -webkit-linear-gradient(top, specialColumnGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, specialColumnGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, specialColumnGradient); /* IE10+ */ + background: linear-gradient(to bottom, specialColumnGradient); /* W3C */ +} + +.grid-rowSelected .cell { + background: -webkit-linear-gradient(top, specialColumnGradientSelected); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, specialColumnGradientSelected); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, specialColumnGradientSelected); /* IE10+ */ + background: linear-gradient(to bottom, specialColumnGradientSelected); /* W3C */ +} + +@sprite .rowChecker, .hdChecker { + gwt-image: 'unchecked'; + height: 18px; +} + +@sprite .grid-rowSelected .rowChecker, .headerChecked .hdChecker { + gwt-image: 'checked'; + height: 18px; +} + +.rowChecker, .hdChecker { + background-repeat: no-repeat; + background-color: transparent; +} + +.hdChecker { + padding-bottom: 0px !important; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3CheckBoxColumnAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3CheckBoxColumnAppearance.java new file mode 100644 index 0000000..1aff76f --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3CheckBoxColumnAppearance.java @@ -0,0 +1,117 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.grid; + +import com.google.gwt.cell.client.Cell.Context; +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.CssResource.Import; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.grid.CheckBoxSelectionModel.CheckBoxColumnAppearance; +import com.sencha.gxt.widget.core.client.grid.ColumnHeader.ColumnHeaderStyles; +import com.sencha.gxt.widget.core.client.grid.GridView.GridStateStyles; + +public class Css3CheckBoxColumnAppearance implements CheckBoxColumnAppearance { + + public interface CheckBoxColumnStyle extends CssResource { + String headerChecked(); + + String hdChecker(); + + String cell(); + + String cellInner(); + + String rowChecker(); + } + + public interface CheckBoxColumnResources extends ClientBundle { + @Source("Css3CheckBoxColumn.css") + @Import({GridStateStyles.class, ColumnHeaderStyles.class}) + CheckBoxColumnStyle style(); + + //to be placed in sliced impl after sliced job is created +// @ImageOptions(repeatStyle = RepeatStyle.Vertical) +// ImageResource specialColumn(); +// +// @ImageOptions(repeatStyle = RepeatStyle.Vertical) +// ImageResource specialColumnSelected(); + + ImageResource checked(); + + ImageResource unchecked(); + + ThemeDetails theme(); + } + + public interface CheckBoxColumnTemplates extends XTemplates { + @XTemplate("
 
") + SafeHtml renderCell(CheckBoxColumnStyle style); + + @XTemplate("
") + SafeHtml renderHeader(CheckBoxColumnStyle style); + } + + private final CheckBoxColumnResources resources; + private final CheckBoxColumnStyle style; + private final CheckBoxColumnTemplates template; + + public Css3CheckBoxColumnAppearance() { + this(GWT. create(CheckBoxColumnResources.class), GWT.create(CheckBoxColumnTemplates.class)); + } + + public Css3CheckBoxColumnAppearance(CheckBoxColumnResources resources, CheckBoxColumnTemplates template) { + this.resources = resources; + this.style = this.resources.style(); + this.template = template; + + StyleInjectorHelper.ensureInjected(style, true); + } + + @Override + public String getCellClassName() { + return style.cell(); + } + + @Override + public void renderCellCheckBox(Context context, Object value, SafeHtmlBuilder sb) { + sb.append(template.renderCell(style)); + } + + @Override + public SafeHtml renderHeadCheckBox() { + return template.renderHeader(style); + } + + @Override + public void onHeaderChecked(XElement header, boolean checked) { + header.setClassName(style.headerChecked(), checked); + } + + @Override + public boolean isHeaderChecked(XElement header) { + return header.findParent("." + style.headerChecked(), 3) != null; + } + + @Override + public boolean isRowChecker(XElement target) { + return target.is("." + style.rowChecker()); + } + + @Override + public String getCellInnerClassName() { + return style.cellInner(); + } +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeader.css b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeader.css new file mode 100644 index 0000000..3e512e5 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeader.css @@ -0,0 +1,179 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def fontFamily value('theme.grid.columnHeader.text.family'); +@def fontSize value('theme.grid.columnHeader.text.size'); +@def textColor value('theme.grid.columnHeader.text.color'); +@def fontWeight value('theme.grid.columnHeader.text.weight'); + +@def lineHeight value('theme.grid.columnHeader.lineHeight'); + +@def padding value('theme.grid.columnHeader.padding'); + +@def gradient value('theme.grid.columnHeader.gradient'); +@def overGradient value('theme.grid.columnHeader.overGradient'); + +@def borderWidth value('theme.grid.columnHeader.borderWidth', 'px'); +@def borderColor value('theme.grid.columnHeader.borderColor'); +@def borderStyle value('theme.grid.columnHeader.borderStyle'); + +@def menuWidth value('theme.grid.columnHeader.menuButtonWidth', 'px'); + +@def menuGradient value('theme.grid.columnHeader.menuGradient'); +@def menuBorderWidth value('theme.grid.columnHeader.menuBorder.toString'); +@def menuBorderStyle value('theme.grid.columnHeader.menuBorder.style'); +@def menuBorderColor value('theme.grid.columnHeader.menuBorder.color'); + +@def menuHoverGradient value('theme.grid.columnHeader.menuHoverGradient'); +@def menuHoverBorderWidth value('theme.grid.columnHeader.menuHoverBorder.toString'); +@def menuHoverBorderStyle value('theme.grid.columnHeader.menuHoverBorder.style'); +@def menuHoverBorderColor value('theme.grid.columnHeader.menuHoverBorder.color'); + +@def menuActiveGradient value('theme.grid.columnHeader.menuActiveGradient'); +@def menuActiveBorderWidth value('theme.grid.columnHeader.menuActiveBorder.toString'); +@def menuActiveBorderStyle value('theme.grid.columnHeader.menuActiveBorder.style'); +@def menuActiveBorderColor value('theme.grid.columnHeader.menuActiveBorder.color'); + +.headerInner {} +.header { + cursor: default; + padding: 0px 0 0 0; + + overflow:hidden; + + background: -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, gradient); /* IE10+ */ + background: linear-gradient(to bottom, gradient); /* W3C */ + + border-style: borderStyle; + border-width: borderWidth 0 0; + border-color: borderColor; +} + +.headRow .head { + line-height: lineHeight; + vertical-align: top; + + -moz-outline: none; + -moz-user-focus: normal; + outline: 0 none; + + font-family: fontFamily; + font-size: fontSize; + font-weight: fontWeight; + color: textColor; + + border-style: borderStyle; + border-color: borderColor; + border-width: 0 borderWidth borderWidth 0; +} + +.headInner { + overflow: hidden; + zoom: 1; + padding: padding; + + cursor: inherit; + position: relative; + vertical-align: middle; + overflow: hidden; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + white-space: nowrap; +} + +.head { + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: ignore; +} + +.headButton { + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -webkit-linear-gradient(top, menuGradient); /* Chrome10+,Safari5.1+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -o-linear-gradient(top, menuGradient); /* Opera 11.10+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -ms-linear-gradient(top, menuGradient); /* IE10+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, linear-gradient(to bottom, menuGradient); /* W3C */ + + border-width: menuBorderWidth; + border-style: menuBorderStyle; + border-color: menuBorderColor; + + background-position: center center; + + display: none; + position: absolute; + width: menuWidth; + right: 0; + top: 0; + z-index: 2; + cursor: pointer; + outline: none; +} + +.headOver .headButton,.headMenuOpen .headButton { + display: block; +} + +.headOver .headButton { + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -webkit-linear-gradient(top, menuHoverGradient); /* Chrome10+,Safari5.1+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -o-linear-gradient(top, menuHoverGradient); /* Opera 11.10+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -ms-linear-gradient(top, menuHoverGradient); /* IE10+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, linear-gradient(to bottom, menuHoverGradient); /* W3C */ + + border-width: menuHoverBorderWidth; + border-style: menuHoverBorderStyle; + border-color: menuHoverBorderColor; +} + +.headMenuOpen .headButton { + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -webkit-linear-gradient(top, menuActiveGradient); /* Chrome10+,Safari5.1+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -o-linear-gradient(top, menuActiveGradient); /* Opera 11.10+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, -ms-linear-gradient(top, menuActiveGradient); /* IE10+ */ + background: literal('url(')value('columnHeaderBtn.getSafeUri.asString',')') no-repeat center center, linear-gradient(to bottom, menuActiveGradient); /* W3C */ + + border-width: menuActiveBorderWidth; + border-style: menuActiveBorderStyle; + border-color: menuActiveBorderColor; +} + +.headOver .headInner, .headMenuOpen .headInner { + background: -webkit-linear-gradient(top, overGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, overGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, overGradient); /* IE10+ */ + background: linear-gradient(to bottom, overGradient); /* W3C */ +} + +@eval max com.sencha.gxt.themebuilder.base.client.CssResourceThemeUtils.maxPxSize(sortAscHeaderIcon().getHeight(),sortDescHeaderIcon().getHeight()); + +.sortIcon { + background-repeat: no-repeat; + display: none; + height: max; + margin-left: 3px; + vertical-align: middle; +} + +.sortAsc .sortIcon, .sortDesc .sortIcon { + display: inline; +} + +@sprite .sortAsc .sortIcon { + gwt-image: 'sortAscHeaderIcon'; +} + +@sprite .sortDesc .sortIcon { + gwt-image: 'sortDescHeaderIcon'; +} + +@sprite .columnMoveTop { + gwt-image: 'columnMoveTop'; +} + +@sprite .columnMoveBottom { + gwt-image: 'columnMoveBottom'; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeader.html b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeader.html new file mode 100644 index 0000000..baad517 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeader.html @@ -0,0 +1,3 @@ +
+
+
\ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeaderAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeaderAppearance.java new file mode 100644 index 0000000..3c3b882 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3ColumnHeaderAppearance.java @@ -0,0 +1,116 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.grid; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.resources.client.ImageResource.ImageOptions; +import com.google.gwt.resources.client.ImageResource.RepeatStyle; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.grid.ColumnHeader.ColumnHeaderAppearance; +import com.sencha.gxt.widget.core.client.grid.ColumnHeader.ColumnHeaderStyles; + +public class Css3ColumnHeaderAppearance implements ColumnHeaderAppearance { + + public interface Css3ColumnHeaderResources extends ClientBundle { + /** column header menu button visible on mouseover */ + @ImageOptions(repeatStyle = RepeatStyle.None) + ImageResource columnHeaderBtn(); + + /** Menu icon */ + ImageResource columnsIcon(); + + /** grid header marker */ + ImageResource sortAscHeaderIcon(); + + /** grid header marker */ + ImageResource sortDescHeaderIcon(); + + /** Menu icon */ + ImageResource sortAscendingIcon(); + + /** Menu icon */ + ImageResource sortDescendingIcon(); + + /** Column dnd indicator 1 */ + ImageResource columnMoveTop(); + + /** Column dnd indicator 2 */ + ImageResource columnMoveBottom(); + + @Source("Css3ColumnHeader.css") + Styles style(); + + ThemeDetails theme(); + + } + + public interface Styles extends ColumnHeaderStyles { + + } + + public interface ColumnHeaderTemplate extends XTemplates { + @XTemplate(source = "Css3ColumnHeader.html") + SafeHtml render(ColumnHeaderStyles style); + } + + private final Css3ColumnHeaderResources resources; + private final ColumnHeaderStyles style; + private ColumnHeaderTemplate templates = GWT.create(ColumnHeaderTemplate.class); + + public Css3ColumnHeaderAppearance() { + this(GWT. create(Css3ColumnHeaderResources.class)); + } + + public Css3ColumnHeaderAppearance(Css3ColumnHeaderResources resources) { + this.resources = resources; + this.style = this.resources.style(); + + StyleInjectorHelper.ensureInjected(style, true); + } + + @Override + public ImageResource columnsIcon() { + return resources.columnsIcon(); + } + + @Override + public void render(SafeHtmlBuilder sb) { + sb.append(templates.render(style)); + } + + @Override + public ImageResource sortAscendingIcon() { + return resources.sortAscendingIcon(); + } + + @Override + public ImageResource sortDescendingIcon() { + return resources.sortDescendingIcon(); + } + + @Override + public ColumnHeaderStyles styles() { + return style; + } + + @Override + public String columnsWrapSelector() { + return "." + style.headerInner(); + } + + @Override + public int getColumnMenuWidth() { + return resources.theme().grid().columnHeader().menuButtonWidth(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3Grid.css b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3Grid.css new file mode 100644 index 0000000..03b1a15 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3Grid.css @@ -0,0 +1,189 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def cellPadding value('theme.grid.cellPadding'); + +@def cellFamily value('theme.grid.cellText.family'); +@def cellWeight value('theme.grid.cellText.weight'); +@def cellSize value('theme.grid.cellText.size'); +@def cellColor value('theme.grid.cellText.color'); + +@def cellLineHeight value('theme.grid.cellLineHeight'); + +@def cellVBorderColor value('theme.grid.cellVBorderColor'); +@def cellHBorderColor value('theme.grid.cellHBorderColor'); +@def cellBorderWidth value('theme.grid.cellBorderWidth', 'px'); +@def cellBackgroundColor value('theme.grid.cellBackgroundColor'); +@def cellAltBackgroundColor value('theme.grid.cellAltBackgroundColor'); + +@def cellOverVBorderColor value('theme.grid.cellOverVBorderColor'); +@def cellOverVBorderStyle value('theme.grid.cellOverVBorderStyle'); + +@def cellOverHBorderColor value('theme.grid.cellOverHBorderColor'); +@def cellOverHBorderStyle value('theme.grid.cellOverHBorderStyle'); + +@def cellOverBackgroundColor value('theme.grid.cellOverBackgroundColor'); + +@def cellSelectedVBorderColor value('theme.grid.cellSelectedVBorderColor'); +@def cellSelectedVBorderStyle value('theme.grid.cellSelectedVBorderStyle'); + +@def cellSelectedHBorderColor value('theme.grid.cellSelectedHBorderColor'); +@def cellSelectedHBorderStyle value('theme.grid.cellSelectedHBorderStyle'); + +@def cellSelectedBackgroundColor value('theme.grid.cellSelectedBackgroundColor'); + +@def footerTextFamily value('theme.grid.footer.text.family'); +@def footerTextWeight value('theme.grid.footer.text.weight'); +@def footerTextSize value('theme.grid.footer.text.size'); +@def footerTextColor value('theme.grid.footer.text.color'); + +@def footerBackgroundColor value('theme.grid.footer.backgroundColor'); +@def footerBorderWidth value('theme.grid.footer.cellBorder.toString'); +@def footerBorderColor value('theme.grid.footer.cellBorder.color'); +@def footerBorderStyle value('theme.grid.footer.cellBorder.style'); + +@eval dirty com.sencha.gxt.core.client.util.ImageHelper.createModuleBasedUrl("base/images/grid/dirty.gif"); +@eval invalidLine com.sencha.gxt.core.client.util.ImageHelper.createModuleBasedUrl("base/images/grid/invalid_line.gif"); + +@external x-treegrid x-treegrid-column; + +.grid { + position: relative; + overflow: hidden; + outline: 0 none; +} + +.scroller { + overflow: auto; + zoom: 1; + position: relative; + background-color: white; +} + +.body { +} +.rowHighlight { +} + +.dataTable { + table-layout: fixed; + border-collapse: separate; + border-spacing: 0; +} + +.headerRow {} + +.row { + cursor: default; + padding: 0 1px; + vertical-align: top; +} + +.cell { + background-color: cellBackgroundColor; + border-color: cellBackgroundColor cellVBorderColor cellHBorderColor; + border-style: solid; + border-width: cellBorderWidth 0; + border-right-style: none; + font-family: cellFamily; + font-size: cellSize; + color: cellColor; + font-weight: cellWeight; + overflow: hidden; +} + +.rowAlt .cell { + background-color: cellAltBackgroundColor; + border-top-color: cellAltBackgroundColor; +} + +.rowWrap { + border-color: cellBackgroundColor cellVBorderColor cellHBorderColor; + border-style: solid; + border-right-style: none; + border-width: cellBorderWidth 0; + overflow: hidden; +} +.rowAlt .rowWrap { + border-top-color: cellAltBackgroundColor; +} + +.rowWrap .cell, .rowWrap .cellInner { + border-style: none; +} + +.rowOver .cell, .rowOver .rowWrap { + background-color: cellOverBackgroundColor; + border-style: solid cellOverVBorderStyle cellOverHBorderStyle; + border-color: cellOverBackgroundColor cellOverVBorderColor cellOverHBorderColor; +} + +.grid-rowSelected .cell, .grid-rowSelected .rowWrap, .row .grid-cellSelected { + background-color: cellSelectedBackgroundColor !important; + border-style: solid cellSelectedVBorderStyle cellSelectedHBorderStyle; + border-color: cellSelectedBackgroundColor cellSelectedVBorderColor cellSelectedHBorderColor; +} + +.columnLines .cell { + border-right: cellBorderWidth solid cellVBorderColor; +} + +.rowDirty { + +} + +.cellDirty { + background: transparent no-repeat 0 0; + background-image: dirty; +} + +.cellInner { + overflow: hidden; + padding: cellPadding; + line-height: cellLineHeight; + white-space: nowrap; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; +} + +.noPadding/*.cellInner*/ { + padding: 0; + height: 100%; +} + +.empty { + padding: 10px; + color: gray; + font: normal 11px tahoma, arial, helvetica, sans-serif; +} + +.rowBody { + font: 11px/13px tahoma,arial,verdana,sans-serif; + padding: 4px; +} + +.footer { + background: footerBackgroundColor none repeat scroll 0 0; + border-width: footerBorderWidth; + border-style: footerBorderStyle; + border-color: footerBorderColor; + display: block; + overflow: hidden; + position: relative; +} + +.footer .cell { + background: none; + font-family: footerTextFamily; + font-size: footerTextSize; + font-weight: footerTextWeight; + color: footerTextColor; +} + +.x-treegrid .x-treegrid-column .cellInner { + padding: 0 !important; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GridAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GridAppearance.java new file mode 100644 index 0000000..2b2a263 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GridAppearance.java @@ -0,0 +1,123 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.grid; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.NodeList; +import com.google.gwt.dom.client.TableElement; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource.Import; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.grid.GridView.GridAppearance; +import com.sencha.gxt.widget.core.client.grid.GridView.GridStateStyles; +import com.sencha.gxt.widget.core.client.grid.GridView.GridStyles; + +public class Css3GridAppearance implements GridAppearance { + + public interface GridResources extends ClientBundle { + + @Source("Css3Grid.css") + @Import(GridStateStyles.class) + GridStyle css(); + + ThemeDetails theme(); + } + + public interface GridStyle extends GridStyles { + String scroller(); + + String body(); + } + + public interface GridTemplates extends XTemplates { + @XTemplate(source = "Grid.html") + SafeHtml render(GridStyle style); + } + + protected final GridResources resources; + protected final GridStyle style; + private GridTemplates templates = GWT.create(GridTemplates.class); + + public Css3GridAppearance() { + this(GWT.create(GridResources.class)); + } + public Css3GridAppearance(GridResources resources) { + this.resources = resources; + this.style = this.resources.css(); + + StyleInjectorHelper.ensureInjected(style, true); + } + + @Override + public void render(SafeHtmlBuilder sb) { + sb.append(templates.render(style)); + } + + @Override + public GridStyles styles() { + return style; + } + + @Override + public Element findRow(Element elem) { + if (Element.is(elem)) { + return elem. cast().findParentElement("." + style.row(), -1); + } + return null; + } + + @Override + public NodeList getRows(XElement parent) { + return TableElement.as(parent.getFirstChildElement()).getTBodies().getItem(1).getRows().cast(); + } + + @Override + public Element findCell(Element elem) { + if (Element.is(elem)) { + return elem. cast().findParentElement("." + style.cell(), -1); + } + return null; + } + + @Override + public void onRowOver(Element row, boolean over) { + row. cast().setClassName(style.rowOver(), over); + } + + @Override + public void onRowHighlight(Element row, boolean highlight) { + row. cast().setClassName(style.rowHighlight(), highlight); + } + + @Override + public void onRowSelect(Element row, boolean select) { + } + + @Override + public void onCellSelect(Element cell, boolean select) { + } + + @Override + public Element getRowBody(Element row) { + return TableElement.as(row.getFirstChildElement().getFirstChildElement().getFirstChildElement()).getTBodies().getItem( + 1).getRows().getItem(1).getCells().getItem(0).getFirstChildElement(); + } + + @Override + public SafeHtml renderEmptyContent(String emptyText) { + return SafeHtmlUtils.fromTrustedString(emptyText); + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupSummaryView.css b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupSummaryView.css new file mode 100644 index 0000000..1d4d246 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupSummaryView.css @@ -0,0 +1,28 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def summaryTextFamily value('theme.grid.group.summary.text.family'); +@def summaryTextSize value('theme.grid.group.summary.text.size'); +@def summaryTextWeight value('theme.grid.group.summary.text.weight'); +@def summaryTextColor value('theme.grid.group.summary.text.color'); + +@def summaryBgColor value('theme.grid.group.summary.backgroundColor'); + +.hideSummaries .summaryRow { + display:none; +} + +.summaryRow .grid-cell { + background-color: summaryBgColor; +} + +.summaryRow .grid-cellInner { + font-family: summaryTextFamily; + font-size: summaryTextSize; + font-weight: summaryTextWeight; + color: summaryTextColor; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupSummaryViewAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupSummaryViewAppearance.java new file mode 100644 index 0000000..7435ab8 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupSummaryViewAppearance.java @@ -0,0 +1,55 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.grid; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.NodeList; +import com.google.gwt.resources.client.CssResource.Import; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.widget.core.client.grid.GridView.GridStateStyles; +import com.sencha.gxt.widget.core.client.grid.GroupSummaryView.GroupSummaryViewAppearance; +import com.sencha.gxt.widget.core.client.grid.GroupSummaryView.GroupSummaryViewStyle; + +public class Css3GroupSummaryViewAppearance extends Css3GroupingViewAppearance implements GroupSummaryViewAppearance { + + public interface Css3GroupSummaryResources extends Css3GroupingViewResources { + @Override + @Import(GridStateStyles.class) + @Source({"Css3GroupingView.css", "Css3GroupSummaryView.css"}) + Css3GroupSummaryStyles style(); + } + + public interface Css3GroupSummaryStyles extends Css3GroupingViewStyle, GroupSummaryViewStyle { + String hideSummaries(); + } + + public Css3GroupSummaryViewAppearance() { + super(GWT.create(Css3GroupSummaryResources.class)); + } + + @Override + public void toggleSummaries(XElement parent, boolean visible) { + parent.setClassName(style().hideSummaries(), !visible); + } + + @Override + public NodeList getSummaries(XElement table) { + return table.select("." + style().summaryRow()); + } + + @Override + public int getGroupIndex(XElement group) { + return group.getParentElement().cast().indexOf(group) / 3; + } + + @Override + public Css3GroupSummaryStyles style() { + return (Css3GroupSummaryStyles) super.style(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupingView.css b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupingView.css new file mode 100644 index 0000000..df31556 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupingView.css @@ -0,0 +1,56 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def borderWidth value('theme.grid.group.border.toString'); +@def borderColor value('theme.grid.group.border.color'); +@def borderStyle value('theme.grid.group.border.style'); + +@def backgroundColor value('theme.grid.group.backgroundColor'); + +@def textFamily value('theme.grid.group.text.family'); +@def textSize value('theme.grid.group.text.size'); +@def textWeight value('theme.grid.group.text.weight'); +@def textColor value('theme.grid.group.text.color'); + +@def padding value('theme.grid.group.padding.toString'); + +@def iconSpacing value('theme.grid.group.iconSpacing', 'px'); + +.group .groupHead { + cursor: pointer; + padding: padding; + + background-color: backgroundColor; + + border-color: borderColor; + border-width: borderWidth; + border-style: borderStyle; +} + +.bodyCollapsed { + display: none; +} + +@sprite .group .grid-cell .grid-cellInner { + gwt-image: 'collapse'; + width: auto; + height: auto; + background-position: left center; + padding-left: iconSpacing; + + font-family: textFamily; + font-size: textSize; + font-weight: textWeight; + color: textColor; +} + +@sprite .groupCollapsed .grid-cell .grid-cellInner { + gwt-image: 'expand'; + width: auto; + height: auto; + background-position: left center; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupingViewAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupingViewAppearance.java new file mode 100644 index 0000000..548427b --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3GroupingViewAppearance.java @@ -0,0 +1,47 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.grid; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.CssResource.Import; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.theme.base.client.grid.GroupingViewDefaultAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.grid.GridView.GridStateStyles; + +public class Css3GroupingViewAppearance extends GroupingViewDefaultAppearance { + + public interface Css3GroupingViewResources extends GroupingViewResources { + + @Override + ImageResource groupBy(); + + ImageResource expand(); + + ImageResource collapse(); + + @Override + @Import(GridStateStyles.class) + @Source("Css3GroupingView.css") + Css3GroupingViewStyle style(); + + ThemeDetails theme(); + } + + public interface Css3GroupingViewStyle extends GroupingViewStyle { + + } + + public Css3GroupingViewAppearance() { + this(GWT.create(Css3GroupingViewResources.class)); + } + + public Css3GroupingViewAppearance(Css3GroupingViewResources resources) { + super(resources); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditor.css b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditor.css new file mode 100644 index 0000000..198daa4 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditor.css @@ -0,0 +1,49 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@external x-toolbar; + +@def borderStyle value('theme.grid.rowEditor.border.style'); +@def borderColor value('theme.grid.rowEditor.border.color'); +@def borderWidth value('theme.grid.rowEditor.border'); +@def backgroundColor value('theme.grid.rowEditor.backgroundColor'); + +.editor { + position: absolute; + background-color: backgroundColor; + border-style: borderStyle; + border-color: borderColor; + border-width: borderWidth !important; + padding: 5px 0; +} + +.editorInner { + padding: 0px; +} + +.buttons { + position: absolute; + background-color: backgroundColor !important; + border-radius: 0 0 5px 5px; + border-style: solid; + border-width: 0 1px 1px; + border-color: borderColor; +} + +.buttonsInner { + +} + +.buttons .x-toolbar { + background: none; +} + + +.label { + padding: 2px 3px 3px 0px; + font-size: 12px; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditor.html b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditor.html new file mode 100644 index 0000000..cfde6e0 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditor.html @@ -0,0 +1,8 @@ +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditorAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditorAppearance.java new file mode 100644 index 0000000..e4af186 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowEditorAppearance.java @@ -0,0 +1,109 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.grid; + +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; +import com.google.gwt.core.shared.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.grid.editing.GridRowEditing.RowEditorAppearance; + +public class Css3RowEditorAppearance implements RowEditorAppearance { + + public interface Css3RowEditorResources extends ClientBundle { + @Source("Css3RowEditor.css") + Css3RowEditorStyle style(); + + ThemeDetails theme(); + } + + public interface Css3RowEditorStyle extends CssResource { + String editor(); + + String editorInner(); + + String buttons(); + + String buttonsInner(); + + String label(); + } + + public interface Template extends XTemplates { + @XTemplate(source = "Css3RowEditor.html") + SafeHtml render(Css3RowEditorStyle style); + } + + private final Css3RowEditorResources resources; + private final Css3RowEditorStyle style; + private final Template template; + + public Css3RowEditorAppearance() { + this(GWT. create(Css3RowEditorResources.class)); + } + + public Css3RowEditorAppearance(Css3RowEditorResources resources) { + this.resources = resources; + this.style = this.resources.style(); + + this.template = GWT.create(Template.class); + + StyleInjectorHelper.ensureInjected(style, false); + } + + @Override + public XElement getButtonWrap(XElement parent) { + return parent.selectNode("." + style.buttonsInner()); + } + + @Override + public XElement getContentWrap(XElement parent) { + return parent.selectNode("." + style.editorInner()); + } + + @Override + public String labelClass() { + return style.label(); + } + + @Override + public void render(SafeHtmlBuilder sb) { + sb.append(template.render(style)); + } + + @Override + public void onResize(final XElement parent, final int width, final int height) { + // button offset width not correct unless we run deferred and allow buttons to + // be rendered + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + + @Override + public void execute() { + Element buttons = getButtonWrap(parent).getParentElement(); + int buttonsWidth = buttons.getOffsetWidth(); + System.out.println("bw: " + buttonsWidth); + int left = (width - buttonsWidth) / 2; + int top = parent.getOffsetHeight() - 2; + + buttons.getStyle().setTop(top, Unit.PX); + buttons.getStyle().setLeft(left, Unit.PX); + } + }); + + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowExpander.css b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowExpander.css new file mode 100644 index 0000000..eabf086 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowExpander.css @@ -0,0 +1,53 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def specialColumnGradient value('theme.grid.specialColumnGradient'); +@def specialColumnGradientSelected value('theme.grid.specialColumnGradientSelected'); + + +.hasExpander .grid-cell, .hasExpander .grid-cellInner { + background: none repeat scroll 0 0 transparent; + border-width: 0; +} + +.grid-row .cell { + vertical-align: top; + background: -webkit-linear-gradient(top, specialColumnGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, specialColumnGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, specialColumnGradient); /* IE10+ */ + background: linear-gradient(to bottom, specialColumnGradient); /* W3C */ + +} + +.grid-rowSelected .cell { + vertical-align: top; + background: -webkit-linear-gradient(top, specialColumnGradientSelected); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, specialColumnGradientSelected); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, specialColumnGradientSelected); /* IE10+ */ + background: linear-gradient(to bottom, specialColumnGradientSelected); /* W3C */ +} + +.rowExpander { + cursor: pointer; + margin: 5px 3px 3px 3px; +} + +@sprite .rowCollapsed .rowExpander { + gwt-image: "expand"; +} + +@sprite .rowExpanded .rowExpander { + gwt-image: "collapse"; +} + +.rowCollapsed .grid-rowBodyRow { + display: none; +} + +.rowExpanded .grid-rowBodyRow { + display: table-row; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowExpanderAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowExpanderAppearance.java new file mode 100644 index 0000000..34bd90d --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowExpanderAppearance.java @@ -0,0 +1,102 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.grid; + +import com.google.gwt.cell.client.Cell.Context; +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.CssResource.Import; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.grid.GridView.GridStateStyles; +import com.sencha.gxt.widget.core.client.grid.RowExpander.RowExpanderAppearance; + +/** + * + */ +public class Css3RowExpanderAppearance implements RowExpanderAppearance { + + public interface Css3RowExpanderResources extends ClientBundle { + @Import(GridStateStyles.class) + @Source({"Css3RowExpander.css"}) + Css3RowExpanderStyle style(); + + ThemeDetails theme(); + + ImageResource expand(); + + ImageResource collapse(); + } + + public interface Css3RowExpanderStyle extends CssResource { + String rowCollapsed(); + + String rowExpanded(); + + String rowExpander(); + + String hasExpander(); + + String cell(); + } + + private final Css3RowExpanderStyle style; + + public Css3RowExpanderAppearance() { + this(GWT.create(Css3RowExpanderResources.class)); + } + + public Css3RowExpanderAppearance(Css3RowExpanderResources resources) { + this.style = resources.style(); + + StyleInjectorHelper.ensureInjected(style, true); + } + + @Override + public void finishInit(XElement gridParent) { + gridParent.addClassName(style.hasExpander()); + } + + @Override + public String getCellClassName() { + return style.cell(); + } + + @Override + public String getRowStyles(M model, int rowIndex) { + return style.rowCollapsed(); + } + + @Override + public boolean isExpanded(XElement row) { + return row.hasClassName(style.rowExpanded()); + } + + @Override + public void onExpand(XElement row, boolean expand) { + if (expand) { + row.replaceClassName(style.rowCollapsed(), style.rowExpanded()); + } else { + row.replaceClassName(style.rowExpanded(), style.rowCollapsed()); + } + } + + @Override + public void renderExpander(Context context, M value, SafeHtmlBuilder sb) { + sb.appendHtmlConstant("
 
"); + } + + @Override + public boolean isExpandElement(XElement target) { + return target.hasClassName(style.rowExpander()); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowNumberer.css b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowNumberer.css new file mode 100644 index 0000000..8324a02 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowNumberer.css @@ -0,0 +1,40 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def specialColumnGradient value('theme.grid.specialColumnGradient'); +@def specialColumnGradientSelected value('theme.grid.specialColumnGradientSelected'); + +@def textFamily value('theme.grid.rowNumberer.text.family'); +@def textWeight value('theme.grid.rowNumberer.text.weight'); +@def textSize value('theme.grid.rowNumberer.text.size'); +@def textColor value('theme.grid.rowNumberer.text.color'); + +@def padding value('theme.grid.rowNumberer.padding.toString'); + +.numberer { + padding: padding; + text-align: center; + font-family: textFamily; + font-size: textSize; + color: textColor; + font-weight: textWeight; +} + +.grid-row .cell { + background: -webkit-linear-gradient(top, specialColumnGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, specialColumnGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, specialColumnGradient); /* IE10+ */ + background: linear-gradient(to bottom, specialColumnGradient); /* W3C */ + +} + +.grid-rowSelected .cell { + background: -webkit-linear-gradient(top, specialColumnGradientSelected); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, specialColumnGradientSelected); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, specialColumnGradientSelected); /* IE10+ */ + background: linear-gradient(to bottom, specialColumnGradientSelected); /* W3C */ +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowNumbererAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowNumbererAppearance.java new file mode 100644 index 0000000..72e2e23 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Css3RowNumbererAppearance.java @@ -0,0 +1,62 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.grid; + +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.CssResource.Import; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.grid.GridView.GridStateStyles; +import com.sencha.gxt.widget.core.client.grid.RowNumberer.RowNumbererAppearance; + +public class Css3RowNumbererAppearance implements RowNumbererAppearance { + + public interface RowNumbererResources extends ClientBundle { + @Import(GridStateStyles.class) + @Source("Css3RowNumberer.css") + RowNumbererStyles styles(); + + //to be placed in sliced impl after sliced job is created +// @ImageOptions(repeatStyle = RepeatStyle.Vertical) +// ImageResource specialColumn(); +// +// @ImageOptions(repeatStyle = RepeatStyle.Vertical) +// ImageResource specialColumnSelected(); + + ThemeDetails theme(); + } + public interface RowNumbererStyles extends CssResource{ + String numberer(); + String cell(); + } + + private final RowNumbererResources resources; + + public Css3RowNumbererAppearance() { + resources = com.google.gwt.core.shared.GWT.create(RowNumbererResources.class); + resources.styles().ensureInjected(); + } + + @Override + public String getCellClassName() { + return resources.styles().cell(); + } + + @Override + public void renderCell(int rowNumber, SafeHtmlBuilder sb) { + sb.appendHtmlConstant("
").append(rowNumber).appendHtmlConstant("
"); + } + + @Override + public SafeHtml renderHeader() { + return SafeHtmlUtils.EMPTY_SAFE_HTML; + } +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/Grid.html b/src/com/sencha/gxt/theme/neptune/client/base/grid/Grid.html new file mode 100644 index 0000000..32eb431 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/grid/Grid.html @@ -0,0 +1,7 @@ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/checked.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/checked.png new file mode 100644 index 0000000..0c6e9e0 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/checked.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/collapse.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/collapse.png new file mode 100644 index 0000000..ee06dbc Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/collapse.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/columnHeaderBtn.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/columnHeaderBtn.png new file mode 100644 index 0000000..67c6873 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/columnHeaderBtn.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/columnMoveBottom.gif b/src/com/sencha/gxt/theme/neptune/client/base/grid/columnMoveBottom.gif new file mode 100644 index 0000000..cc1e473 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/columnMoveBottom.gif differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/columnMoveTop.gif b/src/com/sencha/gxt/theme/neptune/client/base/grid/columnMoveTop.gif new file mode 100644 index 0000000..58ff32c Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/columnMoveTop.gif differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/columnsIcon.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/columnsIcon.png new file mode 100644 index 0000000..405b3be Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/columnsIcon.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/expand.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/expand.png new file mode 100644 index 0000000..920157a Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/expand.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/groupBy.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/groupBy.png new file mode 100644 index 0000000..6937ad6 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/groupBy.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/sortAscHeaderIcon.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/sortAscHeaderIcon.png new file mode 100644 index 0000000..d8597ce Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/sortAscHeaderIcon.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/sortAscendingIcon.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/sortAscendingIcon.png new file mode 100644 index 0000000..d8597ce Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/sortAscendingIcon.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/sortDescHeaderIcon.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/sortDescHeaderIcon.png new file mode 100644 index 0000000..41c0137 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/sortDescHeaderIcon.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/sortDescendingIcon.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/sortDescendingIcon.png new file mode 100644 index 0000000..41c0137 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/sortDescendingIcon.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/grid/unchecked.png b/src/com/sencha/gxt/theme/neptune/client/base/grid/unchecked.png new file mode 100644 index 0000000..90edd84 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/grid/unchecked.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/info/Css3DefaultInfoConfigAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/info/Css3DefaultInfoConfigAppearance.java new file mode 100644 index 0000000..599057e --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/info/Css3DefaultInfoConfigAppearance.java @@ -0,0 +1,47 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.info; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.info.DefaultInfoConfig.DefaultInfoConfigAppearance; + +public class Css3DefaultInfoConfigAppearance implements DefaultInfoConfigAppearance { + interface Style extends CssResource { + String header(); + String message(); + } + interface Resources extends ClientBundle { + Style infoConfig(); + ThemeDetails theme(); + } + interface Template extends XTemplates { + @XTemplate("
{title}
{message}
") + SafeHtml render(Style style, SafeHtml title, SafeHtml message); + } + + private Template template; + private Style style; + + public Css3DefaultInfoConfigAppearance() { + template = GWT.create(Template.class); + Resources res = GWT.create(Resources.class); + style = res.infoConfig(); + style.ensureInjected(); + } + + @Override + public void render(SafeHtmlBuilder sb, SafeHtml title, SafeHtml message) { + sb.append(template.render(style, title, message)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/info/Css3InfoAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/info/Css3InfoAppearance.java new file mode 100644 index 0000000..b831fe7 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/info/Css3InfoAppearance.java @@ -0,0 +1,53 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.info; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.info.Info.InfoAppearance; + +public class Css3InfoAppearance implements InfoAppearance { + interface Template extends XTemplates { + @XTemplate("
") + SafeHtml render(Styles styles); + } + interface Styles extends CssResource { + String infoWrap(); + String info(); + } + interface Resources extends ClientBundle { + Styles info(); + ThemeDetails theme(); + } + + private final Template template; + private final Styles styles; + + public Css3InfoAppearance() { + this.template = GWT.create(Template.class); + Resources res = GWT.create(Resources.class); + styles = res.info(); + styles.ensureInjected(); + } + + @Override + public XElement getContentElement(XElement parent) { + return parent.getFirstChildElement().getFirstChildElement().cast(); + } + + @Override + public void render(SafeHtmlBuilder sb) { + sb.append(template.render(styles)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/info/info.css b/src/com/sencha/gxt/theme/neptune/client/base/info/info.css new file mode 100644 index 0000000..f8f8f0f --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/info/info.css @@ -0,0 +1,40 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def radius value('theme.info.borderRadius', 'px'); +@def borderStyle value('theme.info.border.style'); +@def borderColor value('theme.info.border.color'); +@def borderWidth value('theme.info.border.toString'); + +@def css3Leftover value('theme.info.radiusMinusBorderWidth.toString'); + +@def padding value('theme.info.padding.toString'); +@def margin value('theme.info.margin.toString'); + +@def opacity value('theme.info.opacity'); +@def backgroundColor value('theme.info.backgroundColor'); + +.infoWrap { + border-color: borderColor; + border-style: borderStyle; + border-width: borderWidth; + border-radius: radius; + overflow: hidden; + + background-color: backgroundColor; + + opacity: opacity; + + margin: margin; + /* applying the radius as padding here, avoiding us needing to do math when working out the sliced padding, + which already has the padding from the images */ + padding: css3Leftover; +} + +.info { + padding: padding; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/info/infoConfig.css b/src/com/sencha/gxt/theme/neptune/client/base/info/infoConfig.css new file mode 100644 index 0000000..f277721 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/info/infoConfig.css @@ -0,0 +1,34 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def headerColor value('theme.info.headerText.color'); +@def headerSize value('theme.info.headerText.size'); +@def headerWeight value('theme.info.headerText.weight'); +@def headerFamily value('theme.info.headerText.family'); +@def messageColor value('theme.info.messageText.color'); +@def messageSize value('theme.info.messageText.size'); +@def messageWeight value('theme.info.messageText.weight'); +@def messageFamily value('theme.info.messageText.family'); + +@def headerPadding value('theme.info.headerPadding.toString'); +@def messagePadding value('theme.info.messagePadding.toString'); + +.header { + color: headerColor; + font-size: headerSize; + font-weight: headerWeight; + font-family: headerFamily; + padding: headerPadding; +} + +.message { + color: messageColor; + font-size: messageSize; + font-weight: messageWeight; + font-family: messageFamily; + padding: messagePadding; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/listview/Css3ListView.css b/src/com/sencha/gxt/theme/neptune/client/base/listview/Css3ListView.css new file mode 100644 index 0000000..84d1833 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/listview/Css3ListView.css @@ -0,0 +1,101 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def textFamily value('theme.listview.text.family'); +@def textSize value('theme.listview.text.size'); +@def textWeight value('theme.listview.text.weight'); +@def textColor value('theme.listview.text.color'); +@def itemLineHeight value('theme.listview.lineHeight'); + +@def backgroundColor value('theme.listview.backgroundColor'); + +@def borderWidth value('theme.listview.border.toString'); +@def borderColor value('theme.listview.border.color'); +@def borderStyle value('theme.listview.border.style'); + +@def itemPadding value('theme.listview.item.padding'); +@def itemGradient value('theme.listview.item.gradient'); +@def itemBorderWidth value('theme.listview.item.border.toString'); +@def itemBorderStyle value('theme.listview.item.border.style'); +@def itemBorderColor value('theme.listview.item.border.color'); + +@def overItemPadding value('theme.listview.overItem.padding'); +@def overItemGradient value('theme.listview.overItem.gradient'); +@def overItemBorderWidth value('theme.listview.overItem.border.toString'); +@def overItemBorderStyle value('theme.listview.overItem.border.style'); +@def overItemBorderColor value('theme.listview.overItem.border.color'); + +@def selectedItemPadding value('theme.listview.selectedItem.padding'); +@def selectedItemGradient value('theme.listview.selectedItem.gradient'); +@def selectedItemBorderWidth value('theme.listview.selectedItem.border.toString'); +@def selectedItemBorderStyle value('theme.listview.selectedItem.border.style'); +@def selectedItemBorderColor value('theme.listview.selectedItem.border.color'); + + +.view { + outline: 0 none; + position: relative; + + background-color: backgroundColor; + + border-width: borderWidth; + border-style: borderStyle; + border-color: borderColor; + + overflow-y: auto; +} + +.item { + color: textColor; + font-family: textFamily; + font-size: textSize; + font-weight: textWeight; + line-height: itemLineHeight; + + white-space: nowrap; + text-overflow: ellipsis; + cursor: pointer; + + + border-width: itemBorderWidth; + border-style: itemBorderStyle; + border-color: itemBorderColor; + + padding: itemPadding; + + background: -webkit-linear-gradient(top, itemGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, itemGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, itemGradient); /* IE10+ */ + background: linear-gradient(to bottom, itemGradient); /* W3C */ +} + +.over { + border-width: overItemBorderWidth; + border-style: overItemBorderStyle; + border-color: overItemBorderColor; + + padding: overItemPadding; + + background: -webkit-linear-gradient(top, overItemGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, overItemGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, overItemGradient); /* IE10+ */ + background: linear-gradient(to bottom, overItemGradient); /* W3C */ +} + +.sel { + border-width: selectedItemBorderWidth; + border-style: selectedItemBorderStyle; + border-color: selectedItemBorderColor; + + padding: selectedItemPadding; + + background: -webkit-linear-gradient(top, selectedItemGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, selectedItemGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, selectedItemGradient); /* IE10+ */ + background: linear-gradient(to bottom, selectedItemGradient); /* W3C */ +} + diff --git a/src/com/sencha/gxt/theme/neptune/client/base/listview/Css3ListViewAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/listview/Css3ListViewAppearance.java new file mode 100644 index 0000000..3d604f3 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/listview/Css3ListViewAppearance.java @@ -0,0 +1,108 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.listview; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.NodeList; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.ListView.ListViewAppearance; + +public class Css3ListViewAppearance implements ListViewAppearance { + + public interface Css3ListViewResources extends ClientBundle { + @Source("Css3ListView.css") + Css3ListViewStyle css(); + + ThemeDetails theme(); + } + + public interface Css3ListViewStyle extends CssResource { + + String item(); + + String over(); + + String sel(); + + String view(); + } + + public interface Css3ListViewTemplates extends XTemplates { + @XTemplate("
") + SafeHtml renderBody(Css3ListViewStyle style); + @XTemplate("
{content}
") + SafeHtml renderItem(Css3ListViewStyle style, SafeHtml content); + } + + private final Css3ListViewTemplates template; + private final Css3ListViewStyle style; + + public Css3ListViewAppearance() { + this(GWT.create(Css3ListViewResources.class)); + } + public Css3ListViewAppearance(Css3ListViewResources resources) { + this.style = resources.css(); + this.style.ensureInjected(); + this.template = GWT.create(Css3ListViewTemplates.class); + } + + @Override + public Element findCellParent(XElement item) { + return item; + } + + @Override + public Element findElement(XElement child) { + return child.findParentElement("." + style.item(), 20); + } + + @Override + public List findElements(XElement parent) { + NodeList nodes = parent.select("." + style.item()); + List temp = new ArrayList(); + for (int i = 0; i < nodes.getLength(); i++) { + temp.add(nodes.getItem(i)); + } + + return temp; + } + + @Override + public void onOver(XElement item, boolean over) { + item.setClassName(style.over(), over); + } + + @Override + public void onSelect(XElement item, boolean select) { + item.setClassName(style.sel(), select); + } + + @Override + public void render(SafeHtmlBuilder builder) { + builder.append(template.renderBody(style)); + } + + @Override + public void renderEnd(SafeHtmlBuilder builder) { + } + + @Override + public void renderItem(SafeHtmlBuilder sb, SafeHtml content) { + sb.append(template.renderItem(style, content)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/mask/Css3Mask.css b/src/com/sencha/gxt/theme/neptune/client/base/mask/Css3Mask.css new file mode 100644 index 0000000..6e3915d --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/mask/Css3Mask.css @@ -0,0 +1,84 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def opacity value('theme.mask.opacity'); +@def backgroundColor value('theme.mask.backgroundColor'); + +@def boxPadding value('theme.mask.box.padding.toString'); + +@def boxBorderColor value('theme.mask.box.borderColor'); +@def boxBorderStyle value('theme.mask.box.borderStyle'); +@def boxBorderWidth value('theme.mask.box.borderWidth', 'px'); + +@def boxBorderRadius value('theme.mask.box.borderRadius', 'px'); + +@def boxRadiusMinusBorderWidth value('theme.mask.box.radiusMinusBorderWidth', 'px'); + +@def boxBackgroundColor value('theme.mask.box.backgroundColor'); + +@def boxTextFamily value('theme.mask.box.text.family'); +@def boxTextWeight value('theme.mask.box.text.weight'); +@def boxTextSize value('theme.mask.box.text.size'); +@def boxTextColor value('theme.mask.box.text.color'); + +@def boxTextPadding value('theme.mask.box.textPadding.toString'); + +@def boxLoadingImagePosition value('theme.mask.box.loadingImagePosition'); + +.mask { + z-index: 100; + top: 0; + left: 0; + width: 100%; + height: 100%; + position: absolute; + + opacity: opacity; + + background-color: backgroundColor; +} + +.box { + position: absolute; + + border-radius: boxBorderRadius; + border-width: boxBorderWidth; + border-style: boxBorderStyle; + border-color: boxBorderColor; + + padding: boxRadiusMinusBorderWidth; + + overflow: hidden; + background-color: boxBackgroundColor; +} + +@sprite .text { + gwt-image: 'loading'; + width: auto; + height:auto; + background-position: boxLoadingImagePosition; + + margin: boxPadding; + padding: boxTextPadding; + + color: boxTextColor; + font-family: boxTextFamily; + font-weight: boxTextWeight; + font-size: boxTextSize; +} + +.positioned { + position: relative !important; +} + +.masked { + overflow: hidden !important; +} + +.masked select,.masked object,.masked embed { + visibility: hidden; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/mask/Css3MaskAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/mask/Css3MaskAppearance.java new file mode 100644 index 0000000..7ab95cc --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/mask/Css3MaskAppearance.java @@ -0,0 +1,90 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.mask; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.sencha.gxt.core.client.GXT; +import com.sencha.gxt.core.client.dom.Mask.MaskAppearance; +import com.sencha.gxt.core.client.dom.Mask.MaskDefaultAppearance.MaskStyle; +import com.sencha.gxt.core.client.dom.Mask.MessageTemplates; +import com.sencha.gxt.core.client.dom.XDOM; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3MaskAppearance implements MaskAppearance { + + public interface Css3MaskResources extends ClientBundle { + @Source("Css3Mask.css") + Css3MaskStyles styles(); + + @Source("com/sencha/gxt/theme/base/client/grid/loading.gif") + ImageResource loading(); + + ThemeDetails theme(); + } + + public interface Css3MaskStyles extends MaskStyle { + + } + + private final Css3MaskResources resources = GWT.create(Css3MaskResources.class); + private final MessageTemplates template = GWT.create(MessageTemplates.class); + + public Css3MaskAppearance() { + StyleInjectorHelper.ensureInjected(resources.styles(), true); + } + + @Override + public void mask(XElement parent, String message) { + XElement mask = XElement.createElement("div"); + mask.setClassName(resources.styles().mask()); + parent.appendChild(mask); + + XElement box = null; + if (message != null) { + box = XDOM.create(template.template(resources.styles(), SafeHtmlUtils.htmlEscape(message))).cast(); + parent.appendChild(box); + } + + if (GXT.isIE() && !(GXT.isIE7()) && "auto".equals(parent.getStyle().getHeight())) { + mask.setSize(parent.getOffsetWidth(), parent.getOffsetHeight()); + } + + if (box != null) { + box.updateZIndex(0); + box.center(parent); + } + + } + + @Override + public String masked() { + return resources.styles().masked(); + } + + @Override + public String positioned() { + return resources.styles().positioned(); + } + + @Override + public void unmask(XElement parent) { + XElement mask = parent.selectNode("> ." + resources.styles().mask()); + if (mask != null) { + mask.removeFromParent(); + } + XElement box = parent.selectNode("> ." + resources.styles().box()); + if (box != null) { + box.removeFromParent(); + } + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3CheckMenuItemAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3CheckMenuItemAppearance.java new file mode 100644 index 0000000..c600a1a --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3CheckMenuItemAppearance.java @@ -0,0 +1,44 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.menu; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.widget.core.client.menu.CheckMenuItem.CheckMenuItemAppearance; + +public class Css3CheckMenuItemAppearance extends Css3MenuItemAppearance implements CheckMenuItemAppearance { + + public interface Css3CheckMenuItemResources extends ClientBundle { + ImageResource checked(); + ImageResource unchecked(); + ImageResource groupChecked(); + } + + private final Css3CheckMenuItemResources resources = GWT.create(Css3CheckMenuItemResources.class); + + @Override + public void applyChecked(XElement parent, boolean state) { + } + + @Override + public ImageResource checked() { + return resources.checked(); + } + + @Override + public ImageResource unchecked() { + return resources.unchecked(); + } + + @Override + public ImageResource radio() { + return resources.groupChecked(); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3HeaderMenuItem.css b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3HeaderMenuItem.css new file mode 100644 index 0000000..d477f19 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3HeaderMenuItem.css @@ -0,0 +1,36 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def borderWidth value('theme.menu.header.border.toString'); +@def borderStyle value('theme.menu.header.border.style'); +@def borderColor value('theme.menu.header.border.color'); + +@def backgroundColor value('theme.menu.header.backgroundColor'); + +@def textFamily value('theme.menu.header.itemText.family'); +@def textSize value('theme.menu.header.itemText.size'); +@def textColor value('theme.menu.header.itemText.color'); +@def textWeight value('theme.menu.header.itemText.weight'); + +@def padding value('theme.menu.header.itemPadding.toString'); + + +.menuText { + border-color: borderColor; + border-style: borderStyle; + border-width: borderWidth; + + background-color: backgroundColor; + + font-family: textFamily; + font-size: textSize; + font-weight: textWeight; + color: textColor; + + display: block; + padding: padding; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3HeaderMenuItemAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3HeaderMenuItemAppearance.java new file mode 100644 index 0000000..f007b1b --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3HeaderMenuItemAppearance.java @@ -0,0 +1,53 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.menu; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.menu.HeaderMenuItem.HeaderMenuItemAppearance; + +public class Css3HeaderMenuItemAppearance implements HeaderMenuItemAppearance { + + public interface Css3HeaderMenuItemResources extends ClientBundle { + @Source("Css3HeaderMenuItem.css") + Css3HeaderMenuItemStyle headerStyle(); + + ThemeDetails theme(); + } + + public interface Css3HeaderMenuItemStyle extends CssResource { + + public String menuText(); + + } + + private Css3HeaderMenuItemStyle style; + + public Css3HeaderMenuItemAppearance() { + Css3HeaderMenuItemResources resources = GWT.create(Css3HeaderMenuItemResources.class); + this.style = resources.headerStyle(); + this.style.ensureInjected(); + } + + @Override + public void applyItemStyle(Element element) { + element.addClassName(style.menuText()); + } + + @Override + public void onActivate(XElement parent) { + } + + @Override + public void onDeactivate(XElement parent) { + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3Menu.css b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3Menu.css new file mode 100644 index 0000000..043d754 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3Menu.css @@ -0,0 +1,103 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def gradient value('theme.menu.gradient'); +@def borderWidth value('theme.menu.border.toString'); +@def borderStyle value('theme.menu.border.style'); +@def borderColor value('theme.menu.border.color'); + +@def listPadding value('theme.menu.padding.toString'); + +.menu { + outline: 0 none; + + background: -webkit-linear-gradient(left, gradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(left, gradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(left, gradient); /* IE10+ */ + background: linear-gradient(to right, gradient); /* W3C */ + border-color:borderColor; + border-width: borderWidth; + border-style: borderStyle; +} + +@if user.agent gecko1_8 gecko { + .menu { + -moz-outline: none; + } +} + +@if user.agent ie6 ie8 { + .menu { + zoom: 1; + overflow: hidden; + } +} + +.menu a { + text-decoration: none !important; +} + +.menuList { + padding: listPadding; + background: transparent; + border: 0 none; + overflow: hidden; + overflow-y: hidden; +} + +@if user.agent ie6 ie8 { + .menuList { + position: relative; + } +} + +.dateMenu { + padding: 0 !important; +} + +.dateMenu .menuList { + padding: 0; +} + +.menuListItemIndent { + padding-left: 27px !important; +} + +.menuRadioGroup {} + +.noSeparator { + background-image: none; +} + +.plain { + background-color: #fff !important; +} + +@sprite .menuScrollerTop { + gwt-image: "miniTop"; +} + +@sprite .menuScrollerBottom { + gwt-image: "miniBottom"; +} + +.menuScroller { + margin: 0; + width: 100%; + background-position: center; + height: 8px; + line-height: 8px; + cursor: pointer; + padding: 0; + border-width: 1px 0; +} + + +.menuScrollerActive { + height: 6px; + line-height: 6px; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuAppearance.java new file mode 100644 index 0000000..a78cdd2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuAppearance.java @@ -0,0 +1,39 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.menu; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.theme.base.client.menu.MenuBaseAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3MenuAppearance extends MenuBaseAppearance { + public interface Css3MenuResources extends MenuResources, ClientBundle { + @Override + @Source("Css3Menu.css") + Css3MenuStyle style(); + + ImageResource miniTop(); + ImageResource miniBottom(); + + ThemeDetails theme(); + } + public interface Css3MenuStyle extends MenuStyle { + + } + + public Css3MenuAppearance() { + this(GWT.create(Css3MenuResources.class), + GWT.create(BaseMenuTemplate.class)); + } + + public Css3MenuAppearance(Css3MenuResources resources, BaseMenuTemplate template) { + super(resources, template); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBar.css b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBar.css new file mode 100644 index 0000000..6f40c86 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBar.css @@ -0,0 +1,28 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def padding value('theme.menu.bar.padding.toString'); +@def borderWidth value('theme.menu.bar.border.toString'); +@def borderStyle value('theme.menu.bar.border.style'); +@def borderColor value('theme.menu.bar.border.color'); + +@def gradient value('theme.menu.bar.gradient'); + +.menuBar { + background: -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, gradient); /* IE10+ */ + background: linear-gradient(to bottom, gradient); /* W3C */ + + border-width: borderWidth; + border-style: borderStyle; + border-color: borderColor; + + cursor: default; + padding: padding; + overflow: hidden; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarAppearance.java new file mode 100644 index 0000000..99ab836 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarAppearance.java @@ -0,0 +1,53 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.menu; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.resources.CommonStyles; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.menu.MenuBar.MenuBarAppearance; + +public class Css3MenuBarAppearance implements MenuBarAppearance { + public interface Css3MenuBarResources extends ClientBundle { + @Source("Css3MenuBar.css") + Css3MenuBarStyle style(); + + ThemeDetails theme(); + } + + public interface Css3MenuBarStyle extends CssResource { + String menuBar(); + } + + public interface MenuBarTemplate extends XTemplates { + @XTemplate("
") + SafeHtml render(String cssClasses); + } + + private Css3MenuBarStyle style; + private MenuBarTemplate template = GWT.create(MenuBarTemplate.class); + + public Css3MenuBarAppearance() { + this(GWT.create(Css3MenuBarResources.class)); + } + + public Css3MenuBarAppearance(Css3MenuBarResources resources) { + style = resources.style(); + style.ensureInjected(); + } + + @Override + public void render(SafeHtmlBuilder builder) { + builder.append(template.render(style.menuBar() + " " + CommonStyles.get().noFocusOutline())); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarItem.css b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarItem.css new file mode 100644 index 0000000..82b9ff2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarItem.css @@ -0,0 +1,42 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def itemPadding value('theme.menu.bar.itemPadding.toString'); + +@def textColor value('theme.menu.bar.itemText.color'); +@def textFamily value('theme.menu.bar.itemText.family'); +@def textSize value('theme.menu.bar.itemText.size'); +@def textWeight value('theme.menu.bar.itemText.weight'); +@def textLineHeight value('theme.menu.bar.itemLineHeight'); + +@def hoverItemGradient value('theme.menu.bar.hoverItemGradient'); +@def activeItemGradient value('theme.menu.bar.activeItemGradient'); + +.over { + background: -webkit-linear-gradient(top, hoverItemGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, hoverItemGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, hoverItemGradient); /* IE10+ */ + background: linear-gradient(to bottom, hoverItemGradient); /* W3C */ +} + +.active { + background: -webkit-linear-gradient(top, activeItemGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, activeItemGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, activeItemGradient); /* IE10+ */ + background: linear-gradient(to bottom, activeItemGradient); /* W3C */ +} + +.menuBarItem { + font-size: textSize; + font-family: textFamily; + font-weight: textWeight; + color: textColor; + line-height: textLineHeight; + + padding: itemPadding; + float:left; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarItemAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarItemAppearance.java new file mode 100644 index 0000000..545f0ac --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuBarItemAppearance.java @@ -0,0 +1,36 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.menu; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.sencha.gxt.theme.base.client.menu.MenuBarItemBaseAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.menu.MenuBarItem.MenuBarItemAppearance; + +public class Css3MenuBarItemAppearance extends MenuBarItemBaseAppearance implements MenuBarItemAppearance { + public interface Css3MenuBarItemResources extends MenuBarItemResources, ClientBundle { + @Override + @Source("Css3MenuBarItem.css") + Css3MenuBarItemStyle css(); + + ThemeDetails theme(); + } + + public interface Css3MenuBarItemStyle extends MenuBarItemStyle { + + } + + public Css3MenuBarItemAppearance() { + this(GWT.create(Css3MenuBarItemResources.class)); + } + + public Css3MenuBarItemAppearance(Css3MenuBarItemResources resources) { + super(resources); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuItem.css b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuItem.css new file mode 100644 index 0000000..e2709fd --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuItem.css @@ -0,0 +1,101 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def itemPadding value('theme.menu.itemPadding.toString'); + +@def textColor value('theme.menu.itemText.color'); +@def textFamily value('theme.menu.itemText.family'); +@def textSize value('theme.menu.itemText.size'); +@def textWeight value('theme.menu.itemText.weight'); +@def itemLineHeight value('theme.menu.itemLineHeight'); + +@def activeGradient value('theme.menu.activeItemGradient'); +@def activeBorderWidth value('theme.menu.activeItemBorder.toString'); +@def activeBorderStyle value('theme.menu.activeItemBorder.style'); +@def activeBorderColor value('theme.menu.activeItemBorder.color'); + +@def activeTextColor value('theme.menu.activeItemText.color'); +@def activeTextFamily value('theme.menu.activeItemText.family'); +@def activeTextSize value('theme.menu.activeItemText.size'); +@def activeTextWeight value('theme.menu.activeItemText.weight'); + + +@if user.agent gecko gecko1_8 { + .menuItem { + outline-color: -moz-use-text-color; + } +} + +.menuItem { + display: block; + outline-style: none; + outline-width: 0; + padding: 0 21px 0 27px; + position: relative; + text-decoration: none; + white-space: nowrap; +} + +.menuListItem { + white-space: nowrap; + display: block; + padding: activeBorderWidth; + margin: itemPadding; + cursor: pointer; + + font-size: textSize; + font-family: textFamily; + font-weight: textWeight; + line-height: itemLineHeight; + color: textColor; +} + +.menuItemIcon { + border: 0 none; + height: 16px; + padding: 0; + vertical-align: top; + width: 16px; + position: absolute; + left: 3px; + top: 3px; + margin: 0; + background-position: center; +} + +@if gxt.user.agent ie6 { + .menuItemIcon { + left: -24px; + } +} + +@if user.agent ie6 ie8 ie9 { + .menuItemIcon { + vertical-align: middle; + } +} + +@sprite .menuItemArrow { + gwt-image: "menuParent"; + height: auto; /* override gwt-image default behavior */ + width: auto; /* override gwt-image default behavior */ + background-position: right; + background-repeat: no-repeat; +} + + +.active { + background: -webkit-linear-gradient(left, activeGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(left, activeGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(left, activeGradient); /* IE10+ */ + background: linear-gradient(to right, activeGradient); /* W3C */ + border-color: activeBorderColor; + border-width: activeBorderWidth; + border-style: activeBorderStyle; + + padding: 0 !important; /*removes padding set by .menuListItem that we use in the border here*/ +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuItemAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuItemAppearance.java new file mode 100644 index 0000000..591f4e4 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3MenuItemAppearance.java @@ -0,0 +1,41 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.menu; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.ImageResource; +import com.sencha.gxt.theme.base.client.menu.MenuItemBaseAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3MenuItemAppearance extends MenuItemBaseAppearance { + + public interface Css3MenuItemResources extends MenuItemResources, ClientBundle { + + @Override + @Source("Css3MenuItem.css") + Css3MenuItemStyle style(); + + ThemeDetails theme(); + + ImageResource menuParent(); + } + + public interface Css3MenuItemStyle extends MenuItemStyle { + + } + + public Css3MenuItemAppearance() { + this(GWT.create(Css3MenuItemResources.class), + GWT.create(MenuItemTemplate.class)); + + } + public Css3MenuItemAppearance(Css3MenuItemResources resources, MenuItemTemplate template) { + super(resources, template); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3SeparatorMenuItem.css b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3SeparatorMenuItem.css new file mode 100644 index 0000000..67b706d --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3SeparatorMenuItem.css @@ -0,0 +1,22 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def height value('theme.menu.separator.height', 'px'); +@def margin value('theme.menu.separator.margin'); +@def color value('theme.menu.separator.color'); + +.menuSep { + display: block; + overflow: hidden; + line-height: height; + + margin: margin; + background-color: color; +} + + +.active {} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3SeparatorMenuItemAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3SeparatorMenuItemAppearance.java new file mode 100644 index 0000000..e39bf8f --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/menu/Css3SeparatorMenuItemAppearance.java @@ -0,0 +1,32 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.menu; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.sencha.gxt.theme.base.client.menu.SeparatorMenuItemBaseAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3SeparatorMenuItemAppearance extends SeparatorMenuItemBaseAppearance { + + public interface Css3SeparatorMenuItemResources extends SeparatorMenuItemResources, ClientBundle { + @Override + @Source("Css3SeparatorMenuItem.css") + Css3SeparatorMenuItemStyle style(); + + ThemeDetails theme(); + } + + public interface Css3SeparatorMenuItemStyle extends SeparatorMenuItemStyle { + + } + + public Css3SeparatorMenuItemAppearance() { + super(GWT.create(Css3SeparatorMenuItemResources.class), GWT.create(SeparatorMenuItemTemplate.class)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/checked.png b/src/com/sencha/gxt/theme/neptune/client/base/menu/checked.png new file mode 100644 index 0000000..0c6e9e0 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/menu/checked.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/groupChecked.png b/src/com/sencha/gxt/theme/neptune/client/base/menu/groupChecked.png new file mode 100644 index 0000000..e7aa6bb Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/menu/groupChecked.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/menuParent.png b/src/com/sencha/gxt/theme/neptune/client/base/menu/menuParent.png new file mode 100644 index 0000000..0b4d20c Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/menu/menuParent.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/miniBottom.png b/src/com/sencha/gxt/theme/neptune/client/base/menu/miniBottom.png new file mode 100644 index 0000000..d9bfd74 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/menu/miniBottom.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/miniTop.png b/src/com/sencha/gxt/theme/neptune/client/base/menu/miniTop.png new file mode 100644 index 0000000..9dec2b3 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/menu/miniTop.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/menu/unchecked.png b/src/com/sencha/gxt/theme/neptune/client/base/menu/unchecked.png new file mode 100644 index 0000000..90edd84 Binary files /dev/null and b/src/com/sencha/gxt/theme/neptune/client/base/menu/unchecked.png differ diff --git a/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanel.css b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanel.css new file mode 100644 index 0000000..289597e --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanel.css @@ -0,0 +1,48 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def backgroundColor value('theme.panel.backgroundColor'); +@def borderColor value('theme.panel.border.color'); +@def borderStyle value('theme.panel.border.style'); +@def borderWidth value('theme.panel.border.toString'); + +@def textColor value('theme.panel.textColor'); +@def headerBackgroundColor value('theme.panel.headerBackgroundColor'); +@def headerGradient value('theme.panel.headerGradient'); +@def padding value('theme.panel.headerPadding.toString'); + +.panel { + outline: 0 none; + border-style: borderStyle; + border-width: borderWidth; + border-color: borderColor; +} + +.body { + background-color: backgroundColor; + border: none; + position: relative; + overflow: hidden; +} + +.header { + position: relative; + + background: -webkit-linear-gradient(top, headerGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, headerGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, headerGradient); /* IE10+ */ + background: linear-gradient(to bottom, headerGradient); /* W3C */ + + padding: padding; +} + +.footer { + position: relative; +} + +.bodyWrap { +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanel.html b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanel.html new file mode 100644 index 0000000..f5649e5 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanel.html @@ -0,0 +1,7 @@ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanelAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanelAppearance.java new file mode 100644 index 0000000..ae45443 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3ContentPanelAppearance.java @@ -0,0 +1,150 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.panel; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.Style; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.core.client.util.Size; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.ContentPanel.ContentPanelAppearance; +import com.sencha.gxt.widget.core.client.Header; +import com.sencha.gxt.widget.core.client.button.IconButton.IconConfig; +import com.sencha.gxt.widget.core.client.button.ToolButton; + +/** + */ +public class Css3ContentPanelAppearance implements ContentPanelAppearance { + + public interface Css3ContentPanelResources extends ClientBundle { + @Source("Css3ContentPanel.css") + Css3ContentPanelStyle style(); + + ThemeDetails theme(); + } + + public interface ThemeDetailsBundle extends ClientBundle { + + ThemeDetails theme(); + } + + public interface Css3ContentPanelStyle extends CssResource { + String body(); + + String bodyWrap(); + + String footer(); + + String header(); + + String panel(); + } + + public interface Css3ContentPanelTemplate extends XTemplates { + @XTemplate(source = "Css3ContentPanel.html") + SafeHtml render(Css3ContentPanelStyle style); + } + + protected Css3ContentPanelTemplate template; + protected final Css3ContentPanelStyle style; + protected final Css3ContentPanelResources resources; + protected final ThemeDetails theme; + + public Css3ContentPanelAppearance() { + this(GWT. create(Css3ContentPanelResources.class)); + } + + public Css3ContentPanelAppearance(Css3ContentPanelResources resources) { + this(resources, GWT. create(Css3ContentPanelTemplate.class)); + } + + public Css3ContentPanelAppearance(Css3ContentPanelResources resources, Css3ContentPanelTemplate template) { + this.resources = resources; + this.style = this.resources.style(); + + StyleInjectorHelper.ensureInjected(this.style, true); + this.template = template; + + ThemeDetailsBundle bundle = GWT.create(ThemeDetailsBundle.class); + this.theme = bundle.theme(); + } + + @Override + public Header.HeaderAppearance getHeaderAppearance() { + return new Css3HeaderAppearance(); + } + + @Override + public void onHideHeader(XElement parent, boolean hide) { + parent.selectNode("." + style.header()).setVisible(!hide); + } + + @Override + public void onBodyBorder(XElement parent, boolean border) { + getContentElem(parent).applyStyles(!border ? "border: 0px" : ""); + } + + @Override + public XElement getBodyWrap(XElement parent) { + return parent.selectNode("." + style.bodyWrap()); + } + + @Override + public XElement getContentElem(XElement parent) { + return parent.selectNode("." + style.body()); + } + + @Override + public XElement getFooterElem(XElement parent) { + return parent.selectNode("." + style.footer()); + } + + @Override + public int getFrameHeight(XElement parent) { + return theme.panel().border().top() + theme.panel().border().bottom(); + } + + @Override + public int getFrameWidth(XElement parent) { + int adj = parent.getBorders(Style.Side.LEFT, Style.Side.RIGHT); + return adj + theme.panel().border().left() + theme.panel().border().right(); + } + + @Override + public XElement getHeaderElem(XElement parent) { + return parent.selectNode("." + style.header()); + } + + @Override + public void render(SafeHtmlBuilder sb) { + sb.append(template.render(style)); + } + + @Override + public IconConfig collapseIcon() { + return ToolButton.UP; + } + + @Override + public IconConfig expandIcon() { + return ToolButton.DOWN; + } + + @Override + public Size getHeaderSize(XElement parent) { + Element head = parent.getFirstChildElement(); + return new Size(head.getOffsetWidth(), head.getOffsetHeight()); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanel.css b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanel.css new file mode 100644 index 0000000..d727ed1 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanel.css @@ -0,0 +1,56 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def borderRadius value('theme.framedPanel.borderRadius','px'); +@def borderWidth value('theme.framedPanel.border'); +@def borderColor value('theme.framedPanel.border.color'); +@def borderStyle value('theme.framedPanel.border.style'); +@def headerBackgroundColor value('theme.framedPanel.headerBackgroundColor'); +@def headerGradient value('theme.framedPanel.headerGradient'); +@def headerPadding value('theme.framedPanel.headerPadding.toString'); +@def backgroundColor value('theme.framedPanel.backgroundColor'); + +.panel { + border-radius: borderRadius; + + border-width: borderWidth; + border-style: borderStyle; + background-color: backgroundColor; + border-color: borderColor; + + padding: 0; + overflow:hidden; +} + +.body { + border: none; +} + +.noHeader { + +} + +.header { + background: -webkit-linear-gradient(top, headerGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, headerGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, headerGradient); /* IE10+ */ + background: linear-gradient(to bottom, headerGradient); /* W3C */ + + padding: headerPadding; +} + +.body { + +} + +.footer { + +} + +.bodyWrap { + position:relative; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanel.html b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanel.html new file mode 100644 index 0000000..f5649e5 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanel.html @@ -0,0 +1,7 @@ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanelAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanelAppearance.java new file mode 100644 index 0000000..46059d8 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3FramedPanelAppearance.java @@ -0,0 +1,145 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.panel; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.core.client.util.Size; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.theme.neptune.client.base.panel.Css3ContentPanelAppearance.ThemeDetailsBundle; +import com.sencha.gxt.widget.core.client.FramedPanel.FramedPanelAppearance; +import com.sencha.gxt.widget.core.client.Header.HeaderAppearance; +import com.sencha.gxt.widget.core.client.button.IconButton.IconConfig; +import com.sencha.gxt.widget.core.client.button.ToolButton; + +public class Css3FramedPanelAppearance implements FramedPanelAppearance { + + public interface Css3FramedPanelResources extends ClientBundle { + @Source("Css3FramedPanel.css") + Css3FramedPanelStyle style(); + + ThemeDetails theme(); + } + + public interface FramedPanelTemplate extends XTemplates { + @XTemplate(source = "Css3FramedPanel.html") + SafeHtml render(Css3FramedPanelStyle style); + } + + public interface Css3FramedPanelStyle extends CssResource { + String body(); + + String bodyWrap(); + + String footer(); + + String header(); + + String panel(); + + String noHeader(); + } + + private Css3FramedPanelResources resources; + private Css3FramedPanelStyle style; + private final FramedPanelTemplate template; + protected final ThemeDetails theme; + + public Css3FramedPanelAppearance() { + this(GWT. create(Css3FramedPanelResources.class), + GWT. create(FramedPanelTemplate.class)); + } + + public Css3FramedPanelAppearance(Css3FramedPanelResources resources, FramedPanelTemplate template) { + this.resources = resources; + this.style = this.resources.style(); + this.template = template; + + StyleInjectorHelper.ensureInjected(this.style, true); + + ThemeDetailsBundle bundle = GWT.create(ThemeDetailsBundle.class); + this.theme = bundle.theme(); + } + + @Override + public int getFrameHeight(XElement parent) { + return Math.max(theme.framedPanel().borderRadius(), theme.framedPanel().border().top()) + + Math.max(theme.framedPanel().borderRadius(), theme.framedPanel().border().bottom()); + } + + @Override + public int getFrameWidth(XElement parent) { + return Math.max(theme.framedPanel().borderRadius(), theme.framedPanel().border().left()) + + Math.max(theme.framedPanel().borderRadius(), theme.framedPanel().border().right()); + } + + @Override + public void render(SafeHtmlBuilder sb) { + sb.append(template.render(style)); + } + + @Override + public HeaderAppearance getHeaderAppearance() { + return new Css3HeaderAppearance(); + } + + @Override + public IconConfig collapseIcon() { + return ToolButton.UP; + } + + @Override + public IconConfig expandIcon() { + return ToolButton.DOWN; + } + + @Override + public XElement getBodyWrap(XElement parent) { + return parent.selectNode("." + style.bodyWrap()); + } + + @Override + public XElement getContentElem(XElement parent) { + return parent.selectNode("." + style.body()); + } + + @Override + public XElement getFooterElem(XElement parent) { + return parent.selectNode("." + style.footer()); + } + + @Override + public XElement getHeaderElem(XElement parent) { + return parent.selectNode("." + style.header()); + } + + @Override + public void onBodyBorder(XElement parent, boolean border) { + getContentElem(parent).applyStyles(!border ? "border: 0px" : ""); + } + + @Override + public void onHideHeader(XElement parent, boolean hide) { + parent.selectNode("." + style.header()).setVisible(!hide); + parent.setClassName(style.noHeader(), hide); + } + + @Override + public Size getHeaderSize(XElement parent) { + Element head = parent.getFirstChildElement(); + return new Size(head.getOffsetWidth(), head.getOffsetHeight()); + } + +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3Header.css b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3Header.css new file mode 100644 index 0000000..8dbdb17 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3Header.css @@ -0,0 +1,24 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def textColor value('theme.panel.font.color'); +@def fontSize value('theme.panel.font.size'); +@def fontFamily value('theme.panel.font.family'); +@def fontWeight value('theme.panel.font.weight'); + +.header { + padding: 0px; +} + +.headerText { + color: textColor; + font-size: fontSize; + font-weight: fontWeight; + font-family: fontFamily; + line-height: 15px; + text-transform: none; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3HeaderAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3HeaderAppearance.java new file mode 100644 index 0000000..ea847b4 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/panel/Css3HeaderAppearance.java @@ -0,0 +1,52 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.panel; + + +import com.google.gwt.core.client.GWT; +import com.sencha.gxt.theme.base.client.widget.HeaderDefaultAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +/** + */ +public class Css3HeaderAppearance extends HeaderDefaultAppearance { + + public interface Css3HeaderStyle extends HeaderStyle { + @Override + String header(); + + @Override + String headerBar(); + + @Override + String headerHasIcon(); + + @Override + String headerIcon(); + + @Override + String headerText(); + } + + public interface Css3HeaderResources extends HeaderResources { + + @Override + @Source({"com/sencha/gxt/theme/base/client/widget/Header.css", "Css3Header.css"}) + Css3HeaderStyle style(); + + ThemeDetails theme(); + } + + public Css3HeaderAppearance() { + this(GWT.create(Css3HeaderResources.class)); + } + + public Css3HeaderAppearance(Css3HeaderResources resources) { + super(resources); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBar.css b/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBar.css new file mode 100644 index 0000000..d873c96 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBar.css @@ -0,0 +1,76 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def borderWidth value('theme.progressbar.border.toString'); +@def borderColor value('theme.progressbar.border.color'); +@def borderStyle value('theme.progressbar.border.style'); + +@def gradient value('theme.progressbar.backgroundGradient'); + +@def textFamily value('theme.progressbar.text.family'); +@def textSize value('theme.progressbar.text.size'); +@def textWeight value('theme.progressbar.text.weight'); +@def textColor value('theme.progressbar.text.color'); +@def barTextColor value('theme.progressbar.barTextColor'); + +@def textAlign value('theme.progressbar.textAlign'); + +@def textPadding value('theme.progressbar.textPadding.toString'); + +@def barGradient value('theme.progressbar.barGradient'); + +@def barBorderWidth value('theme.progressbar.barBorder.toString'); +@def barBorderColor value('theme.progressbar.barBorder.color'); +@def barBorderStyle value('theme.progressbar.barBorder.style'); + + +.wrap { + border-width: borderWidth; + border-style: borderStyle; + border-color: borderColor; + + position:relative; + overflow: hidden; + + background: -webkit-linear-gradient(top, gradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, gradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, gradient); /* IE10+ */ + background: linear-gradient(to bottom, gradient); /* W3C */ +} +.bar { + z-index: 100; + width: 99%; + overflow: hidden; + position:relative; + top:0; + + border-width: barBorderWidth; + border-style: barBorderStyle; + border-color: barBorderColor; + + background: -webkit-linear-gradient(top, barGradient); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, barGradient); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, barGradient); /* IE10+ */ + background: linear-gradient(to bottom, barGradient); /* W3C */ +} +.text { + font-family: textFamily; + font-weight: textWeight; + font-size: textSize; + color: barTextColor; + text-align: textAlign; + padding: textPadding; +} +.textBack { + overflow:hidden; + z-index:99; + width:100%; + color: textColor; + position:absolute; + left:0; + top:0; +} \ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBar.html b/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBar.html new file mode 100644 index 0000000..4efc648 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBar.html @@ -0,0 +1,6 @@ +
+
+
{text}
+
+
{text}
+
\ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBarAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBarAppearance.java new file mode 100644 index 0000000..232a4cc --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/progressbar/Css3ProgressBarAppearance.java @@ -0,0 +1,89 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.progressbar; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safecss.shared.SafeStyles; +import com.google.gwt.safecss.shared.SafeStylesUtils; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.sencha.gxt.cell.core.client.ProgressBarCell.ProgressBarAppearance; +import com.sencha.gxt.cell.core.client.ProgressBarCell.ProgressBarAppearanceOptions; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.core.client.util.Format; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3ProgressBarAppearance implements ProgressBarAppearance { + public interface Css3ProgressBarResources extends ClientBundle { + + @Source("Css3ProgressBar.css") + Css3ProgressBarStyles styles(); + + ThemeDetails theme(); + } + + public interface Css3ProgressBarStyles extends CssResource { + String wrap(); + + String bar(); + String text(); + String textBack(); + } + + public interface Css3ProgressBarTemplate extends XTemplates { + @XTemplate(source = "Css3ProgressBar.html") + SafeHtml render(SafeHtml text, Css3ProgressBarStyles style, SafeStyles wrapStyles, SafeStyles progressBarStyles, SafeStyles progressTextStyles, SafeStyles widthStyles); + } + + private final Css3ProgressBarStyles styles; + private final Css3ProgressBarTemplate template = GWT.create(Css3ProgressBarTemplate.class); + + public Css3ProgressBarAppearance() { + this(GWT.create(Css3ProgressBarResources.class)); + } + public Css3ProgressBarAppearance(Css3ProgressBarResources resources) { + styles = resources.styles(); + StyleInjectorHelper.ensureInjected(styles, false); + } + + @Override + public void render(SafeHtmlBuilder sb, Double value, ProgressBarAppearanceOptions options) { + value = value == null ? 0 : value; + + String text = options.getProgressText(); + + if (text != null) { + int v = (int) Math.round(value * 100); + text = Format.substitute(text, v); + } + + SafeHtml txt; + if (text == null) { + txt = SafeHtmlUtils.fromSafeConstant(" "); + } else { + txt = SafeHtmlUtils.fromString(text); + } + + SafeStyles widthStyles = SafeStylesUtils.fromTrustedNameAndValue("width", options.getWidth() + "px"); + + final SafeStyles progressBarStyles; + if (value <= 0) { + progressBarStyles = SafeStylesUtils.fromTrustedNameAndValue("visibility", "hidden"); + } else { + progressBarStyles = SafeStylesUtils.fromTrustedNameAndValue("width", value * 100 + "%"); + } + + + sb.append(template.render(txt, styles, null, progressBarStyles, null, widthStyles)); + + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3HorizontalSlider.css b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3HorizontalSlider.css new file mode 100644 index 0000000..4ce5a1a --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3HorizontalSlider.css @@ -0,0 +1,89 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def trackBackground value('theme.field.slider.trackBackgroundColor'); +@def trackHeight value('theme.field.slider.trackHeight', 'px'); +@def trackBorderColor value('theme.field.slider.trackBorder.color'); +@def trackBorderStyle value('theme.field.slider.trackBorder.style'); +@def trackBorderWidth value('theme.field.slider.trackBorder.toString'); +@def trackRadius value('theme.field.slider.trackRadius', 'px'); + +@def thumbWidth value('theme.field.slider.thumbWidth', 'px'); +@def thumbHeight value('theme.field.slider.thumbHeight', 'px'); +@def thumbRadius value('theme.field.slider.thumbRadius', 'px'); +@def thumbBackgroundColor value('theme.field.slider.thumbBackgroundColor'); +@def thumbBorderColor value('theme.field.slider.thumbBorder.color'); +@def thumbBorderStyle value('theme.field.slider.thumbBorder.style'); +@def thumbBorderWidth value('theme.field.slider.thumbBorder.toString'); + + +.slider { + outline: 0 none; +} +.track { + background: trackBackground; + border-radius: trackRadius; + + border-style: trackBorderStyle; + border-color: trackBorderColor; + border-width: trackBorderWidth; + + width: 200px; + height: trackHeight; + -webkit-box-shadow: none; + box-shadow: none; + /*margin-bottom: 20px;*/ + position: relative; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.thumb { + background: thumbBackgroundColor; + + border-style: thumbBorderStyle; + border-color: thumbBorderColor; + border-width: thumbBorderWidth; + border-radius: thumbRadius; + cursor: pointer; + height: thumbHeight; + /* margin-left: calc(thumbWidth / -2); -- set by appearance */ + position: absolute; + width: thumbWidth; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 2; +} + +.thumbCenter { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + background-color: thumbBorderColor; + border-radius: thumbRadius; + position: absolute; + height: 50%; + width: 50%; + left: 25%; + top: 25%; + z-index: 3; +} + +.over .thumb { + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); +} + +.drag .thumb { + -webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6); + -moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6); + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.6); +} + diff --git a/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3HorizontalSliderAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3HorizontalSliderAppearance.java new file mode 100644 index 0000000..94b13c2 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3HorizontalSliderAppearance.java @@ -0,0 +1,212 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.slider; + +import com.google.gwt.cell.client.Cell.Context; +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.safecss.shared.SafeStyles; +import com.google.gwt.safecss.shared.SafeStylesBuilder; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.cell.core.client.SliderCell.HorizontalSliderAppearance; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.resources.StyleInjectorHelper; +import com.sencha.gxt.core.client.util.Point; +import com.sencha.gxt.theme.neptune.client.FieldDetails; +import com.sencha.gxt.theme.neptune.client.SliderDetails; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +/** + * + */ +public class Css3HorizontalSliderAppearance implements HorizontalSliderAppearance { + + public interface Css3HorizontalSliderResources extends ClientBundle { + @Source("Css3HorizontalSlider.css") + Css3HorizontalSliderStyle style(); + + ThemeDetails theme(); + } + + public interface Css3HorizontalSliderStyle extends CssResource { + String slider(); + + String drag(); + + String over(); + + String track(); + + String thumb(); + + String thumbCenter(); + } + + public interface Css3HorizontalSliderTemplate extends XTemplates { + @XTemplate(source = "Css3Slider.html") + SafeHtml render(Css3HorizontalSliderStyle style, SafeStyles sliderStyle, SafeStyles trackStyle, SafeStyles thumbStyle, SafeStyles thumbCenterStyle); + } + + private Css3HorizontalSliderResources resources; + private Css3HorizontalSliderStyle style; + protected Css3HorizontalSliderTemplate template; + + public Css3HorizontalSliderAppearance() { + this(GWT.create(Css3HorizontalSliderResources.class)); + } + + public Css3HorizontalSliderAppearance(Css3HorizontalSliderResources resources) { + this(resources, GWT.create(Css3HorizontalSliderTemplate.class)); + } + + public Css3HorizontalSliderAppearance(Css3HorizontalSliderResources resources, Css3HorizontalSliderTemplate template) { + this.resources = resources; + this.template = template; + this.style = resources.style(); + + StyleInjectorHelper.ensureInjected(style, true); + } + + @Override + public int getClickedValue(Context context, Element parent, Point location) { + XElement track = getTrack(parent); + return location.getX() - track.getLeft(false) - (resources.theme().field().slider().thumbWidth()); + } + + @Override + public int getSliderLength(XElement parent) { + SliderDetails sliderDetails = resources.theme().field().slider(); + return getTrack(parent).getOffsetWidth() - sliderDetails.thumbWidth(); + } + + @Override + public Element getThumb(Element parent) { + return parent.cast().selectNode("." + style.thumb()); + } + + @Override + public boolean isVertical() { + return false; + } + + @Override + public void onEmpty(Element parent, boolean empty) { + // Not possible to "empty" a slider + } + + @Override + public void onFocus(Element parent, boolean focus) { + // No visible effect on focussing + } + + @Override + public void onMouseDown(Context context, Element parent) { + parent.addClassName(style.drag()); + } + + @Override + public void onMouseOut(Context context, Element parent) { + parent.removeClassName(style.over()); + } + + @Override + public void onMouseOver(Context context, Element parent) { + parent.addClassName(style.over()); + } + + @Override + public void onMouseUp(Context context, Element parent) { + parent.removeClassName(style.drag()); + } + + @Override + public void onValid(Element parent, boolean valid) { + // Always valid + } + + @Override + public void setReadOnly(Element parent, boolean readonly) { + // TODO Not currently disableable + } + + + @Override + public void render(double fractionalValue, int width, int height, SafeHtmlBuilder sb) { + if (width == -1) { + // default + width = 200; + } + + FieldDetails fieldDetails = resources.theme().field(); + + int thumbWidth = fieldDetails.slider().thumbWidth(); + int thumbHeight = fieldDetails.slider().thumbHeight(); + + int fieldHeight = Math.max(fieldDetails.height(), thumbHeight); + fieldHeight = Math.max(fieldHeight, fieldDetails.slider().trackHeight()); + + int halfThumbWidth = thumbWidth / 2; + int maxTrackLength = width - thumbWidth; + + int offset = (int) (fractionalValue * maxTrackLength) - halfThumbWidth; + offset = Math.max(-halfThumbWidth, offset); + offset = Math.min(maxTrackLength + halfThumbWidth, offset); + + SafeStylesBuilder sliderStyleBuilder = new SafeStylesBuilder(); + sliderStyleBuilder.appendTrustedString("width:" + width + "px;"); + sliderStyleBuilder.appendTrustedString("height:" + fieldHeight + "px;"); + + + SafeStylesBuilder trackStyleBuilder = new SafeStylesBuilder(); + trackStyleBuilder.appendTrustedString("width: " + width + "px;"); + trackStyleBuilder.appendTrustedString("top:" + ((fieldHeight - fieldDetails.slider().trackHeight()) / 2) + "px;"); + + SafeStylesBuilder thumbStyleBuilder = new SafeStylesBuilder(); + thumbStyleBuilder.appendTrustedString("left:" + offset + "px;"); + int thumbTop = ((fieldDetails.slider().trackHeight() - thumbHeight) / 2) + - (fieldDetails.slider().trackBorder().top() + fieldDetails.slider().trackBorder().bottom()); + thumbStyleBuilder.appendTrustedString("top:" + thumbTop + "px;"); + thumbStyleBuilder.appendTrustedString("margin-left:" + halfThumbWidth + "px;"); + + + SafeStylesBuilder thumbCenterStyleBuilder = new SafeStylesBuilder(); + updateThumbCenterStyle(thumbCenterStyleBuilder, "left", "width", thumbWidth, + fieldDetails.slider().thumbBorder().left(), fieldDetails.slider().thumbBorder().right()); + updateThumbCenterStyle(thumbCenterStyleBuilder, "top", "height", thumbHeight, + fieldDetails.slider().thumbBorder().top(), fieldDetails.slider().thumbBorder().bottom()); + + sb.append(template.render(resources.style(), sliderStyleBuilder.toSafeStyles(), + trackStyleBuilder.toSafeStyles(), thumbStyleBuilder.toSafeStyles(), thumbCenterStyleBuilder.toSafeStyles())); + } + + @Override + public void setThumbPosition(Element parent, int pos) { + XElement thumbElement = XElement.as(getThumb(parent)); + int halfThumbSize = resources.theme().field().slider().thumbWidth() / 2; + pos = Math.max(-halfThumbSize, pos); + thumbElement.getStyle().setLeft(pos, Unit.PX); + } + + protected XElement getTrack(Element parent) { + return parent.cast().selectNode("." + style.track()); + } + + protected void updateThumbCenterStyle(SafeStylesBuilder style, String position, String dimension, int full, int border1, int border2) { + int remainingArea = full - (border1 + border2); + int margin = remainingArea / 4; + int size = remainingArea - (margin * 2); + + style.appendTrustedString(position + ":" + margin + "px;"); + style.appendTrustedString(dimension + ":" + size + "px;"); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3Slider.html b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3Slider.html new file mode 100644 index 0000000..9cbd9fc --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3Slider.html @@ -0,0 +1,7 @@ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3VerticalSlider.css b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3VerticalSlider.css new file mode 100644 index 0000000..352a4cc --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3VerticalSlider.css @@ -0,0 +1,41 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ + +@def trackHeight value('theme.field.slider.trackHeight', 'px'); + +/* rotated sides due to orientation */ +@def thumbWidth value('theme.field.slider.thumbHeight', 'px'); +@def thumbHeight value('theme.field.slider.thumbWidth', 'px'); + +@def trackBorderTop value('theme.field.slider.trackBorder.left', 'px'); +@def trackBorderRight value('theme.field.slider.trackBorder.top', 'px'); +@def trackBorderBottom value('theme.field.slider.trackBorder.right', 'px'); +@def trackBorderLeft value('theme.field.slider.trackBorder.bottom', 'px'); + +@def thumbBorderTop value('theme.field.slider.thumbBorder.left', 'px'); +@def thumbBorderRight value('theme.field.slider.thumbBorder.top', 'px'); +@def thumbBorderBottom value('theme.field.slider.thumbBorder.right', 'px'); +@def thumbBorderLeft value('theme.field.slider.thumbBorder.bottom', 'px'); + +.track { + width: trackHeight; + border-top-width: trackBorderTop; + border-right-width: trackBorderRight; + border-bottom-width: trackBorderBottom; + border-left-width: trackBorderLeft; + height: 200px; +} + +.thumb { + border-top-width: thumbBorderTop; + border-right-width: thumbBorderRight; + border-bottom-width: thumbBorderBottom; + border-left-width: thumbBorderLeft; + height: thumbHeight; + width: thumbWidth; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3VerticalSliderAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3VerticalSliderAppearance.java new file mode 100644 index 0000000..3051c09 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/slider/Css3VerticalSliderAppearance.java @@ -0,0 +1,123 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.slider; + +import com.google.gwt.cell.client.Cell.Context; +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.safecss.shared.SafeStylesBuilder; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.cell.core.client.SliderCell.VerticalSliderAppearance; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.core.client.util.Point; +import com.sencha.gxt.theme.neptune.client.FieldDetails; +import com.sencha.gxt.theme.neptune.client.SliderDetails; + +/** + * + */ +public class Css3VerticalSliderAppearance extends Css3HorizontalSliderAppearance implements VerticalSliderAppearance { + public interface Css3VerticalSliderResources extends Css3HorizontalSliderResources { + @Source({"Css3HorizontalSlider.css", "Css3VerticalSlider.css"}) + Css3VerticalSliderStyle style(); + } + + public interface Css3VerticalSliderStyle extends Css3HorizontalSliderStyle { + } + + private final Css3VerticalSliderResources resources; + + public Css3VerticalSliderAppearance() { + this(GWT.create(Css3VerticalSliderResources.class)); + } + + public Css3VerticalSliderAppearance(Css3VerticalSliderResources resources) { + this(resources, GWT.create(Css3HorizontalSliderTemplate.class)); + } + + public Css3VerticalSliderAppearance(Css3VerticalSliderResources resources, Css3HorizontalSliderTemplate template) { + super(resources, template); + this.resources = resources; + } + + @Override + public int getClickedValue(Context context, Element parent, Point location) { + XElement track = getTrack(parent); + return location.getY() - track.getTop(false) - (resources.theme().field().slider().thumbWidth() / 2); + } + + @Override + public int getSliderLength(XElement parent) { + SliderDetails sliderDetails = resources.theme().field().slider(); + return getTrack(parent).getOffsetHeight() - sliderDetails.thumbWidth(); + } + + @Override + public boolean isVertical() { + return true; + } + + @Override + public void render(double fractionalValue, int width, int height, SafeHtmlBuilder sb) { + if (height == -1) { + // default + height = 200; + } + + FieldDetails fieldDetails = resources.theme().field(); + + int thumbWidth = fieldDetails.slider().thumbWidth(); + int thumbHeight = fieldDetails.slider().thumbHeight(); + + int fieldWidth = Math.max(fieldDetails.height(), fieldDetails.slider().thumbHeight()); + fieldWidth = Math.max(fieldWidth, fieldDetails.slider().trackHeight()); + + int halfThumbWidth = thumbWidth / 2; + int maxTrackLength = height - thumbWidth; + + int offset = (int) (fractionalValue * maxTrackLength) - halfThumbWidth; + offset = Math.max(-halfThumbWidth, offset); + offset = Math.min(maxTrackLength + halfThumbWidth, offset); + + SafeStylesBuilder sliderStyleBuilder = new SafeStylesBuilder(); + sliderStyleBuilder.appendTrustedString("height:" + height + "px;"); + sliderStyleBuilder.appendTrustedString("width:" + fieldWidth + "px;"); + + + SafeStylesBuilder trackStyleBuilder = new SafeStylesBuilder(); + trackStyleBuilder.appendTrustedString("height: " + height + "px;"); + trackStyleBuilder.appendTrustedString("left:" + ((fieldWidth - fieldDetails.slider().trackHeight()) / 2) + "px;"); + + SafeStylesBuilder thumbStyleBuilder = new SafeStylesBuilder(); + thumbStyleBuilder.appendTrustedString("bottom:" + offset + "px;"); + // reversed width/height due to orientation + int thumbLeft = ((fieldDetails.slider().trackHeight() - thumbHeight) / 2) + - (fieldDetails.slider().trackBorder().top() + fieldDetails.slider().trackBorder().bottom()); + thumbStyleBuilder.appendTrustedString("left:" + thumbLeft + "px;"); + thumbStyleBuilder.appendTrustedString("margin-bottom:" + halfThumbWidth + "px;"); + + SafeStylesBuilder thumbCenterStyleBuilder = new SafeStylesBuilder(); + updateThumbCenterStyle(thumbCenterStyleBuilder, "top", "height", thumbWidth, + fieldDetails.slider().thumbBorder().left(), fieldDetails.slider().thumbBorder().right()); + updateThumbCenterStyle(thumbCenterStyleBuilder, "left", "width", thumbHeight, + fieldDetails.slider().thumbBorder().top(), fieldDetails.slider().thumbBorder().bottom()); + + + sb.append(template.render(resources.style(), sliderStyleBuilder.toSafeStyles(), + trackStyleBuilder.toSafeStyles(), thumbStyleBuilder.toSafeStyles(), thumbCenterStyleBuilder.toSafeStyles())); + } + + @Override + public void setThumbPosition(Element parent, int pos) { + XElement thumbElement = XElement.as(getThumb(parent)); + int halfThumbSize = resources.theme().field().slider().thumbWidth() / 2; + pos = Math.max(-halfThumbSize, pos); + thumbElement.getStyle().setBottom(pos, Unit.PX); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/status/Css3BoxStatus.css b/src/com/sencha/gxt/theme/neptune/client/base/status/Css3BoxStatus.css new file mode 100644 index 0000000..4c2adc7 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/status/Css3BoxStatus.css @@ -0,0 +1,48 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def textColor value('theme.status.text.color'); +@def textSize value('theme.status.text.size'); +@def textFamily value('theme.status.text.family'); +@def textWeight value('theme.status.text.weight'); + +@def lineHeight value('theme.status.lineHeight'); + +@def borderWidth value('theme.status.border.toString'); +@def borderColor value('theme.status.border.color'); +@def borderStyle value('theme.status.border.style'); + +@def padding value('theme.status.padding.toString'); + +.status { + height: 21px; + line-height: lineHeight; + cursor: default; + padding: padding; +} + +.status .statusText { + line-height: lineHeight; + font-size: textSize; + font-family: textFamily; + font-weight: textWeight; + color: textColor; +} + +.status .statusIcon { + display: none; + width: 18px; + float: left; + padding-top: 2px; +} + + +.statusBox { + border-width: borderWidth; + border-style: borderStyle; + border-color: borderColor; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/status/Css3BoxStatusAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/status/Css3BoxStatusAppearance.java new file mode 100644 index 0000000..03c3ce0 --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/status/Css3BoxStatusAppearance.java @@ -0,0 +1,34 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.status; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.sencha.gxt.theme.base.client.status.BoxStatusBaseAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; +import com.sencha.gxt.widget.core.client.Status.BoxStatusAppearance; + +public class Css3BoxStatusAppearance extends BoxStatusBaseAppearance implements BoxStatusAppearance { + + public interface Css3BoxStatusResources extends BoxStatusResources, ClientBundle { + @Override + @Source("Css3BoxStatus.css") + Css3BoxStatusStyle style(); + + ThemeDetails theme(); + } + + public interface Css3BoxStatusStyle extends BoxStatusStyle { + + } + + public Css3BoxStatusAppearance() { + super(GWT.create(Css3BoxStatusResources.class), + GWT.create(BoxTemplate.class)); + } +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/status/Css3Status.css b/src/com/sencha/gxt/theme/neptune/client/base/status/Css3Status.css new file mode 100644 index 0000000..239a8fb --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/status/Css3Status.css @@ -0,0 +1,37 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +@def textColor value('theme.status.text.color'); +@def textSize value('theme.status.text.size'); +@def textFamily value('theme.status.text.family'); +@def textWeight value('theme.status.text.weight'); + +@def lineHeight value('theme.status.lineHeight'); + +@def padding value('theme.status.padding.toString'); + +.status { + height: 21px; + line-height: lineHeight; + cursor: default; + padding: padding; +} + +.status .statusText { + line-height: lineHeight; + font-size: textSize; + font-family: textFamily; + font-weight: textWeight; + color: textColor; +} + +.status .statusIcon { + display: none; + width: 18px; + float: left; + padding-top: 2px; +} diff --git a/src/com/sencha/gxt/theme/neptune/client/base/status/Css3StatusAppearance.java b/src/com/sencha/gxt/theme/neptune/client/base/status/Css3StatusAppearance.java new file mode 100644 index 0000000..dc49b7a --- /dev/null +++ b/src/com/sencha/gxt/theme/neptune/client/base/status/Css3StatusAppearance.java @@ -0,0 +1,29 @@ +/** + * Sencha GXT 3.1.1 - Sencha for GWT + * Copyright(c) 2007-2014, Sencha, Inc. + * licensing@sencha.com + * + * http://www.sencha.com/products/gxt/license/ + */ +package com.sencha.gxt.theme.neptune.client.base.status; + +import com.google.gwt.core.shared.GWT; +import com.sencha.gxt.theme.base.client.status.StatusDefaultAppearance; +import com.sencha.gxt.theme.neptune.client.ThemeDetails; + +public class Css3StatusAppearance extends StatusDefaultAppearance { + public interface Css3StatusResources extends StatusResources { + @Override + @Source("Css3Status.css") + Css3StatusStyles style(); + + ThemeDetails theme(); + } + public interface Css3StatusStyles extends StatusStyle { + + } + + public Css3StatusAppearance() { + super(GWT.create(Css3StatusResources.class), GWT.