📄 replypage.java
字号:
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 + -