Icon (ThreadState threadState) { boolean daemon = threadState.isDaemon(); if (threadState.isSleeping()) { return daemon ? PAUSE_ICON_DAEMON : AllIcons.Actions.Pause; } if (threadState.isWaiting()) { return daemon ? LOCKED_ICON_DAEMON : AllIcons.Debugger.MuteBreakpoints; } if (threadState.getOperation() == ThreadOperation.Socket) { return daemon ? SOCKET_ICON_DAEMON : Socket; } if (threadState.getOperation() == ThreadOperation.IO) { return daemon ? IO_ICON_DAEMON : AllIcons.Actions.MenuSaveall; } if (threadState.isEDT()) { if ("idle".equals(threadState.getThreadStateDetail())) { return daemon ? IDLE_ICON_DAEMON : Idle; } return daemon ? EDT_BUSY_ICON_DAEMON : AllIcons.Actions.ProfileCPU; } return daemon ? RUNNING_ICON_DAEMON : AllIcons.Actions.Resume; }