Updated Accounting Manager
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/accounting-manager@117342 82a268e6-3cf1-43bd-a215-b396298e98cf
|
@ -4,9 +4,6 @@
|
|||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
<dependent-module archiveName="accounting-manager-theme-0.0.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/accounting-manager-theme/accounting-manager-theme">
|
||||
<dependency-type>uses</dependency-type>
|
||||
</dependent-module>
|
||||
<property name="java-output-path" value="/tabular-data-manager/target/tabular-data-manager-2.6.0-SNAPSHOT/WEB-INF/classes"/>
|
||||
<property name="context-root" value="accounting-manager"/>
|
||||
</wb-module>
|
||||
|
|
12
pom.xml
|
@ -195,13 +195,17 @@
|
|||
<version>[0.2.0-SNAPSHOT,1.0.0-SNAPSHOT)</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Accounting Manager Theme -->
|
||||
<!-- Accounting Manager Theme <dependency> <groupId>org.gcube.portlets.admin</groupId>
|
||||
<artifactId>accounting-manager-theme</artifactId> <version>[0.0.1-SNAPSHOT,
|
||||
2.0.0-SNAPSHOT)</version> </dependency> -->
|
||||
|
||||
<dependency>
|
||||
<groupId>org.gcube.portlets.admin</groupId>
|
||||
<artifactId>accounting-manager-theme</artifactId>
|
||||
<version>[0.0.1-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||
<groupId>com.sencha.gxt</groupId>
|
||||
<artifactId>gxt-theme-neptune</artifactId>
|
||||
<version>3.1.1</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- Accounting Analytics -->
|
||||
<dependency>
|
||||
<groupId>org.gcube.accounting</groupId>
|
||||
|
|
|
@ -0,0 +1,321 @@
|
|||
/**
|
||||
* 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.tabs.borderColor');
|
||||
@def bodyBackgroundColor value('theme.tabs.bodyBackgroundColor');
|
||||
/*@def cornerRadius value('theme.tabs.borderRadius', 'px');*/
|
||||
|
||||
@def cornerRadius 8px;
|
||||
@def tabItemMarginTop 2px;
|
||||
@def lastStopColor value('theme.tabs.lastStopColor');
|
||||
@def headerGradient value('theme.tabs.gradient');
|
||||
@def hoverGradient value('theme.tabs.hoverGradient');
|
||||
@def inactiveHeaderGradient value('theme.tabs.inactiveGradient');
|
||||
@def tabStripGradient value('theme.tabs.tabStripGradient');
|
||||
|
||||
@def headingTextColor value('theme.tabs.headingText.color');
|
||||
@def headingTextSize value('theme.tabs.headingText.size');
|
||||
@def headingTextWeight value('theme.tabs.headingText.weight');
|
||||
@def headingTextFont value('theme.tabs.headingText.family');
|
||||
|
||||
@def hoverHeadingTextColor value('theme.tabs.hoverHeadingText.color');
|
||||
@def hoverTextSize value('theme.tabs.hoverHeadingText.size');
|
||||
@def hoverHeadingTextWeight value('theme.tabs.hoverHeadingText.weight');
|
||||
@def hoverHeadingTextFont value('theme.tabs.hoverHeadingText.family');
|
||||
|
||||
@def activeHeadingTextColor value('theme.tabs.activeHeadingText.color');
|
||||
@def activeHeadingTextSize value('theme.tabs.activeHeadingText.size');
|
||||
@def activeHeadingTextWeight value('theme.tabs.activeHeadingText.weight');
|
||||
@def activeHeadingTextFont value('theme.tabs.activeHeadingText.family');
|
||||
|
||||
@def tabLeftPadding value('theme.tabs.padding.left', 'px');
|
||||
|
||||
/*@def tabLeftPaddingIcon value('theme.tabs.paddingWithIcon.left', 'px');*//*extra space for icon, default to 16px for icon*/
|
||||
|
||||
|
||||
@def tabLeftPaddingIcon 50px;
|
||||
|
||||
@def tabRightPadding value('theme.tabs.padding.right', 'px');
|
||||
@def tabRightPaddingClosable value('theme.tabs.paddingWithClosable.right', 'px');/*extra space for close icon*/
|
||||
|
||||
@def tabIconLeftOffset value('theme.tabs.iconLeftOffset', 'px');
|
||||
@def tabIconTopOffset value('theme.tabs.iconTopOffset', 'px');
|
||||
|
||||
@def scrollerBackgroundColor value('theme.tabs.scrollerBackgroundColor');
|
||||
@def scrollerWidth value('theme.tabs.scrollerWidth', 'px');
|
||||
|
||||
/*
|
||||
@def tabHeight value('theme.tabs.tabHeight', 'px');
|
||||
*/
|
||||
@def tabHeight 56px;
|
||||
@def tabSpacing value('theme.tabs.tabSpacing', 'px');
|
||||
|
||||
@def tabItemBorderLeft value('theme.tabs.tabItemBorderLeft');
|
||||
@def tabItemBorderTop value('theme.tabs.tabItemBorderTop');
|
||||
@def tabItemBorderRight value('theme.tabs.tabItemBorderRight');
|
||||
|
||||
@def tabStripPaddingTop value('theme.tabs.tabStripPadding.top','px');
|
||||
@def tabBarBorder value('theme.tabs.tabBarBorder');
|
||||
@def tabBarBottomHeight value('theme.tabs.tabBarBottomHeight', 'px');
|
||||
@def tabStripBottomBorder value('theme.tabs.tabStripBottomBorder');
|
||||
@def tabBodyBorder value('theme.tabs.tabBodyBorder');
|
||||
@def tabTextPadding value('theme.tabs.tabTextPadding.toString');
|
||||
@def tabTexPaddingTop 16px;
|
||||
|
||||
.tab {
|
||||
overflow: hidden;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.tabBar {
|
||||
background-color: lastStopColor;
|
||||
border: tabBarBorder;
|
||||
overflow: hidden;
|
||||
padding-bottom: tabBarBottomHeight;
|
||||
}
|
||||
|
||||
.tabStripWrap {
|
||||
background: -webkit-linear-gradient(top, tabStripGradient); /* Chrome10+,Safari5.1+ */
|
||||
background: linear-gradient(to bottom, tabStripGradient); /* W3C */
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
padding-top: tabStripPaddingTop;
|
||||
}
|
||||
|
||||
.tabStrip {
|
||||
display: block;
|
||||
/* widths great than this in ie8 causes north / south resize handles to have white background when tab panel put into window */
|
||||
/* width: 65520px; */
|
||||
whidth: auto;
|
||||
float: left;
|
||||
|
||||
background: repeat-x bottom;
|
||||
border-bottom: tabStripBottomBorder;
|
||||
}
|
||||
|
||||
li.tabItem {
|
||||
float: left;
|
||||
position: relative;
|
||||
margin-right: tabSpacing;
|
||||
height: tabHeight;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabStripActive.tabItem {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.tabStrip li.tabEdge {
|
||||
float: left;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
border: 0 none !important;
|
||||
font-size: 1px !important;
|
||||
line-height: 1px !important;
|
||||
overflow: hidden;
|
||||
background: transparent !important;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.tabStrip a, .tabStrip span, .tabStrip em {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.tabStrip a {
|
||||
text-decoration: none !important;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.tabStripInner {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.tabStripText {
|
||||
font: normal headingTextWeight headingTextSize headingTextFont;
|
||||
color: headingTextColor;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
padding: tabTextPadding;
|
||||
padding-top: tabTexPaddingTop;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.tabWithIcon .tabStripText {
|
||||
padding-left: tabLeftPaddingIcon;
|
||||
background-position: 0 3px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.tabStripActive, .tabStripActive a.tabRight {
|
||||
cursor: default;
|
||||
}
|
||||
.tabStripOver .tabStripText {
|
||||
font: normal hoverHeadingTextWeight hoverHeadingTextSize hoverHeadingTextFont;
|
||||
color: hoverHeadingTextColor;
|
||||
}
|
||||
|
||||
.tabStripActive .tabStripText {
|
||||
cursor: default;
|
||||
margin-bottom: -1px;
|
||||
font: normal activeHeadingTextWeight activeHeadingTextSize activeHeadingTextFont;
|
||||
color: activeHeadingTextColor;
|
||||
}
|
||||
|
||||
@sprite .tabStrip .tabStripClosable a.tabStripClose {
|
||||
gwt-image: "tabClose";
|
||||
}
|
||||
|
||||
@sprite .tabStrip .tabStripClosable a.tabStripClose:hover {
|
||||
gwt-image: "tabCloseOver";
|
||||
}
|
||||
|
||||
.tabBody {
|
||||
overflow: hidden;
|
||||
background-color: bodyBackgroundColor;
|
||||
}
|
||||
|
||||
.tabStripActive .tabRight {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.tabStripActive .tabStripText {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.tabStrip .tabStripClose {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tabStripClosable .tabStripClose {
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
cursor: pointer;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.tabStripClosable .tabStripClose {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.tabStripActive .tabStripClose {
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
.tabStripClosable .tabStripClose:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.tabBody {
|
||||
border: tabBodyBorder;
|
||||
border-top: 0 none;
|
||||
}
|
||||
|
||||
.tabScrolling .tabStripWrap {
|
||||
margin-left: scrollerWidth;
|
||||
margin-right: scrollerWidth;
|
||||
}
|
||||
|
||||
.tabScrolling {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tabImage {
|
||||
position: absolute;
|
||||
|
||||
top: tabIconTopOffset;
|
||||
left: tabIconLeftOffset;
|
||||
}
|
||||
|
||||
.tabStripOver.tabItem {
|
||||
background: -webkit-linear-gradient(top, hoverGradient); /* Chrome10+,Safari5.1+ */
|
||||
background: linear-gradient(to bottom, hoverGradient); /* W3C */
|
||||
|
||||
margin-bottom: -1px;
|
||||
border-bottom: 1px solid lastStopColor;
|
||||
}
|
||||
|
||||
.tabStripActive.tabItem {
|
||||
background: -webkit-linear-gradient(top, headerGradient); /* Chrome10+,Safari5.1+ */
|
||||
background: linear-gradient(to bottom, headerGradient); /* W3C */
|
||||
|
||||
margin-bottom: -1px;
|
||||
border-bottom: 1px solid lastStopColor;
|
||||
}
|
||||
|
||||
.tabItem {
|
||||
border-top-left-radius: cornerRadius;
|
||||
border-top-right-radius: cornerRadius;
|
||||
border-top: tabItemBorderTop;
|
||||
border-left: tabItemBorderLeft;
|
||||
border-right: tabItemBorderRight;
|
||||
|
||||
margin-top: tabItemMarginTop;
|
||||
|
||||
padding-left: tabLeftPadding;
|
||||
padding-right: tabRightPadding;
|
||||
|
||||
background: -webkit-linear-gradient(top, inactiveHeaderGradient); /* Chrome10+,Safari5.1+ */
|
||||
background: linear-gradient(to bottom, inactiveHeaderGradient); /* W3C */
|
||||
}
|
||||
.tabItem.tabStripClosable {
|
||||
padding-right: tabRightPaddingClosable;
|
||||
}
|
||||
|
||||
@sprite .tabScrollerLeft {
|
||||
gwt-image: "scrollerLeft";
|
||||
width: scrollerWidth;
|
||||
background-position: center;
|
||||
background-color: scrollerBackgroundColor;
|
||||
|
||||
|
||||
|
||||
border: none;
|
||||
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabScrollerLeftOver {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
@sprite .tabScrollerRight {
|
||||
gwt-image: "scrollerRight";
|
||||
width: scrollerWidth;
|
||||
|
||||
background-position: center;
|
||||
background-color: scrollerBackgroundColor;
|
||||
|
||||
border: none;
|
||||
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabScrollerLeftDisabled, .tabScrollerRightDisabled {
|
||||
cursor: default;
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.tabScrollerRightOver {
|
||||
opacity: .7;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
<div class="{style.tab}">
|
||||
<div class="{style.tabBar}">
|
||||
<div class="{style.tabStripWrap}">
|
||||
<ul class="{style.tabStrip}">
|
||||
<li class="{style.tabEdge}"></li>
|
||||
<div class="x-clear"></div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="{style.tabBody}"></div>
|
||||
</div>
|
|
@ -0,0 +1,312 @@
|
|||
package org.gcube.portlets.admin.accountingmanager.client.custom;
|
||||
|
||||
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.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.XDOM;
|
||||
import com.sencha.gxt.core.client.dom.XElement;
|
||||
import com.sencha.gxt.core.client.resources.StyleInjectorHelper;
|
||||
import com.sencha.gxt.core.client.resources.ThemeStyles;
|
||||
import com.sencha.gxt.core.client.util.IconHelper;
|
||||
import com.sencha.gxt.theme.neptune.client.base.tabs.Css3TabPanelAppearance.Css3TabPanelResources;
|
||||
import com.sencha.gxt.widget.core.client.TabItemConfig;
|
||||
import com.sencha.gxt.widget.core.client.TabPanel.TabPanelAppearance;
|
||||
|
||||
|
||||
public class Css3BigTabPanelAppearance implements TabPanelAppearance {
|
||||
|
||||
public interface ItemTemplate extends XTemplates {
|
||||
@XTemplate(source = "Css3BigTabPanelTabItem.html")
|
||||
SafeHtml render(Css3TabPanelStyle style, TabItemConfig config);
|
||||
}
|
||||
|
||||
public interface Css3BigTabPanelResources extends Css3TabPanelResources {
|
||||
@Source("Css3BigTabPanel.css")
|
||||
Css3TabPanelStyle style();
|
||||
|
||||
/*
|
||||
ThemeDetails theme();
|
||||
|
||||
ImageResource tabClose();
|
||||
|
||||
ImageResource tabCloseOver();
|
||||
|
||||
ImageResource scrollerLeft();
|
||||
|
||||
ImageResource scrollerRight();
|
||||
*/
|
||||
}
|
||||
|
||||
public interface Css3TabPanelStyle extends com.sencha.gxt.theme.neptune.client.base.tabs.Css3TabPanelAppearance.Css3TabPanelStyle {
|
||||
/** the entire tab panel */
|
||||
String tab();
|
||||
|
||||
/** contents of the tab panel */
|
||||
String tabBody();
|
||||
|
||||
String tabEdge();
|
||||
|
||||
/** tab bar, when above the body */
|
||||
String tabBar();
|
||||
|
||||
/** icon element inside a tab item */
|
||||
String tabImage();
|
||||
|
||||
/** the tab item itself */
|
||||
String tabItem();
|
||||
|
||||
String tabRight();
|
||||
|
||||
String tabScrollerLeft();
|
||||
|
||||
String tabScrollerLeftDisabled();
|
||||
|
||||
String tabScrollerLeftOver();
|
||||
|
||||
String tabScrollerRight();
|
||||
|
||||
String tabScrollerRightDisabled();
|
||||
|
||||
String tabScrollerRightOver();
|
||||
|
||||
String tabScrolling();
|
||||
|
||||
String tabStrip();
|
||||
|
||||
/** marker on the tab item that it is active */
|
||||
String tabStripActive();
|
||||
|
||||
/** marker on the tab item that it may be closed */
|
||||
String tabStripClosable();
|
||||
|
||||
/** close icon within a tab item, may not be visible */
|
||||
String tabStripClose();
|
||||
|
||||
String tabStripInner();
|
||||
|
||||
/** marker on the tab item that it is hovered */
|
||||
String tabStripOver();
|
||||
|
||||
/** text element inside the tab item */
|
||||
String tabStripText();
|
||||
|
||||
String tabStripWrap();
|
||||
|
||||
/** extra marker on the tab item to indicate that there is an icon */
|
||||
String tabWithIcon();
|
||||
}
|
||||
|
||||
public interface Css3TabPanelTemplates extends XTemplates {
|
||||
@XTemplate(source = "Css3BigTabPanel.html")
|
||||
SafeHtml render(Css3TabPanelStyle style);
|
||||
}
|
||||
|
||||
protected ItemTemplate itemTemplate = GWT.<ItemTemplate> create(ItemTemplate.class);
|
||||
protected final Css3TabPanelStyle style;
|
||||
protected Css3TabPanelTemplates template;
|
||||
|
||||
private static final String ITEM_SELECTOR = "li";
|
||||
|
||||
public Css3BigTabPanelAppearance() {
|
||||
this(GWT.<Css3BigTabPanelResources> create(Css3BigTabPanelResources.class));
|
||||
}
|
||||
|
||||
public Css3BigTabPanelAppearance(Css3BigTabPanelResources resources) {
|
||||
this(resources, GWT.<Css3TabPanelTemplates> create(Css3TabPanelTemplates.class));
|
||||
}
|
||||
|
||||
public Css3BigTabPanelAppearance(Css3BigTabPanelResources resources, Css3TabPanelTemplates template) {
|
||||
this.style = resources.style();
|
||||
this.template = template;
|
||||
|
||||
StyleInjectorHelper.ensureInjected(this.style, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createScrollers(XElement parent) {
|
||||
int h = getStripWrap(parent).getOffsetHeight();
|
||||
XElement scrollLeft = getBar(parent).insertFirst("<div class='" + style.tabScrollerLeft() + "'></div>");
|
||||
scrollLeft.setId(XDOM.getUniqueId());
|
||||
scrollLeft.setHeight(h);
|
||||
|
||||
XElement scrollRight = getBar(parent).insertFirst("<div class='" + style.tabScrollerRight() + "'></div>");
|
||||
scrollRight.setId(XDOM.getUniqueId());
|
||||
scrollRight.setHeight(h);
|
||||
}
|
||||
|
||||
@Override
|
||||
public XElement getBar(XElement parent) {
|
||||
return parent.getFirstChildElement().cast();
|
||||
}
|
||||
|
||||
@Override
|
||||
public XElement getBody(XElement parent) {
|
||||
return parent.selectNode("." + style.tabBody());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getItemSelector() {
|
||||
return ITEM_SELECTOR;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XElement getScrollLeft(XElement parent) {
|
||||
return getBar(parent).selectNode("." + style.tabScrollerLeft());
|
||||
}
|
||||
|
||||
@Override
|
||||
public XElement getScrollRight(XElement parent) {
|
||||
return getBar(parent).selectNode("." + style.tabScrollerRight());
|
||||
}
|
||||
|
||||
public XElement getStrip(XElement parent) {
|
||||
return parent.selectNode("." + style.tabStrip());
|
||||
}
|
||||
|
||||
@Override
|
||||
public XElement getStripEdge(XElement parent) {
|
||||
return parent.selectNode("." + style.tabEdge());
|
||||
}
|
||||
|
||||
@Override
|
||||
public XElement getStripWrap(XElement parent) {
|
||||
return parent.selectNode("." + style.tabStripWrap());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insert(XElement parent, TabItemConfig config, int index) {
|
||||
XElement item = XDOM.create(itemTemplate.render(style, config).asString());
|
||||
item.setClassName(ThemeStyles.get().style().disabled(), !config.isEnabled());
|
||||
|
||||
if (config.isHTML()) {
|
||||
XElement textEl = item.selectNode("." + style.tabStripText());
|
||||
textEl.setInnerHTML(config.getHTML());
|
||||
}
|
||||
|
||||
getStrip(parent).insertChild(item, index);
|
||||
|
||||
if (config.getIcon() != null) {
|
||||
setItemIcon(item, config.getIcon());
|
||||
}
|
||||
|
||||
if (config.isClosable()) {
|
||||
item.addClassName(style.tabStripClosable());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isClose(XElement target) {
|
||||
return target.is("." + style.tabStripClose());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeselect(Element item) {
|
||||
item.removeClassName(style.tabStripActive());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMouseOut(XElement parent, XElement target) {
|
||||
NodeList<Element> nodeList = parent.select("." + style.tabStripOver());
|
||||
for (int i = 0; i < nodeList.getLength(); i++) {
|
||||
nodeList.getItem(i).removeClassName(style.tabStripOver());
|
||||
}
|
||||
if (target.is("." + style.tabScrollerLeft())) {
|
||||
target.removeClassName(style.tabScrollerLeftOver());
|
||||
} else if (target.is("." + style.tabScrollerRight())) {
|
||||
target.removeClassName(style.tabScrollerRightOver());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMouseOver(XElement parent, XElement target) {
|
||||
Element item = findItem(target);
|
||||
if (item != null) {
|
||||
item.addClassName(style.tabStripOver());
|
||||
} else if (target.is("." + style.tabScrollerLeft())) {
|
||||
target.addClassName(style.tabScrollerLeftOver());
|
||||
} else if (target.is("." + style.tabScrollerRight())) {
|
||||
target.addClassName(style.tabScrollerRightOver());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScrolling(XElement parent, boolean scrolling) {
|
||||
parent.selectNode("." + style.tabBar()).setClassName(style.tabScrolling(), scrolling);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSelect(Element item) {
|
||||
item.addClassName(style.tabStripActive());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(SafeHtmlBuilder builder) {
|
||||
builder.append(template.render(style));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setItemWidth(XElement element, int width) {
|
||||
XElement inner = element.selectNode("." + style.tabStripInner());
|
||||
int tw = element.getOffsetWidth();
|
||||
int iw = inner.getOffsetWidth();
|
||||
inner.setWidth(width - (tw - iw));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateItem(XElement item, TabItemConfig config) {
|
||||
XElement textEl = item.selectNode("." + style.tabStripText());
|
||||
|
||||
if (config.isHTML()) {
|
||||
textEl.setInnerHTML(config.getHTML());
|
||||
} else {
|
||||
textEl.setInnerText(config.getText());
|
||||
}
|
||||
|
||||
setItemIcon(item, config.getIcon());
|
||||
|
||||
item.setClassName(ThemeStyles.get().style().disabled(), !config.isEnabled());
|
||||
|
||||
item.setClassName(style.tabStripClosable(), config.isClosable());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateScrollButtons(XElement parent) {
|
||||
int pos = getScrollPos(parent);
|
||||
getScrollLeft(parent).setClassName(style.tabScrollerLeftDisabled(), pos == 0);
|
||||
getScrollRight(parent).setClassName(style.tabScrollerRightDisabled(),
|
||||
pos >= (getScrollWidth(parent) - getScrollArea(parent) - 2));
|
||||
}
|
||||
|
||||
protected Element findItem(Element target) {
|
||||
return target.<XElement> cast().findParentElement(ITEM_SELECTOR, -1);
|
||||
}
|
||||
|
||||
protected void setItemIcon(XElement item, ImageResource icon) {
|
||||
XElement node = item.selectNode("." + style.tabImage());
|
||||
if (node != null) {
|
||||
node.removeFromParent();
|
||||
}
|
||||
if (icon != null) {
|
||||
Element e = IconHelper.getElement(icon);
|
||||
e.setClassName(style.tabImage());
|
||||
item.appendChild(e);
|
||||
}
|
||||
item.setClassName(style.tabWithIcon(), icon != null);
|
||||
}
|
||||
|
||||
private int getScrollPos(XElement parent) {
|
||||
return getStripWrap(parent).getScrollLeft();
|
||||
}
|
||||
|
||||
private int getScrollArea(XElement parent) {
|
||||
return Math.max(0, getStripWrap(parent).getClientWidth());
|
||||
}
|
||||
|
||||
private int getScrollWidth(XElement parent) {
|
||||
return getStripEdge(parent).getOffsetsTo(getStripWrap(parent)).getX() + getScrollPos(parent);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
<li class="{style.tabItem}">
|
||||
<a class="{style.tabStripClose}"></a>
|
||||
<span class="{style.tabStripText}">{config.text}</span>
|
||||
</li>
|
After Width: | Height: | Size: 231 B |
After Width: | Height: | Size: 233 B |
After Width: | Height: | Size: 131 B |
After Width: | Height: | Size: 125 B |
|
@ -1,5 +1,6 @@
|
|||
package org.gcube.portlets.admin.accountingmanager.client.menu;
|
||||
|
||||
import org.gcube.portlets.admin.accountingmanager.client.custom.Css3BigTabPanelAppearance;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.event.AccountingMenuEvent;
|
||||
import org.gcube.portlets.admin.accountingmanager.client.resource.AccountingManagerResources;
|
||||
import org.gcube.portlets.admin.accountingmanager.shared.data.AccountingType;
|
||||
|
@ -10,7 +11,6 @@ import com.google.gwt.event.logical.shared.SelectionEvent;
|
|||
import com.google.gwt.event.logical.shared.SelectionHandler;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sencha.gxt.theme.neptune.client.base.tabs.Css3BigTabPanelAppearance;
|
||||
import com.sencha.gxt.widget.core.client.TabItemConfig;
|
||||
import com.sencha.gxt.widget.core.client.TabPanel;
|
||||
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
<inherits name="com.allen_sauer.gwt.log.gwt-log-TRACE" />
|
||||
|
||||
<!-- Debug CSS style -->
|
||||
<!-- <set-configuration-property name="CssResource.style"
|
||||
value="pretty" /> -->
|
||||
<!-- <set-configuration-property name="CssResource.style" value="pretty"
|
||||
/> -->
|
||||
|
||||
<!--<inherits name="org.moxieapps.gwt.highcharts.Highcharts"/> -->
|
||||
<inherits name='com.github.highcharts4gwt.highcharts' />
|
||||
|
@ -48,17 +48,17 @@
|
|||
name="locale" values="es" /> <set-property name="locale" value="en, it, es"
|
||||
/> <set-property-fallback name="locale" value="en" /> -->
|
||||
|
||||
<!-- <set-property name="log_ConsoleLogger" value="ENABLED" /> <set-property
|
||||
name="log_DivLogger" value="ENABLED" /> <set-property name="log_GWTLogger"
|
||||
value="ENABLED" /> <set-property name="log_SystemLogger" value="ENABLED"
|
||||
/> -->
|
||||
<!-- <set-property name="log_ConsoleLogger" value="ENABLED" />
|
||||
<set-property name="log_DivLogger" value="ENABLED" />
|
||||
<set-property name="log_GWTLogger" value="ENABLED" />
|
||||
<set-property name="log_SystemLogger" value="ENABLED" /> -->
|
||||
<!-- Not in GWT 2.6 <set-property name="log_FirebugLogger" value="ENABLED"
|
||||
/> -->
|
||||
|
||||
<set-property name="log_ConsoleLogger" value="DISABLED" />
|
||||
<set-property name="log_DivLogger" value="DISABLED" />
|
||||
<set-property name="log_GWTLogger" value="DISABLED" />
|
||||
<set-property name="log_SystemLogger" value="DISABLED" />
|
||||
<set-property name="log_ConsoleLogger" value="DISABLED" /> <set-property
|
||||
name="log_DivLogger" value="DISABLED" /> <set-property name="log_GWTLogger"
|
||||
value="DISABLED" /> <set-property name="log_SystemLogger" value="DISABLED"
|
||||
/>
|
||||
<!-- Not in GWT 2.6 <set-property name="log_FirebugLogger" value="DISABLED"
|
||||
/> -->
|
||||
|
||||
|
|
|
@ -0,0 +1,321 @@
|
|||
/**
|
||||
* 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.tabs.borderColor');
|
||||
@def bodyBackgroundColor value('theme.tabs.bodyBackgroundColor');
|
||||
/*@def cornerRadius value('theme.tabs.borderRadius', 'px');*/
|
||||
|
||||
@def cornerRadius 8px;
|
||||
@def tabItemMarginTop 2px;
|
||||
@def lastStopColor value('theme.tabs.lastStopColor');
|
||||
@def headerGradient value('theme.tabs.gradient');
|
||||
@def hoverGradient value('theme.tabs.hoverGradient');
|
||||
@def inactiveHeaderGradient value('theme.tabs.inactiveGradient');
|
||||
@def tabStripGradient value('theme.tabs.tabStripGradient');
|
||||
|
||||
@def headingTextColor value('theme.tabs.headingText.color');
|
||||
@def headingTextSize value('theme.tabs.headingText.size');
|
||||
@def headingTextWeight value('theme.tabs.headingText.weight');
|
||||
@def headingTextFont value('theme.tabs.headingText.family');
|
||||
|
||||
@def hoverHeadingTextColor value('theme.tabs.hoverHeadingText.color');
|
||||
@def hoverTextSize value('theme.tabs.hoverHeadingText.size');
|
||||
@def hoverHeadingTextWeight value('theme.tabs.hoverHeadingText.weight');
|
||||
@def hoverHeadingTextFont value('theme.tabs.hoverHeadingText.family');
|
||||
|
||||
@def activeHeadingTextColor value('theme.tabs.activeHeadingText.color');
|
||||
@def activeHeadingTextSize value('theme.tabs.activeHeadingText.size');
|
||||
@def activeHeadingTextWeight value('theme.tabs.activeHeadingText.weight');
|
||||
@def activeHeadingTextFont value('theme.tabs.activeHeadingText.family');
|
||||
|
||||
@def tabLeftPadding value('theme.tabs.padding.left', 'px');
|
||||
|
||||
/*@def tabLeftPaddingIcon value('theme.tabs.paddingWithIcon.left', 'px');*//*extra space for icon, default to 16px for icon*/
|
||||
|
||||
|
||||
@def tabLeftPaddingIcon 50px;
|
||||
|
||||
@def tabRightPadding value('theme.tabs.padding.right', 'px');
|
||||
@def tabRightPaddingClosable value('theme.tabs.paddingWithClosable.right', 'px');/*extra space for close icon*/
|
||||
|
||||
@def tabIconLeftOffset value('theme.tabs.iconLeftOffset', 'px');
|
||||
@def tabIconTopOffset value('theme.tabs.iconTopOffset', 'px');
|
||||
|
||||
@def scrollerBackgroundColor value('theme.tabs.scrollerBackgroundColor');
|
||||
@def scrollerWidth value('theme.tabs.scrollerWidth', 'px');
|
||||
|
||||
/*
|
||||
@def tabHeight value('theme.tabs.tabHeight', 'px');
|
||||
*/
|
||||
@def tabHeight 56px;
|
||||
@def tabSpacing value('theme.tabs.tabSpacing', 'px');
|
||||
|
||||
@def tabItemBorderLeft value('theme.tabs.tabItemBorderLeft');
|
||||
@def tabItemBorderTop value('theme.tabs.tabItemBorderTop');
|
||||
@def tabItemBorderRight value('theme.tabs.tabItemBorderRight');
|
||||
|
||||
@def tabStripPaddingTop value('theme.tabs.tabStripPadding.top','px');
|
||||
@def tabBarBorder value('theme.tabs.tabBarBorder');
|
||||
@def tabBarBottomHeight value('theme.tabs.tabBarBottomHeight', 'px');
|
||||
@def tabStripBottomBorder value('theme.tabs.tabStripBottomBorder');
|
||||
@def tabBodyBorder value('theme.tabs.tabBodyBorder');
|
||||
@def tabTextPadding value('theme.tabs.tabTextPadding.toString');
|
||||
@def tabTexPaddingTop 16px;
|
||||
|
||||
.tab {
|
||||
overflow: hidden;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.tabBar {
|
||||
background-color: lastStopColor;
|
||||
border: tabBarBorder;
|
||||
overflow: hidden;
|
||||
padding-bottom: tabBarBottomHeight;
|
||||
}
|
||||
|
||||
.tabStripWrap {
|
||||
background: -webkit-linear-gradient(top, tabStripGradient); /* Chrome10+,Safari5.1+ */
|
||||
background: linear-gradient(to bottom, tabStripGradient); /* W3C */
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
padding-top: tabStripPaddingTop;
|
||||
}
|
||||
|
||||
.tabStrip {
|
||||
display: block;
|
||||
/* widths great than this in ie8 causes north / south resize handles to have white background when tab panel put into window */
|
||||
/* width: 65520px; */
|
||||
whidth: auto;
|
||||
float: left;
|
||||
|
||||
background: repeat-x bottom;
|
||||
border-bottom: tabStripBottomBorder;
|
||||
}
|
||||
|
||||
li.tabItem {
|
||||
float: left;
|
||||
position: relative;
|
||||
margin-right: tabSpacing;
|
||||
height: tabHeight;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabStripActive.tabItem {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.tabStrip li.tabEdge {
|
||||
float: left;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
border: 0 none !important;
|
||||
font-size: 1px !important;
|
||||
line-height: 1px !important;
|
||||
overflow: hidden;
|
||||
background: transparent !important;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.tabStrip a, .tabStrip span, .tabStrip em {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.tabStrip a {
|
||||
text-decoration: none !important;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.tabStripInner {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.tabStripText {
|
||||
font: normal headingTextWeight headingTextSize headingTextFont;
|
||||
color: headingTextColor;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
padding: tabTextPadding;
|
||||
padding-top: tabTexPaddingTop;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.tabWithIcon .tabStripText {
|
||||
padding-left: tabLeftPaddingIcon;
|
||||
background-position: 0 3px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.tabStripActive, .tabStripActive a.tabRight {
|
||||
cursor: default;
|
||||
}
|
||||
.tabStripOver .tabStripText {
|
||||
font: normal hoverHeadingTextWeight hoverHeadingTextSize hoverHeadingTextFont;
|
||||
color: hoverHeadingTextColor;
|
||||
}
|
||||
|
||||
.tabStripActive .tabStripText {
|
||||
cursor: default;
|
||||
margin-bottom: -1px;
|
||||
font: normal activeHeadingTextWeight activeHeadingTextSize activeHeadingTextFont;
|
||||
color: activeHeadingTextColor;
|
||||
}
|
||||
|
||||
@sprite .tabStrip .tabStripClosable a.tabStripClose {
|
||||
gwt-image: "tabClose";
|
||||
}
|
||||
|
||||
@sprite .tabStrip .tabStripClosable a.tabStripClose:hover {
|
||||
gwt-image: "tabCloseOver";
|
||||
}
|
||||
|
||||
.tabBody {
|
||||
overflow: hidden;
|
||||
background-color: bodyBackgroundColor;
|
||||
}
|
||||
|
||||
.tabStripActive .tabRight {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.tabStripActive .tabStripText {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.tabStrip .tabStripClose {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tabStripClosable .tabStripClose {
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
width: 11px;
|
||||
height: 11px;
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
cursor: pointer;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.tabStripClosable .tabStripClose {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.tabStripActive .tabStripClose {
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
.tabStripClosable .tabStripClose:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.tabBody {
|
||||
border: tabBodyBorder;
|
||||
border-top: 0 none;
|
||||
}
|
||||
|
||||
.tabScrolling .tabStripWrap {
|
||||
margin-left: scrollerWidth;
|
||||
margin-right: scrollerWidth;
|
||||
}
|
||||
|
||||
.tabScrolling {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tabImage {
|
||||
position: absolute;
|
||||
|
||||
top: tabIconTopOffset;
|
||||
left: tabIconLeftOffset;
|
||||
}
|
||||
|
||||
.tabStripOver.tabItem {
|
||||
background: -webkit-linear-gradient(top, hoverGradient); /* Chrome10+,Safari5.1+ */
|
||||
background: linear-gradient(to bottom, hoverGradient); /* W3C */
|
||||
|
||||
margin-bottom: -1px;
|
||||
border-bottom: 1px solid lastStopColor;
|
||||
}
|
||||
|
||||
.tabStripActive.tabItem {
|
||||
background: -webkit-linear-gradient(top, headerGradient); /* Chrome10+,Safari5.1+ */
|
||||
background: linear-gradient(to bottom, headerGradient); /* W3C */
|
||||
|
||||
margin-bottom: -1px;
|
||||
border-bottom: 1px solid lastStopColor;
|
||||
}
|
||||
|
||||
.tabItem {
|
||||
border-top-left-radius: cornerRadius;
|
||||
border-top-right-radius: cornerRadius;
|
||||
border-top: tabItemBorderTop;
|
||||
border-left: tabItemBorderLeft;
|
||||
border-right: tabItemBorderRight;
|
||||
|
||||
margin-top: tabItemMarginTop;
|
||||
|
||||
padding-left: tabLeftPadding;
|
||||
padding-right: tabRightPadding;
|
||||
|
||||
background: -webkit-linear-gradient(top, inactiveHeaderGradient); /* Chrome10+,Safari5.1+ */
|
||||
background: linear-gradient(to bottom, inactiveHeaderGradient); /* W3C */
|
||||
}
|
||||
.tabItem.tabStripClosable {
|
||||
padding-right: tabRightPaddingClosable;
|
||||
}
|
||||
|
||||
@sprite .tabScrollerLeft {
|
||||
gwt-image: "scrollerLeft";
|
||||
width: scrollerWidth;
|
||||
background-position: center;
|
||||
background-color: scrollerBackgroundColor;
|
||||
|
||||
|
||||
|
||||
border: none;
|
||||
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabScrollerLeftOver {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
@sprite .tabScrollerRight {
|
||||
gwt-image: "scrollerRight";
|
||||
width: scrollerWidth;
|
||||
|
||||
background-position: center;
|
||||
background-color: scrollerBackgroundColor;
|
||||
|
||||
border: none;
|
||||
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabScrollerLeftDisabled, .tabScrollerRightDisabled {
|
||||
cursor: default;
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.tabScrollerRightOver {
|
||||
opacity: .7;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
<div class="{style.tab}">
|
||||
<div class="{style.tabBar}">
|
||||
<div class="{style.tabStripWrap}">
|
||||
<ul class="{style.tabStrip}">
|
||||
<li class="{style.tabEdge}"></li>
|
||||
<div class="x-clear"></div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="{style.tabBody}"></div>
|
||||
</div>
|
|
@ -0,0 +1,4 @@
|
|||
<li class="{style.tabItem}">
|
||||
<a class="{style.tabStripClose}"></a>
|
||||
<span class="{style.tabStripText}">{config.text}</span>
|
||||
</li>
|
After Width: | Height: | Size: 231 B |
After Width: | Height: | Size: 233 B |
After Width: | Height: | Size: 131 B |
After Width: | Height: | Size: 125 B |
|
@ -7,13 +7,13 @@
|
|||
<link rel="stylesheet" href="<%= request.getContextPath()%>/AccountingManager/reset.css" type="text/css"/>
|
||||
<!-- <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/gxt/css/gxt-all.css" /> -->
|
||||
<link rel="stylesheet" href="<%= request.getContextPath()%>/AccountingManager.css" type="text/css">
|
||||
<script src='<%=request.getContextPath()%>/AccountingManager/AccountingManager.nocache.js'></script>
|
||||
|
||||
<script src='<%=request.getContextPath()%>/AccountingManager/js/jquery-1.11.0.min.js'></script>
|
||||
<script src='<%=request.getContextPath()%>/AccountingManager/js/highcharts.js'></script>
|
||||
<script src='<%=request.getContextPath()%>/AccountingManager/js/highcharts-3d.js'></script>
|
||||
<script src='<%=request.getContextPath()%>/AccountingManager/js/highcharts-more.js'></script>
|
||||
|
||||
<script src='<%=request.getContextPath()%>/AccountingManager/AccountingManager.nocache.js'></script>
|
||||
|
||||
|
||||
<div id="amp" style="width: 100%; height: 100%">
|
||||
</div>
|
||||
|
|