⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 replypage.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        autoViewer.setInput(this);
        
        // 快捷回复组
        layout = new GridLayout();
        layout.marginHeight = layout.marginWidth = 8;
        gd = new GridData(GridData.FILL_BOTH);
        Group quickGroup = UITool.createGroup(container, sys_opt_group_quick_reply, gd, layout);
        quickGroup.addPaintListener(paintListener);
        
        // 删除快捷回复按钮
        btnDeleteQuick = UITool.createButton(quickGroup, button_delete);
        btnDeleteQuick.setEnabled(false);
        btnDeleteQuick.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
				btnDeleteQuick.setEnabled(false);
				
                Table t = quickViewer.getTable();
				TableItem ti = t.getItem(t.getSelectionIndex());
				boolean checked = ti.getChecked();
				if(checked)
				    ti.setChecked(false);
				quickReplies.remove(t.getSelectionIndex());
				quickViewer.refresh();
				
				if(checked) {
					if(quickReplies.size() > 0) {
					    currentQuickReply = t.getItem(0);					    
						currentQuickReply.setChecked(true);
					} else
					    currentQuickReply = null;
				}
				
                makeDirty(QUICK_REPLY);
            }
        });

        // 快捷回复的table viewer
        quickViewer = new TableViewer(quickGroup, SWT.SINGLE | SWT.CHECK | SWT.V_SCROLL | SWT.FULL_SELECTION);
        quickViewer.setContentProvider(new ListContentProvider<String>(quickReplies));
        quickViewer.setLabelProvider(labelProvider);
        new TableColumn(quickViewer.getTable(), SWT.LEFT);
        quickViewer.getTable().setHeaderVisible(false);
        quickViewer.getTable().setLinesVisible(false);
        quickViewer.getTable().setBackground(Colors.PAGE_BACKGROUND);
        gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
        gd.widthHint = 150;
        quickViewer.getTable().setLayoutData(gd);
        quickViewer.getTable().addControlListener(new ControlAdapter() {
            public void controlResized(ControlEvent e) {
                Table t = (Table)e.getSource();
                t.getColumn(0).setWidth(t.getClientArea().width);
            }
        });
        quickViewer.getTable().addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                Table t = (Table)e.getSource();
                
                if(e.detail == SWT.CHECK) {
					TableItem ti = (TableItem)e.item;
					if(ti.getChecked()) {		
					    if(currentQuickReply != null)
					        currentQuickReply.setChecked(false);
						currentQuickReply = ti;
						
						makeDirty(QUICK_REPLY);
					} else
						ti.setChecked(true);
                } else {
					if(t.getSelectionIndex() != -1) {
						btnDeleteQuick.setEnabled(true);
						textEdit.setText(t.getSelection()[0].getText());
					} else {
					    btnDeleteQuick.setEnabled(false);
					}                    
                }
                
            }
        });
        quickViewer.setInput(this);
        
        // 编辑组
        gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.horizontalSpan = 2;
        layout = new GridLayout(2, false);
        Group editGroup = UITool.createGroup(container, sys_opt_group_edit_reply, gd, layout);
        editGroup.addPaintListener(paintListener);
        
        // 编辑框
        gd = new GridData(GridData.FILL_BOTH);
        gd.verticalSpan = 2;
        textEdit = UITool.createMultiText(editGroup, gd);
        textEdit.addModifyListener(new ModifyListener() {
            public void modifyText(ModifyEvent e) {
                boolean empty = textEdit.getText().trim().equals("");
                btnAddAuto.setEnabled(!empty);
                btnAddQuick.setEnabled(!empty);
            }
        });
        // 添加为自动回复按钮
        btnAddAuto = UITool.createButton(editGroup, sys_opt_button_add_auto_reply, new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL));
        btnAddAuto.setEnabled(false);
        btnAddAuto.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                autoReplies.add(textEdit.getText().trim());
                autoViewer.refresh();
                makeDirty(AUTO_REPLY);
            }
        });
        // 添加为快捷回复按钮
        btnAddQuick = UITool.createButton(editGroup, sys_opt_button_add_quick_reply, new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL));
        btnAddQuick.setEnabled(false);
        btnAddQuick.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                quickReplies.add(textEdit.getText().trim());
                quickViewer.refresh();
                makeDirty(QUICK_REPLY);
            }
        });
        
        return container;
    }

    /* (non-Javadoc)
     * @see edu.tsinghua.lumaqq.shells.AbstractPage#getImage()
     */
	@Override
    protected Image getImage() {
        return Resources.getInstance().getImage(Resources.icoSysOpt24);
    }

    /* (non-Javadoc)
     * @see edu.tsinghua.lumaqq.shells.AbstractPage#getTitle()
     */
	@Override
    protected String getTitle(int page) {
        return sys_opt_button_reply;
    }
    
    /**
     * @return
     * 		选中的Auto Reply索引
     */
    private int getCheckedAutoReplyIndex() {
        TableItem[] item = autoViewer.getTable().getItems();
        for(int i = 0; i < item.length; i++) {
            if(item[i].getChecked())
                return i;
        }
        return 0;
    }
    
    /**
     * @return
     * 		选中的Quick Reply索引
     */
    private int getCheckedQuickReplyIndex() {
        TableItem[] item = quickViewer.getTable().getItems();
        for(int i = 0; i < item.length; i++) {
            if(item[i].getChecked())
                return i;
        }
        return 0;
    }

    /* (non-Javadoc)
     * @see edu.tsinghua.lumaqq.shells.AbstractPage#saveDirtyProperty(int)
     */
	@Override
	@SuppressWarnings("unchecked")
    protected void saveDirtyProperty(int propertyId) {
		Replies replies = main.getConfigHelper().getReplies();
        switch(propertyId) {
            case AUTO_REPLY:
                replies.getAutoReply().clear();
                replies.getAutoReply().addAll(autoReplies);
                replies.setCurrentAutoReply(getCheckedAutoReplyIndex());
                main.getConfigHelper().saveReplies();
        		main.getMenuHelper().renewAawyMenu();
                break;
            case QUICK_REPLY:
                replies.getQuickReply().clear();
                replies.getQuickReply().addAll(quickReplies);
                replies.setCurrentQuickReply(getCheckedQuickReplyIndex());
                main.getConfigHelper().saveReplies();
                main.getMenuHelper().renewAawyMenu();
                break;
        }
    }

    /* (non-Javadoc)
     * @see edu.tsinghua.lumaqq.shells.AbstractPage#initializeValues()
     */
	@Override
	@SuppressWarnings("unchecked")
    protected void initializeValues() {
		Replies replies = main.getConfigHelper().getReplies();
        autoReplies.addAll(replies.getAutoReply());
        quickReplies.addAll(replies.getQuickReply());
        autoViewer.refresh();
        quickViewer.refresh();
        if(replies.getAutoReply().size() > 0) {
	        currentAutoReply = autoViewer.getTable().getItem(replies.getCurrentAutoReply()); 
	        currentAutoReply.setChecked(true);            
        }
        if(replies.getQuickReply().size() > 0) {
	        currentQuickReply = quickViewer.getTable().getItem(replies.getCurrentQuickReply()); 
	        currentQuickReply.setChecked(true);            
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -