|
|
|
@ -2,183 +2,161 @@ package com.fr.design.mainframe.loghandler;
|
|
|
|
|
|
|
|
|
|
import com.fr.base.BaseUtils; |
|
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
|
|
import com.fr.design.ui.util.UIUtil; |
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
|
import java.awt.*; |
|
|
|
|
import java.awt.event.ActionListener; |
|
|
|
|
import java.awt.event.ItemEvent; |
|
|
|
|
import java.awt.event.ItemListener; |
|
|
|
|
import java.util.concurrent.atomic.AtomicBoolean; |
|
|
|
|
|
|
|
|
|
public class LogHandlerBar extends JPanel implements ItemSelectable { |
|
|
|
|
|
|
|
|
|
private static final long serialVersionUID = 1L; |
|
|
|
|
private ItemListener listeners; |
|
|
|
|
private UIButton clear; |
|
|
|
|
private UIButton selectedall; |
|
|
|
|
private UIButton set; |
|
|
|
|
|
|
|
|
|
private String text; |
|
|
|
|
private int INFONUM = 0; |
|
|
|
|
private int ERRORNUM = 0; |
|
|
|
|
private int SERVERNUM = 0; |
|
|
|
|
|
|
|
|
|
private boolean isWithSerious; |
|
|
|
|
|
|
|
|
|
public LogHandlerBar() { |
|
|
|
|
this(null); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public LogHandlerBar(String text) { |
|
|
|
|
this.setLayout(new CaptionLayout()); |
|
|
|
|
this.setUI(new LogHandlerBarUI()); |
|
|
|
|
this.text = text; |
|
|
|
|
clear = new UIButton(BaseUtils.readIcon("com/fr/design/images/log/clear.png")); |
|
|
|
|
clear.setMargin(null); |
|
|
|
|
clear.setOpaque(false); |
|
|
|
|
clear.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); |
|
|
|
|
clear.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Clear_All")); |
|
|
|
|
selectedall = new UIButton(BaseUtils.readIcon("com/fr/design/images/log/selectedall.png")); |
|
|
|
|
selectedall.setMargin(null); |
|
|
|
|
selectedall.setOpaque(false); |
|
|
|
|
selectedall.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); |
|
|
|
|
selectedall.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select_All")); |
|
|
|
|
set = new UIButton(BaseUtils.readIcon("com/fr/design/images/log/setting.png")); |
|
|
|
|
set.setMargin(null); |
|
|
|
|
set.setOpaque(false); |
|
|
|
|
set.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); |
|
|
|
|
set.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Set")); |
|
|
|
|
|
|
|
|
|
this.add(clear); |
|
|
|
|
this.add(selectedall); |
|
|
|
|
this.add(set); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void clearMessage() { |
|
|
|
|
INFONUM = ERRORNUM = SERVERNUM = 0; |
|
|
|
|
repaint(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public boolean IsWithSerious() { |
|
|
|
|
return isWithSerious; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void setWithSerious(boolean b) { |
|
|
|
|
this.isWithSerious = b; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void infoAdd() { |
|
|
|
|
INFONUM++; |
|
|
|
|
repaint(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void errorAdd() { |
|
|
|
|
ERRORNUM++; |
|
|
|
|
timerPaint(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void serverAdd() { |
|
|
|
|
SERVERNUM++; |
|
|
|
|
timerPaint(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private AtomicBoolean painting = new AtomicBoolean(false); |
|
|
|
|
|
|
|
|
|
public void timerPaint() { |
|
|
|
|
if(!painting.get()) { |
|
|
|
|
painting.set(true); |
|
|
|
|
repaint(); |
|
|
|
|
painting.set(false); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public int getInfo() { |
|
|
|
|
return INFONUM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public int getError() { |
|
|
|
|
return ERRORNUM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public int getServer() { |
|
|
|
|
return SERVERNUM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addItemListener(ItemListener l) { |
|
|
|
|
listeners = l; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void removeItemListener(ItemListener l) { |
|
|
|
|
listeners = null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected void fireItemStateChanged(ItemEvent e) { |
|
|
|
|
listeners.itemStateChanged(e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public Object[] getSelectedObjects() { |
|
|
|
|
return new Object[] { text }; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getText() { |
|
|
|
|
return text; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void setText(String text) { |
|
|
|
|
this.text = text; |
|
|
|
|
repaint(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addClearListener(ActionListener l) { |
|
|
|
|
clear.addActionListener(l); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addSelectedListener(ActionListener l) { |
|
|
|
|
selectedall.addActionListener(l); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addSetListener(ActionListener l) { |
|
|
|
|
set.addActionListener(l); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private class CaptionLayout implements LayoutManager { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void addLayoutComponent(String name, Component comp) { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void removeLayoutComponent(Component comp) { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Dimension preferredLayoutSize(Container parent) { |
|
|
|
|
return new Dimension(120, 24); |
|
|
|
|
} |
|
|
|
|
import static com.fr.design.i18n.Toolkit.i18nText; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Dimension minimumLayoutSize(Container parent) { |
|
|
|
|
return new Dimension(0, 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void layoutContainer(Container target) { |
|
|
|
|
Insets insets = target.getInsets(); |
|
|
|
|
int top = insets.top; |
|
|
|
|
int right = target.getWidth() - insets.right; |
|
|
|
|
clear.setBounds(right - CLEAR_OFFSET, top + TOP_OFFSET, clear.getPreferredSize().width, clear.getPreferredSize().height); |
|
|
|
|
selectedall.setBounds(right - SELECT_OFFSET, top + TOP_OFFSET, selectedall.getPreferredSize().width, selectedall.getPreferredSize().height); |
|
|
|
|
set.setBounds(right - SET_OFFSET, top + TOP_OFFSET, set.getPreferredSize().width, set.getPreferredSize().height); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static final int CLEAR_OFFSET = 130; |
|
|
|
|
private static final int TOP_OFFSET = 4; |
|
|
|
|
private static final int SELECT_OFFSET = 100; |
|
|
|
|
private static final int SET_OFFSET = 70; |
|
|
|
|
} |
|
|
|
|
public class LogHandlerBar extends JPanel implements ItemSelectable { |
|
|
|
|
|
|
|
|
|
private static final long serialVersionUID = 1L; |
|
|
|
|
private ItemListener listeners; |
|
|
|
|
private UIButton clear; |
|
|
|
|
private UIButton selectedall; |
|
|
|
|
private UIButton set; |
|
|
|
|
private UILabel normalLabel; |
|
|
|
|
private UILabel alertLabel; |
|
|
|
|
private UILabel seriouslyLabel; |
|
|
|
|
|
|
|
|
|
private String text; |
|
|
|
|
private int INFONUM = 0; |
|
|
|
|
private int ERRORNUM = 0; |
|
|
|
|
private int SERVERNUM = 0; |
|
|
|
|
private static final int FLOW_LAYOUT_HGAP = 10; |
|
|
|
|
private static final int FLOW_LAYOUT_VGAP = 5; |
|
|
|
|
|
|
|
|
|
private boolean isWithSerious; |
|
|
|
|
|
|
|
|
|
public LogHandlerBar() { |
|
|
|
|
this(null); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public LogHandlerBar(String text) { |
|
|
|
|
this.setLayout(new FlowLayout(FlowLayout.RIGHT, FLOW_LAYOUT_HGAP, FLOW_LAYOUT_VGAP)); |
|
|
|
|
this.setUI(new LogHandlerBarUI()); |
|
|
|
|
this.text = text; |
|
|
|
|
clear = new UIButton(BaseUtils.readIcon("com/fr/design/images/log/clear.png")); |
|
|
|
|
clear.setMargin(null); |
|
|
|
|
clear.setOpaque(false); |
|
|
|
|
clear.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); |
|
|
|
|
clear.setToolTipText(i18nText("Fine-Design_Basic_Clear_All")); |
|
|
|
|
selectedall = new UIButton(BaseUtils.readIcon("com/fr/design/images/log/selectedall.png")); |
|
|
|
|
selectedall.setMargin(null); |
|
|
|
|
selectedall.setOpaque(false); |
|
|
|
|
selectedall.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); |
|
|
|
|
selectedall.setToolTipText(i18nText("Fine-Design_Basic_Select_All")); |
|
|
|
|
set = new UIButton(BaseUtils.readIcon("com/fr/design/images/log/setting.png")); |
|
|
|
|
set.setMargin(null); |
|
|
|
|
set.setOpaque(false); |
|
|
|
|
set.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); |
|
|
|
|
set.setToolTipText(i18nText("Fine-Design_Report_Set")); |
|
|
|
|
normalLabel = new UILabel(i18nText("Fine-Design_Basic_NNormal") + "(0)"); |
|
|
|
|
alertLabel = new UILabel(i18nText("Fine-Design_Basic_Alert") + "(0)"); |
|
|
|
|
seriouslyLabel = new UILabel(i18nText("Fine-Design_Basic_Seriously") + "(0)"); |
|
|
|
|
|
|
|
|
|
this.add(normalLabel); |
|
|
|
|
this.add(alertLabel); |
|
|
|
|
this.add(seriouslyLabel); |
|
|
|
|
this.add(clear); |
|
|
|
|
this.add(selectedall); |
|
|
|
|
this.add(set); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 更新日志数量统计标签 |
|
|
|
|
*/ |
|
|
|
|
private void changeLabel() { |
|
|
|
|
UIUtil.invokeLaterIfNeeded(new Runnable() { |
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|
normalLabel.setText(i18nText("Fine-Design_Basic_NNormal") + '(' + getInfo() + ')'); |
|
|
|
|
alertLabel.setText(i18nText("Fine-Design_Basic_Alert") + '(' + getError() + ')'); |
|
|
|
|
seriouslyLabel.setText(i18nText("Fine-Design_Basic_Seriously") + '(' + getServer() + ')'); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void clearMessage() { |
|
|
|
|
INFONUM = ERRORNUM = SERVERNUM = 0; |
|
|
|
|
changeLabel(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public boolean IsWithSerious() { |
|
|
|
|
return isWithSerious; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void setWithSerious(boolean b) { |
|
|
|
|
this.isWithSerious = b; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void infoAdd() { |
|
|
|
|
INFONUM++; |
|
|
|
|
changeLabel(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void errorAdd() { |
|
|
|
|
ERRORNUM++; |
|
|
|
|
changeLabel(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void serverAdd() { |
|
|
|
|
SERVERNUM++; |
|
|
|
|
changeLabel(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public int getInfo() { |
|
|
|
|
return INFONUM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public int getError() { |
|
|
|
|
return ERRORNUM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public int getServer() { |
|
|
|
|
return SERVERNUM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addItemListener(ItemListener l) { |
|
|
|
|
listeners = l; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void removeItemListener(ItemListener l) { |
|
|
|
|
listeners = null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected void fireItemStateChanged(ItemEvent e) { |
|
|
|
|
listeners.itemStateChanged(e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public Object[] getSelectedObjects() { |
|
|
|
|
return new Object[]{text}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getText() { |
|
|
|
|
return text; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void setText(String text) { |
|
|
|
|
this.text = text; |
|
|
|
|
repaint(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addClearListener(ActionListener l) { |
|
|
|
|
clear.addActionListener(l); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addSelectedListener(ActionListener l) { |
|
|
|
|
selectedall.addActionListener(l); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addSetListener(ActionListener l) { |
|
|
|
|
set.addActionListener(l); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|