/*
* Copyright 2015 the original author or authors.
* @https://github.com/scouter-project/scouter
*
* 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 scouter.client;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.osgi.framework.Bundle;
import scouter.client.server.Server;
import scouter.client.server.ServerManager;
import scouter.client.util.ImageUtil;
import scouter.lang.ObjectType;
import scouter.lang.counters.CounterEngine;
import scouter.util.StringUtil;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
public class Images {
public static final Image unknown = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
public static final Image folder = Activator.getImage("icons/folder.png");
public static final Image folder_star = Activator.getImage("icons/folder_star.png");
public static final Image refresh = Activator.getImage("icons/refresh.png");
public static final Image refresh_auto = Activator.getImage("icons/refresh_auto.png");
public static final Image expand = Activator.getImage("icons/expand.png");
public static final Image collapse = Activator.getImage("icons/collapse.png");
public static final Image download = Activator.getImage("icons/download.png");
public static final Image table_delete = Activator.getImage("icons/table_delete.png");
public static final Image minus = Activator.getImage("icons/minus.png");
public static final Image add = Activator.getImage("icons/add.gif");
public static final Image filter = Activator.getImage("icons/filter.png");
public static final Image monitor = Activator.getImage("icons/monitor.png");
public static final Image drive = Activator.getImage("icons/drive.png");
public static final Image agent = Activator.getImage("icons/agent.png");
public static final Image default_context = Activator.getImage("icons/context.png");
public static final ImageDescriptor default_context_descriptor = Activator.getImageDescriptor("icons/context.png");
public static final Image save = ImageUtil.getSharedImage(ISharedImages.IMG_ETOOL_SAVE_EDIT);
public static final Image saveas = ImageUtil.getSharedImage(ISharedImages.IMG_ETOOL_SAVEAS_EDIT);
public static final Image previous = Activator.getImage("icons/previous.png");
public static final Image copy = Activator.getImage("icons/copy.png");
public static final Image tostart = Activator.getImage("icons/tostart.png");
public static final Image toend = Activator.getImage("icons/toend.png");
public static final Image tonext = Activator.getImage("icons/tonext.png");
public static final Image toprev = Activator.getImage("icons/toprev.png");
public static final Image zoomin = Activator.getImage("icons/zoomin.png");
public static final Image zoomout = Activator.getImage("icons/zoomout.png");
public static final Image explorer = Activator.getImage("icons/explorer.png");
public static final Image heap = Activator.getImage("icons/heap.png");
public static final Image capture = Activator.getImage("icons/capture.png");
public static final Image server_delete = Activator.getImage("icons/server_delete.png");
public static final Image close_folder = Activator.getImage("icons/close_folder.png");
public static final Image folder_48 = Activator.getImage("icons/folder48.png");
public static final Image scouter_48 = Activator.getImage("icons/h48.png");
public static final Image CONFIG_USER = Activator.getImage("icons/user.png");
// icons for actions
public static final Image thread = Activator.getImage("icons/thread.png");
public static final Image active = Activator.getImage("icons/active.png");
public static final Image inactive = Activator.getImage("icons/inactive.png");
public static final Image dead = Activator.getImage("icons/dead.png");
public static final Image all = Activator.getImage("icons/all.png");
public static final Image total = Activator.getImage("icons/total.png");
public static final Image alert = Activator.getImage("icons/alert.png");
public static final Image transrealtime = Activator.getImage("icons/transrealtime.png");
public static final Image preference = Activator.getImage("icons/preference.png");
public static final Image config = Activator.getImage("icons/config.png");
public static final Image config_edit = Activator.getImage("icons/config_edit.png");
public static final Image table = Activator.getImage("icons/table.png");
public static final Image bar = Activator.getImage("icons/chart_bar.png");
// counters
public static final Image TYPE_SERVICE_COUNT = Activator.getImage("icons/counter/service_count.png");
public static final Image TYPE_ACTSPEED = Activator.getImage("icons/counter/activespeed.png");
public static final Image MENU_EXIT = Activator.getImage("icons/exit.png");
public static final Image CTXMENU_RTC = Activator.getImage("icons/ctx_realtimecounter.png");
public static final Image CTXMENU_RDC = Activator.getImage("icons/ctx_realdatecounter.png");
public static final Image selection = Activator.getImage("icons/selection.png");
public static final Image csv = Activator.getImage("icons/csv.png");
public static final Image calendar = Activator.getImage("icons/calendar.png");
public static final Image application_put = Activator.getImage("icons/application_put.png");
public static final Image application_split = Activator.getImage("icons/application_split.png");
public static final Image SERVER_ACT = Activator.getImage("icons/object/serverobj.png");
public static final Image SERVER_INACT = Activator.getImage("icons/object/serverobj_inact.png");
public static final Image SERVER_DEFAULT_ACT = Activator.getImage("icons/object/serverobj_def.png");
public static final Image SERVER_DEFAULT_INACT = Activator.getImage("icons/object/serverobj_def_inact.png");
public static final ImageDescriptor XY_MAX = Activator.getImageDescriptor("icons/xymax.png");
public static final ImageDescriptor XY_LEFT = Activator.getImageDescriptor("icons/xyleft.png");
public static final ImageDescriptor XY_YMIN = Activator.getImageDescriptor("icons/ymin.png");
public static final ImageDescriptor SHEET_VIEW = Activator.getImageDescriptor("icons/sheet_view.png");
public static final ImageDescriptor CAPTURE = Activator.getImageDescriptor("icons/capture.png");
public static final ImageDescriptor SELECTOR = Activator.getImageDescriptor("icons/selector.png");
public static final ImageDescriptor DEBUG = Activator.getImageDescriptor("icons/bug.png");
public static final Image WARN = Activator.getImage("icons/warn.png");
public static final Image PASSWORD_img = Activator.getImage("icons/password.png");
public static final Image GO_PAST = Activator.getImage("icons/gopast.png");
public static final Image SEARCH = Activator.getImage("icons/zoom.png");
public static final ImageDescriptor PASSWORD = Activator.getImageDescriptor("icons/password.png");
public static final Image PROFILE_FULL = Activator.getImage("icons/profilefull.png");
public static final Image PROFILE_SUMMARY = Activator.getImage("icons/profilesummary.png");
public static final Image COMMENT = Activator.getImage("icons/comment.png");
public static final ImageDescriptor COMMENT_DESCRIPTOR = Activator.getImageDescriptor("icons/comment.png");
public static final ImageDescriptor WRITE = Activator.getImageDescriptor("icons/counter/packet_recv.png");
public static final ImageDescriptor LIST = Activator.getImageDescriptor("icons/list.png");
public static final ImageDescriptor DETAIL = Activator.getImageDescriptor("icons/detail.png");
private static HashMap<String, Image> objAliveMap = new HashMap<String, Image>();
private static HashMap<String, ImageDescriptor> objAliveDescriptorMap = new HashMap<String, ImageDescriptor>();
public static final Image MENU = Activator.getImage("icons/menu.png");
public static final Image ALERT_BIG = Activator.getImage("icons/alert_big.png");
public static final ImageDescriptor ALERT_FATAL = Activator.getImageDescriptor("icons/alert_fatal.png");
public static final ImageDescriptor ALERT_WARN = Activator.getImageDescriptor("icons/alert_warn.png");
public static final ImageDescriptor ALERT_ERROR = Activator.getImageDescriptor("icons/alert_error.png");
public static final ImageDescriptor ALERT_INFO = Activator.getImageDescriptor("icons/alert_info.png");
public static ImageDescriptor getObjectImageDescriptor(String objType, boolean isActive, int serverId){
Server server = null;
if (serverId == 0) {
server = ServerManager.getInstance().getDefaultServer();
} else {
server = ServerManager.getInstance().getServer(serverId);
}
CounterEngine counterEngine = server.getCounterEngine();
ObjectType type = counterEngine.getObjectType(objType);
if (type != null && StringUtil.isNotEmpty(type.getIcon())) {
objType = type.getIcon();
}
String imgName = "icons/object/"+objType+".png";
if(!isActive){
imgName = "icons/object/"+objType+"_inact.png";
}
ImageDescriptor image = objAliveDescriptorMap.get(imgName);
if(image!= null)
return image;
image = Activator.getImageDescriptor(imgName);
if(image== null)
image = default_context_descriptor;
objAliveDescriptorMap.put(imgName, image);
return image;
}
public static Image getObjectIcon(String objType, boolean isActive, int serverId){
Server server = null;
if (serverId == 0) {
server = ServerManager.getInstance().getDefaultServer();
} else {
server = ServerManager.getInstance().getServer(serverId);
}
CounterEngine counterEngine = server.getCounterEngine();
ObjectType type = counterEngine.getObjectType(objType);
if (type != null && StringUtil.isNotEmpty(type.getIcon())) {
objType = type.getIcon();
}
String imgName = "icons/object/"+objType+".png";
if(!isActive){
imgName = "icons/object/"+objType+"_inact.png";
}
Image image = objAliveMap.get(imgName);
if(image!= null)
return image;
image = Activator.getImage(imgName);
if(image== null)
image = default_context;
objAliveMap.put(imgName, image);
return image;
}
public static Image getObjectAlert48Icon(String objType, int serverId){
Server server = null;
if (serverId == 0) {
server = ServerManager.getInstance().getDefaultServer();
} else {
server = ServerManager.getInstance().getServer(serverId);
}
CounterEngine counterEngine = server.getCounterEngine();
ObjectType type = counterEngine.getObjectType(objType);
if (type != null && StringUtil.isNotEmpty(type.getIcon())) {
objType = type.getIcon();
}
String imgName = "icons/object/48/"+objType+"_alert.png";
Image image = Activator.getImage(imgName);
if(image== null || image == ImageUtil.UNKNOWN)
image = folder_48;
return image;
}
public static Image getObject48Icon(String objType, boolean isActive, int serverId){
Server server = null;
if (serverId == 0) {
server = ServerManager.getInstance().getDefaultServer();
} else {
server = ServerManager.getInstance().getServer(serverId);
}
CounterEngine counterEngine = server.getCounterEngine();
ObjectType type = counterEngine.getObjectType(objType);
if (type != null && StringUtil.isNotEmpty(type.getIcon())) {
objType = type.getIcon();
}
String imgName = "icons/object/48/"+objType+".png";
if(!isActive){
imgName = "icons/object/48/"+objType+"_inact.png";
}
Image image = Activator.getImage(imgName);
if(image== null || image == ImageUtil.UNKNOWN)
image = folder_48;
return image;
}
private static HashMap<String, Image> objCntImgMap = new HashMap<String, Image>();
public static Image getCounterImage(String objType, String counter, int serverId) {
Server server = ServerManager.getInstance().getServer(serverId);
if(server == null)
return Images.unknown;
String imgName = server.getCounterEngine().getCounterIconFileName(objType, counter);
if (StringUtil.isEmpty(imgName)) {
return ImageUtil.UNKNOWN;
}
Image image = objCntImgMap.get(imgName);
if(image!= null)
return image;
image = Activator.getImage("icons/counter/"+imgName);
objCntImgMap.put(imgName, image);
return image;
}
private static HashMap<String, ImageDescriptor> objCntImgDescMap = new HashMap<String, ImageDescriptor>();
public static ImageDescriptor getCounterImageDescriptor(String objType, String counter, int serverId) {
Server server = ServerManager.getInstance().getServer(serverId);
if(server == null)
return null;
String imgName = server.getCounterEngine().getCounterIconFileName(objType, counter);
if (StringUtil.isEmpty(imgName)) {
return ImageUtil.getImageDescriptor(ImageUtil.UNKNOWN);
}
ImageDescriptor image = objCntImgDescMap.get(imgName);
if(image!= null)
return image;
image = Activator.getImageDescriptor("icons/counter/"+imgName);
objCntImgDescMap.put(imgName, image);
return image;
}
public static Image getCounterIconByName(String imageName){
return Activator.getImage("icons/counter/"+imageName);
}
public static ArrayList<String> getAllCounterImages(int serverId){
String path = "";
try {
Bundle bundle = Platform.getBundle("scouter.client");
URL url = FileLocator.find(bundle, new Path("icons/counter/"), null);
path = FileLocator.toFileURL(url).getPath();
File file = new File(path);
ArrayList<String> arr = new ArrayList<String>(Arrays.asList(file.list()));
Collections.sort(arr);
return arr;
} catch (MalformedURLException me) {
System.out.println("Fehler bei URL " + me.getStackTrace());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static final ImageDescriptor REMOVE_WARNING = Activator.getImageDescriptor("icons/remove_warn.png");
public static final Image error = Activator.getImage("icons/error.png");
public static final Image circle = Activator.getImage("icons/circle.png");
public static final Image arrow_right = Activator.getImage("icons/arrow_right.png");
public static final Image arrow_left = Activator.getImage("icons/arrow_left.png");
public static final Image box = Activator.getImage("icons/box.png");
public static final Image align_left = Activator.getImage("icons/align_left.png");
public static final Image color_swatch = Activator.getImage("icons/color_swatch.png");
public static final Image color_wheel = Activator.getImage("icons/color_wheel.png");
public static final Image arrow_rotate = Activator.getImage("icons/arrow_rotate_anticlockwise.png");
public static final Image timer = Activator.getImage("icons/timer.gif");
public static final ImageDescriptor MORE = Activator.getImageDescriptor("icons/moredot.png");
public static final Image group = Activator.getImage("icons/group.png");
public static final Image group_add = Activator.getImage("icons/group_add.png");
public static final Image group_delete = Activator.getImage("icons/group_delete.png");
public static final Image group_go = Activator.getImage("icons/group_go.png");
public static final Image group_edit = Activator.getImage("icons/group_edit.png");
public static final Image user_add = Activator.getImage("icons/user_add.png");
public static final Image user_edit = Activator.getImage("icons/user_edit.png");
public static final Image database_go = Activator.getImage("icons/database_go.png");
public static final Image link = Activator.getImage("icons/link.png");
public static final Image flat_layout = Activator.getImage("icons/flat_layout.gif");
public static final Image tree_mode = Activator.getImage("icons/tree_mode.gif");
public static final Image exclamation = Activator.getImage("icons/exclamation.png");
public static final Image find = Activator.getImage("icons/find.png");
public static final Image server_chart = Activator.getImage("icons/server_chart.png");
public static final Image server = Activator.getImage("icons/server.png");
public static final Image database = Activator.getImage("icons/database.png");
public static final Image grid = Activator.getImage("icons/grid.png");
public static final Image log = Activator.getImage("icons/log.png");
public static final Image sum = Activator.getImage("icons/sum.png");
public static final Image pin = Activator.getImage("icons/pin.gif");
public static final Image lock = Activator.getImage("icons/lock.png");
public static final Image star = Activator.getImage("icons/star.png");
public static final Image page_white_stack = Activator.getImage("icons/page_white_stack.png");
public static final Image page_white_text = Activator.getImage("icons/page_white_text.png");
}