📄 systemhelptoolbarhandler.java
字号:
private boolean isHelpMode() {
return m_HelpState;
}
public void setHelpMode(boolean a_HelpState) {
setHelpState(a_HelpState);
}
/**
* Sets the help state this operator.
*
* @param a_HelpState
* help state.
*/
private void setHelpState(boolean a_HelpState) {
m_HelpState = a_HelpState;
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
JCheckBoxMenuItem menuItem;
if(source==m_Float) {
if(m_Float.isSelected()) {
Float(new Point(0,0));
}
else {
Dock();
}
}
else if(source instanceof JCheckBoxMenuItem) {
menuItem = (JCheckBoxMenuItem)source;
int index = pagesMainMenus .indexOf(menuItem);
if(index>=0) {
if(!menuItem.isSelected()) {
m_TabbedPane.remove(pages.get(index));
if(m_TabbedPane.getComponentCount()==0) {
m_Container.removeSystemHelpToolBar();
}
}
else {
if(m_TabbedPane.getTabCount()<=index||m_TabbedPane.getComponentAt(index)!=pages.get(index)) {
m_TabbedPane.add(pages.get(index), index);
}
}
}
}
}
/**
* @see java.awt.event.MouseListener#mouseExited(MouseEvent)
*/
public void mouseExited(MouseEvent e) {
}
/**
* @see java.awt.event.MouseListener#mousePressed(MouseEvent)
*/
public void mousePressed(MouseEvent e) {
if (isHelpMode()) {
setHelpMode(false);
HelpObserveSubject.sendNotify(m_HelpState);
}
}
/**
* @see java.awt.event.MouseListener#mouseReleased(MouseEvent)
*/
public void mouseReleased(MouseEvent e) {
}
/**
* @see java.awt.event.MouseListener#mouseClicked(MouseEvent)
*/
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON3) {
m_Float.setSelected(((BasicToolBarUI)getToolBar().getUI()).isFloating());
m_SystemToolBarFloatMenu.show(pages.indexOf(m_TabbedPane.getSelectedComponent()),e.getComponent(), e.getX(), e.getY());
}
}
/**
* Reset UI language to specific language
* */
public void resetLocale() {
//TODO
//page & menu
m_Float.setText(Resource.srcStr("m_FloatToolbar"));
int i,size = pages.size();
SystemToolPagePanel aToolPagePanel;
groups.removeAllElements();
for(i=0;i<size;i++) {
aToolPagePanel = pages.get(i);
aToolPagePanel.resetLanguage();
pagesMainMenus.get(i).setText(aToolPagePanel.getName());
groups.add(aToolPagePanel.getMenuItemGroup());
}
//tab tile
size = m_TabbedPane.getTabCount();
for(i=0;i<size;i++) {
aToolPagePanel = (SystemToolPagePanel)m_TabbedPane.getComponentAt(i);
m_TabbedPane.setTitleAt(i, aToolPagePanel.getName());
}
m_SystemToolBarFloatMenu.resetLanguage();
}
}
/**
* FloatMenu is a right-click popup menu of an SystemToolBar, whose menuitem can be easily add or remove.
*/
class GroupFloatMenu extends JPopupMenu implements ItemListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private MenuItemGroup constant = new MenuItemGroup();
private Vector<MenuItemGroup> groups = new Vector<MenuItemGroup>();
private int currentGroupIndex=-1;
/**
* Constructs a FloatMenu for a specific SystemHelpToolBar.
*
* @param SystemHelpToolBar
* the specific SystemHelpToolBar that this FloatMenu belongs to.
*/
public GroupFloatMenu(MenuItemGroup constant, Vector<MenuItemGroup> groups) {
super();
this.constant = constant;
this.groups = groups;
}
public void reset() {
currentGroupIndex = -1;
}
/**
* set constant JMenuItem set
* */
public void setConstant(MenuItemGroup aMenuItemGroup){
if(constant!=null){
constant.clear();
}
constant = aMenuItemGroup;
}
/**
* @author Xiaojun Chen
* */
public void addAlltoConstant(MenuItemGroup aMenuItemGroup){
if(constant==null){
constant = aMenuItemGroup;
}
constant.addAll(aMenuItemGroup);
}
public MenuItemGroup getConstan(){
return constant;
}
/**
* @author Xiaojun Chen
* @throws IllegalArgumentException
*
* */
public void addGroup(MenuItemGroup aMenuItemGroup,int index) throws IllegalArgumentException{
if(aMenuItemGroup==null||index<-1||index>groups.size()){
throw new IllegalArgumentException(
"illegal group position");
}
if(index==-1){
groups.add(aMenuItemGroup);
}
else{
groups.add(index, aMenuItemGroup);
}
}
/**
* @author Xiaojun Chen
* @throws IllegalArgumentException
* */
public MenuItemGroup getGroup(int index) throws IllegalArgumentException{
if(index<0||index>groups.size()){
throw new IllegalArgumentException(
"illegal group position");
}
return groups.get(index);
}
/**
* @author Xiaojun Chen
* @param groupIndex the index of group will be gotten
* @param hasconstan whether contain constant menu item, <code>true<code> if contains, else <code>false<code>
* @throws IllegalArgumentException
* */
public JPopupMenu getFloatMenu(int groupIndex, boolean hasconstan) throws IllegalArgumentException{
if(groupIndex<0||groupIndex>groups.size()){
throw new IllegalArgumentException(
"illegal group position");
}
JPopupMenu menu = new JPopupMenu();
if(hasconstan){
if(constant!=null){
menu = constant.addto(menu);
}
}
MenuItemGroup group = groups.get(groupIndex);
if(group!=null){
menu = group.addto(menu);
}
return menu;
}
public void show(int GroupIndex,Component invoker, int x, int y) {
if(GroupIndex==currentGroupIndex) {
show(invoker, x, y);
}
else if(GroupIndex>=0&GroupIndex<groups.size()){
currentGroupIndex = GroupIndex;
generateMenu();
show(invoker, x, y);
}
}
private void generateMenu() {
int i = constant.size();
int size = this.getComponentCount();
if(i>size) {
this.removeAll();
constant.addto(this);
}
else {
for(size--;size>=i;size--) {
this.remove(size);
}
}
add(new JPopupMenu.Separator());
groups.get(currentGroupIndex).addto(this);
}
public void resetLanguage() {
if(currentGroupIndex!=-1) {
this.removeAll();
generateMenu();
this.repaint();
}
}
public void dispose() {
constant.removeAllElements();
groups.removeAllElements();
constant = null;
groups = null;
}
/**
* @see java.awt.event.ItemListener#itemStateChanged(ItemEvent)
*/
public void itemStateChanged(ItemEvent e) {
}
}
class MenuItemGroup extends Vector<JComponent>{
/**
*
*/
private static final long serialVersionUID = 1L;
public MenuItemGroup(){
super();
}
/**
* add all JMenuItem into the last position of popMenu
* @param popMenu which the popmenu menu items be added into
* */
public JPopupMenu addto(JPopupMenu popMenu){
if(popMenu==null){
popMenu = new JPopupMenu();
}
int size = size();
for(int i=0;i<size;i++){
popMenu.add(get(i));
}
return popMenu;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -