/*
* Copyright 2014 The authors
* 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 com.intellij.struts2;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.ui.LayeredIcon;
import com.intellij.util.ui.JBUI;
import icons.Struts2Icons;
import javax.swing.*;
/**
* All icons.
*
* @author Yann Cébron
*/
public final class StrutsIcons {
/**
* Icon for struts.xml files.
*/
public static final LayeredIcon STRUTS_CONFIG_FILE = new LayeredIcon(2);
/**
* Icon for validation.xml files.
*/
public static final LayeredIcon VALIDATION_CONFIG_FILE = new LayeredIcon(2);
public static final LayeredIcon ACTION_CLASS = new LayeredIcon(2);
public static final LayeredIcon STRUTS_VARIABLE = new LayeredIcon(2);
public static final LayeredIcon STRUTS_PACKAGE = new LayeredIcon(2);
/**
* Vertical offset for small overlay icons.
*/
static final int OVERLAY_Y_OFFSET = JBUI.scale(7);
/**
* Horizontal offset for small overlay icons.
*/
static final int OVERLAY_X_OFFSET = JBUI.scale(8);
private StrutsIcons() {
}
/**
* Overlay icon for "default" elements.
*/
private static final Icon OVERLAY_DEFAULT = AllIcons.Actions.Checked;
public static final LayeredIcon RESULT_TYPE_DEFAULT = new LayeredIcon(2);
public static final LayeredIcon GLOBAL_RESULT = new LayeredIcon(2);
public static final LayeredIcon GLOBAL_EXCEPTION_MAPPING = new LayeredIcon(2);
public static final LayeredIcon DEFAULT_ACTION_REF = new LayeredIcon(2);
public static final LayeredIcon DEFAULT_CLASS_REF = new LayeredIcon(2);
public static final LayeredIcon DEFAULT_INTERCEPTOR_REF = new LayeredIcon(2);
// generic reference providers
public static final Icon THEME = AllIcons.Gutter.Colors;
static {
STRUTS_CONFIG_FILE.setIcon(StdFileTypes.XML.getIcon(), 0);
STRUTS_CONFIG_FILE.setIcon(Struts2Icons.Action_small, 1, OVERLAY_X_OFFSET, OVERLAY_Y_OFFSET);
VALIDATION_CONFIG_FILE.setIcon(StdFileTypes.XML.getIcon(), 0);
VALIDATION_CONFIG_FILE.setIcon(Struts2Icons.Edit_small, 1, OVERLAY_X_OFFSET, OVERLAY_Y_OFFSET);
ACTION_CLASS.setIcon(AllIcons.Nodes.Class, 0);
ACTION_CLASS.setIcon(Struts2Icons.Action_small, 1, OVERLAY_X_OFFSET, OVERLAY_Y_OFFSET);
STRUTS_VARIABLE.setIcon(AllIcons.Nodes.Variable, 0);
STRUTS_VARIABLE.setIcon(Struts2Icons.Action_small, 1, OVERLAY_X_OFFSET, OVERLAY_Y_OFFSET);
STRUTS_PACKAGE.setIcon(AllIcons.Nodes.Folder, 0);
STRUTS_PACKAGE.setIcon(Struts2Icons.Action_small, 1, OVERLAY_X_OFFSET, OVERLAY_Y_OFFSET);
createGlobalIcon(GLOBAL_RESULT, AllIcons.Vcs.Arrow_right);
createGlobalIcon(GLOBAL_EXCEPTION_MAPPING, AllIcons.Nodes.ExceptionClass);
createDefaultIcon(DEFAULT_ACTION_REF, Struts2Icons.Action);
createDefaultIcon(DEFAULT_CLASS_REF, AllIcons.Nodes.Class);
createDefaultIcon(DEFAULT_INTERCEPTOR_REF, AllIcons.Nodes.Plugin);
createDefaultIcon(RESULT_TYPE_DEFAULT, AllIcons.Debugger.Console);
}
private static void createGlobalIcon(final LayeredIcon icon, final Icon baseIcon) {
icon.setIcon(baseIcon, 0);
icon.setIcon(AllIcons.General.Web, 1, OVERLAY_X_OFFSET, OVERLAY_Y_OFFSET);
}
private static void createDefaultIcon(final LayeredIcon icon, final Icon baseIcon) {
icon.setIcon(baseIcon, 0);
icon.setIcon(OVERLAY_DEFAULT, 1, OVERLAY_X_OFFSET, OVERLAY_Y_OFFSET);
}
}