use of javax.swing.text.DefaultCaret in project OpenTCS-4 by touchmii.
the class ControlCenterInfoHandler method publish.
/**
* Displays the notification.
*
* @param notification The notification
*/
private void publish(UserNotification notification) {
DefaultCaret caret = (DefaultCaret) textArea.getCaret();
if (autoScroll) {
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
textArea.setCaretPosition(textArea.getDocument().getLength());
} else {
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
}
textArea.append(format(notification));
textArea.append("\n");
checkLength();
}
use of javax.swing.text.DefaultCaret in project OpenTCS-4 by touchmii.
the class KernelStatusPanel method initComponents.
private void initComponents() {
DefaultCaret caret = (DefaultCaret) statusTextArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
setAutoscrolls(true);
setPreferredSize(new Dimension(183, 115));
statusTextArea.setEditable(false);
statusTextArea.setColumns(20);
// NOI18N
statusTextArea.setFont(new Font("Monospaced", 0, 11));
statusTextArea.setLineWrap(true);
statusTextArea.setRows(5);
statusTextArea.setWrapStyleWord(true);
setViewportView(statusTextArea);
}
use of javax.swing.text.DefaultCaret in project opentcs by openTCS.
the class ControlCenterInfoHandler method publish.
/**
* Displays the notification.
*
* @param notification The notification
*/
private void publish(UserNotification notification) {
DefaultCaret caret = (DefaultCaret) textArea.getCaret();
if (autoScroll) {
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
textArea.setCaretPosition(textArea.getDocument().getLength());
} else {
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
}
textArea.append(format(notification));
textArea.append("\n");
checkLength();
}
use of javax.swing.text.DefaultCaret in project opentcs by openTCS.
the class KernelStatusPanel method initComponents.
private void initComponents() {
DefaultCaret caret = (DefaultCaret) statusTextArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
setAutoscrolls(true);
setPreferredSize(new Dimension(183, 115));
statusTextArea.setEditable(false);
statusTextArea.setColumns(20);
// NOI18N
statusTextArea.setFont(new Font("Monospaced", 0, 11));
statusTextArea.setLineWrap(true);
statusTextArea.setRows(5);
statusTextArea.setWrapStyleWord(true);
setViewportView(statusTextArea);
}
use of javax.swing.text.DefaultCaret in project NJAU-OS_sourse_design-simulated_linux by 404874351.
the class FileSystemCommander method initDataStructure.
/**
* 初始化页面数据结构
*/
public void initDataStructure() {
// 隐藏vim界面
this.vimScrollPane.setVisible(false);
this.vimModeInput.setVisible(false);
// 滚动条默认处于最底端
DefaultCaret cmdCaret = (DefaultCaret) cmd.getCaret();
cmdCaret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
DefaultCaret vimCaret = (DefaultCaret) vim.getCaret();
vimCaret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
// 初始化历史记录和对应指针
this.history = new Vector<>();
this.historyPointer = this.history.size();
// 添加窗口事件
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
dashboard.getManager().getFileSystem().setRoot(false);
}
});
// 添加键盘事件
cmd.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
switch(code) {
// 输入 backspace
case KeyEvent.VK_BACK_SPACE:
{
// 禁用过多的退格
if (commander.length() == 0) {
e.consume();
return;
}
// 命令内容撤销
commander = commander.substring(0, commander.length() - 1);
break;
}
// 输入 enter
case KeyEvent.VK_ENTER:
{
// 禁用默认换行
e.consume();
cmd.append("\n");
if (commander.length() > 0) {
// 发送一条指令并执行
dashboard.getManager().getFileSystem().cmd(commander);
}
// 准备接收下一条指令
readyToNext();
break;
}
// 输入 UP
case KeyEvent.VK_UP:
{
// 禁用默认光标移动
e.consume();
// 调用上一条历史指令
if (historyPointer > 0) {
String tempStr = cmd.getText();
cmd.setText(tempStr.substring(0, tempStr.length() - commander.length()));
commander = history.get(--historyPointer);
cmd.append(commander);
}
break;
}
// 输入 DOWN
case KeyEvent.VK_DOWN:
{
// 禁用默认光标移动
e.consume();
// 调用下一条历史指令
if (historyPointer < history.size() - 1) {
String tempStr = cmd.getText();
cmd.setText(tempStr.substring(0, tempStr.length() - commander.length()));
commander = history.get(++historyPointer);
cmd.append(commander);
}
break;
}
// 输入一般字符
default:
{
for (int i = 0; i < INVALID_CHAR.length; ++i) {
if (code == INVALID_CHAR[i]) {
return;
}
}
// 如果是可显示字符,则更新接收的指令
commander += new String(new char[] { e.getKeyChar() });
break;
}
}
}
});
// 该form只会在普通模式被激活
defaultInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
char key = e.getKeyChar();
// 普通模式
if (vimMode == VIM_PLAIN) {
switch(key) {
// 输入 I,进入插入模式
case 'i':
{
// defaultInput禁用
defaultInput.setEnabled(false);
// vim激活
vim.setEnabled(true);
vim.requestFocus(true);
// Mode禁用,显示INSERT标志
vimMode = VIM_INSERT;
vimState = "INSERT";
vimModeInput.setEnabled(false);
vimModeInput.setText(vimState);
break;
}
// 输入 :,进入命令模式
case ':':
{
// defaultInput禁用
defaultInput.setEnabled(false);
// vim禁用
vim.setEnabled(false);
// Mode激活
vimMode = VIM_COMMANDER;
vimState = ":";
vimModeInput.setText(vimState);
vimModeInput.setEnabled(true);
vimModeInput.requestFocus(true);
break;
}
// 输入其他字符即默认输入
default:
{
break;
}
}
} else {
e.consume();
}
}
});
// 该form只会在插入模式被激活
vim.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
// 插入模式
if (vimMode == VIM_INSERT) {
switch(code) {
// 输入 ESC,进入普通模式
case KeyEvent.VK_ESCAPE:
{
// defaultInput激活
defaultInput.setEnabled(true);
defaultInput.requestFocus(true);
// vim禁用
vim.setEnabled(false);
// Mode禁用,显示普通标志
vimMode = VIM_PLAIN;
vimState = "PLAIN";
vimModeInput.setEnabled(false);
vimModeInput.setText(vimState);
break;
}
// 输入其他字符即默认键入
default:
{
break;
}
}
} else {
e.consume();
}
}
});
// 该form只会在命令模式被激活
vimModeInput.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
// 命令模式,仅接受 :wq 和 :q
if (vimMode == VIM_COMMANDER) {
switch(code) {
// 输入 ESC,进入普通模式
case KeyEvent.VK_ESCAPE:
{
// defaultInput激活
defaultInput.setEnabled(true);
defaultInput.requestFocus(true);
// vim禁用
vim.setEnabled(false);
// Mode禁用,显示普通标志
vimMode = VIM_PLAIN;
vimState = "PLAIN";
vimModeInput.setEnabled(false);
vimModeInput.setText(vimState);
break;
}
// 输入 enter,尝试保存/退出
case KeyEvent.VK_ENTER:
{
// 禁用默认换行
e.consume();
if (vimModeInput.getText().equals(":wq")) {
// 保存并退出
dashboard.getManager().getFileSystem().vimWrite(history.get(history.size() - 1), vim.getText());
vimOut();
} else if (vimModeInput.getText().equals(":q")) {
// 放弃修改并直接退出
vimOut();
} else {
vimModeInput.setText(":");
}
break;
}
// 输入一般字符即默认键入
default:
{
break;
}
}
} else {
e.consume();
}
}
});
// 准备接收下一条指令
this.readyToNext();
}
Aggregations