diff --git a/admin-web/src/java/org/jppf/admin/web/HeaderPanel.html b/admin-web/src/java/org/jppf/admin/web/HeaderPanel.html
index cca5b58d81..693e884a8e 100644
--- a/admin-web/src/java/org/jppf/admin/web/HeaderPanel.html
+++ b/admin-web/src/java/org/jppf/admin/web/HeaderPanel.html
@@ -29,10 +29,7 @@
diff --git a/admin-web/src/java/org/jppf/admin/web/HeaderPanel.java b/admin-web/src/java/org/jppf/admin/web/HeaderPanel.java
index 270621b215..b216fea919 100644
--- a/admin-web/src/java/org/jppf/admin/web/HeaderPanel.java
+++ b/admin-web/src/java/org/jppf/admin/web/HeaderPanel.java
@@ -46,7 +46,6 @@ public class HeaderPanel extends Panel {
public HeaderPanel() {
super("jppf.header");
final String user = JPPFWebSession.getSignedInUser();
- //String user = JPPFWebSession.get().getUserName();
final Locale locale = Session.get().getLocale();
final String s = (user != null)
? LocalizationUtils.getLocalized(getClass().getName(), "jppf.header.user.label", locale) + " " + user
@@ -62,6 +61,7 @@ protected void onSubmit(final AjaxRequestTarget target, final Form> form) {
setResponsePage(getApplication().getHomePage());
}
};
+
form.add(link);
showIPCheckBox = new CheckBox("jppf.header.show.ip", Model.of(JPPFWebSession.get().isShowIP())) {
@Override
diff --git a/admin-web/src/java/org/jppf/admin/web/JPPFWebConsoleApplication.java b/admin-web/src/java/org/jppf/admin/web/JPPFWebConsoleApplication.java
index 6a7e230fae..da75f809d5 100644
--- a/admin-web/src/java/org/jppf/admin/web/JPPFWebConsoleApplication.java
+++ b/admin-web/src/java/org/jppf/admin/web/JPPFWebConsoleApplication.java
@@ -26,11 +26,14 @@
import org.apache.wicket.page.*;
import org.apache.wicket.pageStore.*;
import org.apache.wicket.pageStore.memory.*;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.resource.*;
import org.jppf.admin.web.admin.*;
import org.jppf.admin.web.auth.LoginPage;
import org.jppf.admin.web.settings.*;
import org.jppf.admin.web.stats.StatsUpdater;
import org.jppf.admin.web.topology.TopologyPage;
+import org.jppf.admin.web.utils.ClasspathResource;
import org.jppf.client.JPPFClient;
import org.jppf.client.monitoring.jobs.*;
import org.jppf.client.monitoring.topology.TopologyManager;
@@ -88,6 +91,15 @@ public JPPFWebConsoleApplication() {
@Override
protected void init() {
super.init();
+ mountImageResource("images/exit.png");
+ mountImageResource("images/logo.gif");
+ mountImageResource("images/logo-small.gif");
+ mountImageResource("images/toolbar/upload.png");
+ mountImageResource("jppf.css");
+ mountImageResource("images/arrow-right-double-2.png");
+ mountImageResource("images/arrow-left-double-2.png");
+ mountImageResource("images/arrow-up-double-2.png");
+ mountImageResource("images/arrow-down-double-2.png");
String name = getInitParameter("jppfPersistenceClassName");
if (debugEnabled) log.debug("read persistence class name '{}' from init parameter", name);
if (name == null) {
@@ -219,9 +231,7 @@ private static final class MyPageManagerProvider extends DefaultPageManagerProvi
@Override protected IDataStore newDataStore() {
// keep everything in memory
- return new HttpSessionDataStore(new DefaultPageManagerContext(), new IDataStoreEvictionStrategy() {
- @Override public void evict(final PageTable pageTable) { }
- });
+ return new HttpSessionDataStore(new DefaultPageManagerContext(), pageTable -> {});
}
@Override protected IPageStore newPageStore(final IDataStore dataStore) { return new NullPageStore(); }
@@ -240,4 +250,41 @@ private static class NullPageStore implements IPageStore {
@Override public Object restoreAfterSerialization(final Serializable serializable) { return null; }
@Override public IManageablePage convertToPage(final Object page) { return null; }
}
+
+ /**
+ *
+ * @param key the resource key.
+ * @return a {@link ResourceReference} pointing to the image.
+ */
+ public ResourceReference getSharedImageResource(final String key) {
+ ResourceReference ref = getSharedResources().get(key);
+ if (ref == null) {
+ final ClasspathResource resource = new ClasspathResource(key);
+ getSharedResources().add(key, resource);
+ ref = getSharedResources().get(key);
+ }
+ return ref;
+ }
+
+ /**
+ *
+ * @param key the resource key.
+ * @return the url of the shared image.
+ */
+ public String getSharedImageURL(final String key) {
+ final ResourceReference ref = getSharedImageResource(key);
+ if (ref == null) return null;
+ String resourceURL = RequestCycle.get().urlFor(ref, null).toString();
+ if (resourceURL.startsWith("./")) resourceURL = resourceURL.substring(1);
+ return resourceURL;
+ }
+
+ /**
+ * Mount the resource with the specified key.
+ * @param key the resource key.
+ */
+ public void mountImageResource(final String key) {
+ final ResourceReference ref = getSharedImageResource(key);
+ mountResource("/" + key, ref);
+ }
}
diff --git a/admin-web/src/java/org/jppf/admin/web/tabletree/NodeContent.java b/admin-web/src/java/org/jppf/admin/web/tabletree/NodeContent.java
index ef13e8fa2e..457836dc47 100644
--- a/admin-web/src/java/org/jppf/admin/web/tabletree/NodeContent.java
+++ b/admin-web/src/java/org/jppf/admin/web/tabletree/NodeContent.java
@@ -23,6 +23,8 @@
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.image.ContextImage;
import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.jppf.admin.web.JPPFWebConsoleApplication;
/**
* A panel that associates a label with an icon.
@@ -38,8 +40,11 @@ public class NodeContent extends Panel {
*/
public NodeContent(final String id, final DefaultMutableTreeNode treeNode, final TreeNodeRenderer renderer, final boolean showIP) {
super(id);
+ final String contextPath = RequestCycle.get().getRequest().getContextPath();
final String iconPath = renderer.getIconPath(treeNode);
- add(new ContextImage("icon", (iconPath != null) ? iconPath : ""));
+ final String resourceURL = (iconPath != null) ? JPPFWebConsoleApplication.get().getSharedImageURL(iconPath) : null;
+ //if (debugEnabled) log.debug("resourceURL for key = {}: {}", iconPath, resourceURL);
+ add(new ContextImage("icon", (resourceURL != null) ? contextPath + resourceURL : ""));
final String text = renderer.getText(treeNode, showIP);
add(new Label("text", (text != null) ? text : ""));
}
diff --git a/admin-web/src/java/org/jppf/admin/web/utils/AbstractActionLink.java b/admin-web/src/java/org/jppf/admin/web/utils/AbstractActionLink.java
index ed4e4ebb38..5ba0a9d1dc 100644
--- a/admin-web/src/java/org/jppf/admin/web/utils/AbstractActionLink.java
+++ b/admin-web/src/java/org/jppf/admin/web/utils/AbstractActionLink.java
@@ -23,15 +23,24 @@
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.model.*;
import org.apache.wicket.request.cycle.RequestCycle;
-import org.jppf.admin.web.AbstractJPPFPage;
+import org.jppf.admin.web.*;
import org.jppf.admin.web.tabletree.*;
import org.jppf.utils.*;
+import org.slf4j.*;
/**
*
* @author Laurent Cohen
*/
public abstract class AbstractActionLink extends AjaxLink {
+ /**
+ * Logger for this class.
+ */
+ private static final Logger log = LoggerFactory.getLogger(AbstractActionLink.class);
+ /**
+ * Determines whether the debug level is enabled in the log configuration, without the cost of a method call.
+ */
+ private static final boolean debugEnabled = log.isDebugEnabled();
/**
* Determines whether this link is enabled and/or authorized.
*/
@@ -74,12 +83,20 @@ public AbstractActionLink(final String id, final IModel model, final Str
protected void onComponentTag(final ComponentTag tag) {
super.onComponentTag(tag);
final Pair pair = FileUtils.getFileNameAndExtension(imageName);
- final String format = "";
+ final String contextPath = RequestCycle.get().getRequest().getContextPath();
+ String imageKey = null;
if ((action != null) && (!action.isEnabled() || !action.isAuthorized())) {
tag.getAttributes().put("class", "button_link_disabled");
- if (pair != null) setBody(Model.of(String.format(format, pair.first() + "-disabled", pair.second())));
+ if (pair != null) imageKey = pair.first() + "-disabled";
} else {
- if (pair != null) setBody(Model.of(String.format(format, pair.first(), pair.second())));
+ if (pair != null) imageKey = pair.first();
+ }
+ if (imageKey != null) {
+ imageKey = "images/toolbar/" + imageKey + "." + pair.second();
+ final String resourceURL = JPPFWebConsoleApplication.get().getSharedImageURL(imageKey);
+ final String html = "";
+ setBody(Model.of(html));
+ if (debugEnabled) log.debug("image html for key = {}, contextPath = {}: {}", imageKey, contextPath, html);
}
setEscapeModelStrings(false);
}
diff --git a/admin-web/src/java/org/jppf/admin/web/utils/AjaxButtonWithIcon.java b/admin-web/src/java/org/jppf/admin/web/utils/AjaxButtonWithIcon.java
index 90b013a753..5ff76bfa88 100644
--- a/admin-web/src/java/org/jppf/admin/web/utils/AjaxButtonWithIcon.java
+++ b/admin-web/src/java/org/jppf/admin/web/utils/AjaxButtonWithIcon.java
@@ -22,7 +22,7 @@
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.model.*;
import org.apache.wicket.request.cycle.RequestCycle;
-import org.jppf.admin.web.AbstractJPPFPage;
+import org.jppf.admin.web.*;
import org.jppf.utils.*;
/**
@@ -102,12 +102,19 @@ protected void onComponentTag(final ComponentTag tag) {
super.onComponentTag(tag);
final Pair pair = FileUtils.getFileNameAndExtension(imageName);
final StringBuilder style = new StringBuilder();
- final String format = "background-image: url(" + RequestCycle.get().getRequest().getContextPath() + "/images/toolbar/%s.%s)";
+
+ final String contextPath = RequestCycle.get().getRequest().getContextPath();
+ String imageKey = null;
if ((action != null) && (!action.isEnabled() || !action.isAuthorized())) {
tag.getAttributes().put("class", "button_link_disabled");
- if (pair != null) style.append(String.format(format, pair.first() + "-disabled", pair.second()));
+ if (pair != null) imageKey = pair.first() + "-disabled";
} else {
- if (pair != null) style.append(String.format(format, pair.first(), pair.second()));
+ if (pair != null) imageKey = pair.first();
+ }
+ if (imageKey != null) {
+ imageKey = "images/toolbar/" + imageKey + "." + pair.second();
+ final String resourceURL = JPPFWebConsoleApplication.get().getSharedImageURL(imageKey);
+ style.append("background-image: url(" + contextPath + resourceURL + ")");
}
tag.getAttributes().put("style", style.append(FIXED_STYLE).toString());
}
diff --git a/admin-web/src/java/org/jppf/admin/web/utils/ClasspathResource.java b/admin-web/src/java/org/jppf/admin/web/utils/ClasspathResource.java
new file mode 100644
index 0000000000..5dad98fbf4
--- /dev/null
+++ b/admin-web/src/java/org/jppf/admin/web/utils/ClasspathResource.java
@@ -0,0 +1,92 @@
+/*
+ * JPPF.
+ * Copyright (C) 2005-2018 JPPF Team.
+ * http://www.jppf.org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jppf.admin.web.utils;
+
+import java.io.*;
+
+import org.apache.wicket.request.resource.ResourceStreamResource;
+import org.apache.wicket.request.resource.caching.IResourceCachingStrategy;
+import org.apache.wicket.util.resource.*;
+import org.apache.wicket.util.time.Time;
+
+/**
+ * A resource loaded from the classpath.
+ * @author Laurent Cohen
+ */
+public class ClasspathResource extends ResourceStreamResource {
+ /**
+ * Path to the resource in the classpath.
+ */
+ private final String path;
+
+ /**
+ * @param path the path to the resource in the classpath.
+ */
+ public ClasspathResource(final String path) {
+ this.path = path;
+ setFileName(new File(path).getName());
+ }
+
+ @Override
+ protected IResourceStream getResourceStream() {
+ return new ClasspathResourceStream(path);
+ }
+
+ @Override
+ protected IResourceCachingStrategy getCachingStrategy() {
+ return super.getCachingStrategy();
+ }
+
+ /**
+ * Resource stream associated with a {@link ClasspathResource}.
+ */
+ public static class ClasspathResourceStream extends AbstractResourceStream {
+ /**
+ * Path to the resource in the classpath.
+ */
+ private final String path;
+ /**
+ * Last modified date, equal to the creation date.
+ */
+ private final Time lastModified = Time.millis(System.currentTimeMillis());
+
+ /**
+ * @param path the path to the resource in the classpath.
+ */
+ public ClasspathResourceStream(final String path) {
+ this.path = path;
+ }
+
+ @Override
+ public InputStream getInputStream() throws ResourceStreamNotFoundException {
+ final InputStream is = getClass().getClassLoader().getResourceAsStream(path);
+ if (is == null) throw new ResourceStreamNotFoundException();
+ return is;
+ }
+
+ @Override
+ public void close() throws IOException {
+ }
+
+ @Override
+ public Time lastModifiedTime() {
+ return lastModified;
+ }
+ }
+}
diff --git a/admin-web/src/resources/images/arrow-down-double-2.png b/admin-web/src/resources/images/arrow-down-double-2.png
new file mode 100644
index 0000000000..4f96181eb0
Binary files /dev/null and b/admin-web/src/resources/images/arrow-down-double-2.png differ
diff --git a/admin-web/src/resources/images/arrow-left-double-2.png b/admin-web/src/resources/images/arrow-left-double-2.png
new file mode 100644
index 0000000000..6a5a3b07b5
Binary files /dev/null and b/admin-web/src/resources/images/arrow-left-double-2.png differ
diff --git a/admin-web/src/resources/images/arrow-right-double-2.png b/admin-web/src/resources/images/arrow-right-double-2.png
new file mode 100644
index 0000000000..6b51b3240e
Binary files /dev/null and b/admin-web/src/resources/images/arrow-right-double-2.png differ
diff --git a/admin-web/src/resources/images/arrow-up-double-2.png b/admin-web/src/resources/images/arrow-up-double-2.png
new file mode 100644
index 0000000000..04df135949
Binary files /dev/null and b/admin-web/src/resources/images/arrow-up-double-2.png differ
diff --git a/admin-web/webapp/images/exit.png b/admin-web/src/resources/images/exit.png
similarity index 100%
rename from admin-web/webapp/images/exit.png
rename to admin-web/src/resources/images/exit.png
diff --git a/admin-web/webapp/images/jppf-icon.ico b/admin-web/src/resources/images/jppf-icon.ico
similarity index 100%
rename from admin-web/webapp/images/jppf-icon.ico
rename to admin-web/src/resources/images/jppf-icon.ico
diff --git a/admin-web/webapp/images/logo-small.gif b/admin-web/src/resources/images/logo-small.gif
similarity index 100%
rename from admin-web/webapp/images/logo-small.gif
rename to admin-web/src/resources/images/logo-small.gif
diff --git a/admin-web/webapp/images/logo.gif b/admin-web/src/resources/images/logo.gif
similarity index 100%
rename from admin-web/webapp/images/logo.gif
rename to admin-web/src/resources/images/logo.gif
diff --git a/admin-web/webapp/images/toolbar/add.png b/admin-web/src/resources/images/toolbar/add.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/add.png
rename to admin-web/src/resources/images/toolbar/add.png
diff --git a/admin-web/webapp/images/toolbar/balance-disabled.png b/admin-web/src/resources/images/toolbar/balance-disabled.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/balance-disabled.png
rename to admin-web/src/resources/images/toolbar/balance-disabled.png
diff --git a/admin-web/webapp/images/toolbar/balance.png b/admin-web/src/resources/images/toolbar/balance.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/balance.png
rename to admin-web/src/resources/images/toolbar/balance.png
diff --git a/admin-web/webapp/images/toolbar/calc.png b/admin-web/src/resources/images/toolbar/calc.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/calc.png
rename to admin-web/src/resources/images/toolbar/calc.png
diff --git a/admin-web/webapp/images/toolbar/cancel_deferred_action-disabled.gif b/admin-web/src/resources/images/toolbar/cancel_deferred_action-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/cancel_deferred_action-disabled.gif
rename to admin-web/src/resources/images/toolbar/cancel_deferred_action-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/cancel_deferred_action.gif b/admin-web/src/resources/images/toolbar/cancel_deferred_action.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/cancel_deferred_action.gif
rename to admin-web/src/resources/images/toolbar/cancel_deferred_action.gif
diff --git a/admin-web/webapp/images/toolbar/checkbox.png b/admin-web/src/resources/images/toolbar/checkbox.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/checkbox.png
rename to admin-web/src/resources/images/toolbar/checkbox.png
diff --git a/admin-web/webapp/images/toolbar/collapse.gif b/admin-web/src/resources/images/toolbar/collapse.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/collapse.gif
rename to admin-web/src/resources/images/toolbar/collapse.gif
diff --git a/admin-web/webapp/images/toolbar/delete.png b/admin-web/src/resources/images/toolbar/delete.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/delete.png
rename to admin-web/src/resources/images/toolbar/delete.png
diff --git a/admin-web/webapp/images/toolbar/download.png b/admin-web/src/resources/images/toolbar/download.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/download.png
rename to admin-web/src/resources/images/toolbar/download.png
diff --git a/admin-web/webapp/images/toolbar/dump-disabled.gif b/admin-web/src/resources/images/toolbar/dump-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/dump-disabled.gif
rename to admin-web/src/resources/images/toolbar/dump-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/dump.gif b/admin-web/src/resources/images/toolbar/dump.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/dump.gif
rename to admin-web/src/resources/images/toolbar/dump.gif
diff --git a/admin-web/webapp/images/toolbar/expand.gif b/admin-web/src/resources/images/toolbar/expand.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/expand.gif
rename to admin-web/src/resources/images/toolbar/expand.gif
diff --git a/admin-web/webapp/images/toolbar/gc-disabled.gif b/admin-web/src/resources/images/toolbar/gc-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/gc-disabled.gif
rename to admin-web/src/resources/images/toolbar/gc-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/gc.gif b/admin-web/src/resources/images/toolbar/gc.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/gc.gif
rename to admin-web/src/resources/images/toolbar/gc.gif
diff --git a/admin-web/webapp/images/toolbar/info-disabled.gif b/admin-web/src/resources/images/toolbar/info-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/info-disabled.gif
rename to admin-web/src/resources/images/toolbar/info-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/info.gif b/admin-web/src/resources/images/toolbar/info.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/info.gif
rename to admin-web/src/resources/images/toolbar/info.gif
diff --git a/admin-web/webapp/images/toolbar/job.png b/admin-web/src/resources/images/toolbar/job.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/job.png
rename to admin-web/src/resources/images/toolbar/job.png
diff --git a/admin-web/webapp/images/toolbar/priority-disabled.gif b/admin-web/src/resources/images/toolbar/priority-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/priority-disabled.gif
rename to admin-web/src/resources/images/toolbar/priority-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/priority.gif b/admin-web/src/resources/images/toolbar/priority.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/priority.gif
rename to admin-web/src/resources/images/toolbar/priority.gif
diff --git a/admin-web/webapp/images/toolbar/provisioning-disabled.png b/admin-web/src/resources/images/toolbar/provisioning-disabled.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/provisioning-disabled.png
rename to admin-web/src/resources/images/toolbar/provisioning-disabled.png
diff --git a/admin-web/webapp/images/toolbar/provisioning.png b/admin-web/src/resources/images/toolbar/provisioning.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/provisioning.png
rename to admin-web/src/resources/images/toolbar/provisioning.png
diff --git a/admin-web/webapp/images/toolbar/reset-disabled.gif b/admin-web/src/resources/images/toolbar/reset-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/reset-disabled.gif
rename to admin-web/src/resources/images/toolbar/reset-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/reset.gif b/admin-web/src/resources/images/toolbar/reset.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/reset.gif
rename to admin-web/src/resources/images/toolbar/reset.gif
diff --git a/admin-web/webapp/images/toolbar/restart.png b/admin-web/src/resources/images/toolbar/restart.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/restart.png
rename to admin-web/src/resources/images/toolbar/restart.png
diff --git a/admin-web/webapp/images/toolbar/resume-disabled.gif b/admin-web/src/resources/images/toolbar/resume-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/resume-disabled.gif
rename to admin-web/src/resources/images/toolbar/resume-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/resume.gif b/admin-web/src/resources/images/toolbar/resume.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/resume.gif
rename to admin-web/src/resources/images/toolbar/resume.gif
diff --git a/admin-web/webapp/images/toolbar/revert.png b/admin-web/src/resources/images/toolbar/revert.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/revert.png
rename to admin-web/src/resources/images/toolbar/revert.png
diff --git a/admin-web/webapp/images/toolbar/save.png b/admin-web/src/resources/images/toolbar/save.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/save.png
rename to admin-web/src/resources/images/toolbar/save.png
diff --git a/admin-web/webapp/images/toolbar/select_all.gif b/admin-web/src/resources/images/toolbar/select_all.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/select_all.gif
rename to admin-web/src/resources/images/toolbar/select_all.gif
diff --git a/admin-web/webapp/images/toolbar/select_drivers.gif b/admin-web/src/resources/images/toolbar/select_drivers.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/select_drivers.gif
rename to admin-web/src/resources/images/toolbar/select_drivers.gif
diff --git a/admin-web/webapp/images/toolbar/select_jobs.gif b/admin-web/src/resources/images/toolbar/select_jobs.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/select_jobs.gif
rename to admin-web/src/resources/images/toolbar/select_jobs.gif
diff --git a/admin-web/webapp/images/toolbar/select_nodes-disabled.gif b/admin-web/src/resources/images/toolbar/select_nodes-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/select_nodes-disabled.gif
rename to admin-web/src/resources/images/toolbar/select_nodes-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/select_nodes.gif b/admin-web/src/resources/images/toolbar/select_nodes.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/select_nodes.gif
rename to admin-web/src/resources/images/toolbar/select_nodes.gif
diff --git a/admin-web/webapp/images/toolbar/server_reset_stats-disabled.gif b/admin-web/src/resources/images/toolbar/server_reset_stats-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/server_reset_stats-disabled.gif
rename to admin-web/src/resources/images/toolbar/server_reset_stats-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/server_reset_stats.gif b/admin-web/src/resources/images/toolbar/server_reset_stats.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/server_reset_stats.gif
rename to admin-web/src/resources/images/toolbar/server_reset_stats.gif
diff --git a/admin-web/webapp/images/toolbar/server_restart-disabled.gif b/admin-web/src/resources/images/toolbar/server_restart-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/server_restart-disabled.gif
rename to admin-web/src/resources/images/toolbar/server_restart-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/server_restart.gif b/admin-web/src/resources/images/toolbar/server_restart.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/server_restart.gif
rename to admin-web/src/resources/images/toolbar/server_restart.gif
diff --git a/admin-web/webapp/images/toolbar/sort-ascending.png b/admin-web/src/resources/images/toolbar/sort-ascending.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/sort-ascending.png
rename to admin-web/src/resources/images/toolbar/sort-ascending.png
diff --git a/admin-web/webapp/images/toolbar/sort-descending.png b/admin-web/src/resources/images/toolbar/sort-descending.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/sort-descending.png
rename to admin-web/src/resources/images/toolbar/sort-descending.png
diff --git a/admin-web/webapp/images/toolbar/suspend-disabled.gif b/admin-web/src/resources/images/toolbar/suspend-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/suspend-disabled.gif
rename to admin-web/src/resources/images/toolbar/suspend-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/suspend.gif b/admin-web/src/resources/images/toolbar/suspend.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/suspend.gif
rename to admin-web/src/resources/images/toolbar/suspend.gif
diff --git a/admin-web/webapp/images/toolbar/suspend_requeue-disabled.gif b/admin-web/src/resources/images/toolbar/suspend_requeue-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/suspend_requeue-disabled.gif
rename to admin-web/src/resources/images/toolbar/suspend_requeue-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/suspend_requeue.gif b/admin-web/src/resources/images/toolbar/suspend_requeue.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/suspend_requeue.gif
rename to admin-web/src/resources/images/toolbar/suspend_requeue.gif
diff --git a/admin-web/webapp/images/toolbar/table-column-hide.png b/admin-web/src/resources/images/toolbar/table-column-hide.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/table-column-hide.png
rename to admin-web/src/resources/images/toolbar/table-column-hide.png
diff --git a/admin-web/webapp/images/toolbar/terminate-disabled.gif b/admin-web/src/resources/images/toolbar/terminate-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/terminate-disabled.gif
rename to admin-web/src/resources/images/toolbar/terminate-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/terminate.gif b/admin-web/src/resources/images/toolbar/terminate.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/terminate.gif
rename to admin-web/src/resources/images/toolbar/terminate.gif
diff --git a/admin-web/webapp/images/toolbar/text-2.png b/admin-web/src/resources/images/toolbar/text-2.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/text-2.png
rename to admin-web/src/resources/images/toolbar/text-2.png
diff --git a/admin-web/webapp/images/toolbar/text.png b/admin-web/src/resources/images/toolbar/text.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/text.png
rename to admin-web/src/resources/images/toolbar/text.png
diff --git a/admin-web/webapp/images/toolbar/thread_dump-disabled.gif b/admin-web/src/resources/images/toolbar/thread_dump-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/thread_dump-disabled.gif
rename to admin-web/src/resources/images/toolbar/thread_dump-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/thread_dump.gif b/admin-web/src/resources/images/toolbar/thread_dump.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/thread_dump.gif
rename to admin-web/src/resources/images/toolbar/thread_dump.gif
diff --git a/admin-web/webapp/images/toolbar/threads-disabled.gif b/admin-web/src/resources/images/toolbar/threads-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/threads-disabled.gif
rename to admin-web/src/resources/images/toolbar/threads-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/threads.gif b/admin-web/src/resources/images/toolbar/threads.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/threads.gif
rename to admin-web/src/resources/images/toolbar/threads.gif
diff --git a/admin-web/webapp/images/toolbar/thresholds-disabled.gif b/admin-web/src/resources/images/toolbar/thresholds-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/thresholds-disabled.gif
rename to admin-web/src/resources/images/toolbar/thresholds-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/thresholds.gif b/admin-web/src/resources/images/toolbar/thresholds.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/thresholds.gif
rename to admin-web/src/resources/images/toolbar/thresholds.gif
diff --git a/admin-web/webapp/images/toolbar/toggle_active-disabled.gif b/admin-web/src/resources/images/toolbar/toggle_active-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/toggle_active-disabled.gif
rename to admin-web/src/resources/images/toolbar/toggle_active-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/toggle_active.gif b/admin-web/src/resources/images/toolbar/toggle_active.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/toggle_active.gif
rename to admin-web/src/resources/images/toolbar/toggle_active.gif
diff --git a/admin-web/webapp/images/toolbar/traffic_light_red-disabled.gif b/admin-web/src/resources/images/toolbar/traffic_light_red-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/traffic_light_red-disabled.gif
rename to admin-web/src/resources/images/toolbar/traffic_light_red-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/traffic_light_red.gif b/admin-web/src/resources/images/toolbar/traffic_light_red.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/traffic_light_red.gif
rename to admin-web/src/resources/images/toolbar/traffic_light_red.gif
diff --git a/admin-web/webapp/images/toolbar/traffic_light_red_green-disabled.gif b/admin-web/src/resources/images/toolbar/traffic_light_red_green-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/traffic_light_red_green-disabled.gif
rename to admin-web/src/resources/images/toolbar/traffic_light_red_green-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/traffic_light_red_green.gif b/admin-web/src/resources/images/toolbar/traffic_light_red_green.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/traffic_light_red_green.gif
rename to admin-web/src/resources/images/toolbar/traffic_light_red_green.gif
diff --git a/admin-web/webapp/images/toolbar/traffic_light_red_green_yellow-disabled.gif b/admin-web/src/resources/images/toolbar/traffic_light_red_green_yellow-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/traffic_light_red_green_yellow-disabled.gif
rename to admin-web/src/resources/images/toolbar/traffic_light_red_green_yellow-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/traffic_light_red_green_yellow.gif b/admin-web/src/resources/images/toolbar/traffic_light_red_green_yellow.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/traffic_light_red_green_yellow.gif
rename to admin-web/src/resources/images/toolbar/traffic_light_red_green_yellow.gif
diff --git a/admin-web/webapp/images/toolbar/traffic_light_red_yellow-disabled.gif b/admin-web/src/resources/images/toolbar/traffic_light_red_yellow-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/traffic_light_red_yellow-disabled.gif
rename to admin-web/src/resources/images/toolbar/traffic_light_red_yellow-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/traffic_light_red_yellow.gif b/admin-web/src/resources/images/toolbar/traffic_light_red_yellow.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/traffic_light_red_yellow.gif
rename to admin-web/src/resources/images/toolbar/traffic_light_red_yellow.gif
diff --git a/admin-web/webapp/images/toolbar/update-disabled.gif b/admin-web/src/resources/images/toolbar/update-disabled.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/update-disabled.gif
rename to admin-web/src/resources/images/toolbar/update-disabled.gif
diff --git a/admin-web/webapp/images/toolbar/update.gif b/admin-web/src/resources/images/toolbar/update.gif
similarity index 100%
rename from admin-web/webapp/images/toolbar/update.gif
rename to admin-web/src/resources/images/toolbar/update.gif
diff --git a/admin-web/webapp/images/toolbar/upload.png b/admin-web/src/resources/images/toolbar/upload.png
similarity index 100%
rename from admin-web/webapp/images/toolbar/upload.png
rename to admin-web/src/resources/images/toolbar/upload.png
diff --git a/admin-web/webapp/images/tree/critical -orig.gif b/admin-web/src/resources/images/tree/critical -orig.gif
similarity index 100%
rename from admin-web/webapp/images/tree/critical -orig.gif
rename to admin-web/src/resources/images/tree/critical -orig.gif
diff --git a/admin-web/webapp/images/tree/critical.gif b/admin-web/src/resources/images/tree/critical.gif
similarity index 100%
rename from admin-web/webapp/images/tree/critical.gif
rename to admin-web/src/resources/images/tree/critical.gif
diff --git a/admin-web/webapp/images/tree/driver.gif b/admin-web/src/resources/images/tree/driver.gif
similarity index 100%
rename from admin-web/webapp/images/tree/driver.gif
rename to admin-web/src/resources/images/tree/driver.gif
diff --git a/admin-web/webapp/images/tree/job.png b/admin-web/src/resources/images/tree/job.png
similarity index 100%
rename from admin-web/webapp/images/tree/job.png
rename to admin-web/src/resources/images/tree/job.png
diff --git a/admin-web/webapp/images/tree/node-master.png b/admin-web/src/resources/images/tree/node-master.png
similarity index 100%
rename from admin-web/webapp/images/tree/node-master.png
rename to admin-web/src/resources/images/tree/node-master.png
diff --git a/admin-web/webapp/images/tree/node-slave.png b/admin-web/src/resources/images/tree/node-slave.png
similarity index 100%
rename from admin-web/webapp/images/tree/node-slave.png
rename to admin-web/src/resources/images/tree/node-slave.png
diff --git a/admin-web/webapp/jppf.css b/admin-web/src/resources/jppf.css
similarity index 85%
rename from admin-web/webapp/jppf.css
rename to admin-web/src/resources/jppf.css
index 62c2b11ab5..13232f30dd 100644
--- a/admin-web/webapp/jppf.css
+++ b/admin-web/src/resources/jppf.css
@@ -638,4 +638,50 @@ scrollable, div.scrollable {
white-space: nowrap;
width: 100%;
overflow: scroll;
-}
\ No newline at end of file
+}
+
+.palette-theme-default .palette-buttons {
+ float: left;
+ text-align: center;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+.palette-theme-default .palette-buttons button {
+ display: block;
+ padding: 0px;
+}
+.palette-theme-default .palette-buttons button div {
+ height: 16px;
+ width: 16px;
+}
+
+.palette-theme-default .palette-buttons button.palette-add div {
+ content: none;
+ background: transparent url(images/arrow-right-double-2.png) no-repeat scroll center center;
+}
+.palette-theme-default .palette-buttons button.palette-remove div {
+ content: none;
+ background: transparent url(images/arrow-left-double-2.png) no-repeat scroll center center;
+}
+.palette-theme-default .palette-buttons button.palette-up div {
+ content: none;
+ background: transparent url(images/arrow-up-double-2.png) no-repeat scroll center center;
+}
+.palette-theme-default .palette-buttons button.palette-down div {
+ content: none;
+ background: transparent url(images/arrow-down-double-2.png) no-repeat scroll center center;
+}
+
+.palette-theme-default .palette-buttons button.palette-add div:after {
+ content: none;
+}
+.palette-theme-default .palette-buttons button.palette-remove div:after {
+ content: none;
+}
+.palette-theme-default .palette-buttons button.palette-up div:after {
+ content: none;
+}
+.palette-theme-default .palette-buttons button.palette-down div:after {
+ content: none;
+}
|