📄 mainframe.java
字号:
if((commend.length == 1) || commend[1].equals("/") || commend[1].equals(".") || commend[1].equals("..")){ // the invalid arguments
cmdOutputLabel.setText(sysPrompt + " mkdir: invalid argument.");
} else if( (treeModel.getChild(commend[1].split("/"))) != null){
cmdOutputLabel.setText(sysPrompt + " mkdir: file already exist.");
} else if((treeModel.getParent(commend[1].split("/"))) == null){
cmdOutputLabel.setText(sysPrompt + " mkdir: wrong path or dictory");
} else {
String fileName;
String[] dentry;
String tmpFileName;
//split the path
dentry = commend[1].split("/");
//get the file name
tmpFileName = dentry[dentry.length - 1];
if(tmpFileName.length() > 10){ //for the situation that the length of file name is larger than 10
fileName = tmpFileName.substring(0,9);
} else {
fileName = tmpFileName;
}
//create the inode
INode newINode = new INode(fileName,simDisk);
DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(newINode);
newChild.setAllowsChildren(true);
//insert the new tree node into the tree
try{
DefaultMutableTreeNode parent = (DefaultMutableTreeNode)treeModel.getParent(dentry);
treeModel.insertNodeInto(newChild,parent,parent.getChildCount());
cmdOutputLabel.setText(sysPrompt + " mkdir: create dirctory " + fileName + " scessfully !");
TreeNode[] nodes = treeModel.getPathToRoot(newChild);
TreePath pathToRoot = new TreePath(nodes);
fileTree.scrollPathToVisible(pathToRoot);
this.calculateDisk();
}
catch(IllegalStateException exception){
cmdOutputLabel.setText(sysPrompt + " mkdir: file is not allow to have children");
}
}
// cmdOutputLabel.setText(sysPrompt + "mkdir");
} else if(commend[0].equals("del")){ //the delete commend
if((commend.length == 1) || commend[1].equals("/") || commend[1].equals(".") || commend[1].equals("..")){ // the invalid arguments
cmdOutputLabel.setText(sysPrompt + " del: invalid argument.");
} else if((treeModel.getChild(commend[1].split("/"))) == null){
cmdOutputLabel.setText(sysPrompt + " del: file do not exist.");
} else if(treeModel.getChild(commend[1].split("/")).getAllowsChildren()){//if allow children ,then it is a dirctory .del can not del a dirctory
cmdOutputLabel.setText(sysPrompt + " del: can not delete a dirctory");
} else {
treeModel.removeNodeFromParent((DefaultMutableTreeNode)treeModel.getChild(commend[1].split("/")));
String fileName;
String[] dentry;
dentry = commend[1].split("/");
fileName = dentry[dentry.length - 1];
cmdOutputLabel.setText(sysPrompt + " del: delete file " + fileName + " sucessfully !");
this.calculateDisk();
}
// cmdOutputLabel.setText(sysPrompt + "delete");
} else if(commend[0].equals("rm")){ //the rm commend
if((commend.length == 1) || commend[1].equals("/") || commend[1].equals(".") || commend[1].equals("..")){ // the invalid arguments
cmdOutputLabel.setText(sysPrompt + " rm: invalid argument.");
} else if((treeModel.getChild(commend[1].split("/"))) == null){
cmdOutputLabel.setText(sysPrompt + " rm: file do not exist.");
} else {
if((((DefaultMutableTreeNode)treeModel.getChild(commend[1].split("/"))).getChildCount()) > 0){
int result = JOptionPane.showConfirmDialog(null,"Dirctory is not null,still want to remove it?","Need Confirm",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
if(result == JOptionPane.YES_OPTION){
treeModel.removeNodeFromParent((DefaultMutableTreeNode)treeModel.getChild(commend[1].split("/")));
String fileName;
String[] dentry;
dentry = commend[1].split("/");
fileName = dentry[dentry.length - 1];
cmdOutputLabel.setText(sysPrompt + " rm: delete " + fileName + " sucessfully !");
this.calculateDisk();
}else {
cmdOutputLabel.setText(sysPrompt + " rm: aborted,since dirctory is not null.");
}
} else {
treeModel.removeNodeFromParent((DefaultMutableTreeNode)treeModel.getChild(commend[1].split("/")));
String fileName;
String[] dentry;
dentry = commend[1].split("/");
fileName = dentry[dentry.length - 1];
cmdOutputLabel.setText(sysPrompt + " rm: delete " + fileName + " sucessfully !");
this.calculateDisk();
}
}
// cmdOutputLabel.setText(sysPrompt + "rm");
} else if(commend[0].equals("edit")){ //the edit commend
if((commend.length == 1) || commend[1].equals("/") || commend[1].equals(".") || commend[1].equals("..")){ // the invalid arguments
cmdOutputLabel.setText(sysPrompt + " edit: invalid argument.");
} else if((treeModel.getChild(commend[1].split("/"))) == null){
cmdOutputLabel.setText(sysPrompt + " edit: file do not exist.");
} else if(treeModel.getChild(commend[1].split("/")).getAllowsChildren()){//if allow children ,then it is a dirctory .del can not del a dirctory
cmdOutputLabel.setText(sysPrompt + " edit: can not edit a dirctory");
} else {
INode targetINode;
targetINode = (INode)((DefaultMutableTreeNode)treeModel.getChild(commend[1].split("/"))).getUserObject();
EditorFrame editor = new EditorFrame(this,targetINode);
editor.setVisible(true);
this.calculateDisk();
}
// cmdOutputLabel.setText(sysPrompt + "edit");
} else if(commend[0].equals("run")){ //the run commend
if((commend.length == 1) || commend[1].equals("/") || commend[1].equals(".") || commend[1].equals("..")){ // the invalid arguments
cmdOutputLabel.setText(sysPrompt + " run: invalid argument.");
} else if((treeModel.getChild(commend[1].split("/"))) == null){
cmdOutputLabel.setText(sysPrompt + " run: file do not exist.");
} else if(treeModel.getChild(commend[1].split("/")).getAllowsChildren()){//if allow children ,then it is a dirctory .del can not del a dirctory
cmdOutputLabel.setText(sysPrompt + " run:target is not a executable file");
} else {
INode targetINode;
TreeNode targetTreeNode = treeModel.getChild(commend[1].split("/"));
targetINode = (INode)((DefaultMutableTreeNode)targetTreeNode).getUserObject();
String targetName = targetINode.toString();
int returnState = sysKernel.create(targetName,targetINode.readContent(),targetTreeNode);
if(returnState == -1){
cmdOutputLabel.setText(sysPrompt + " run:there is no free pcb");
} else if(returnState == -2){
cmdOutputLabel.setText(sysPrompt + " run:there is no free memory");
} else {
cmdOutputLabel.setText(sysPrompt + " run: Process: " + targetName + " create!");
}
}
// cmdOutputLabel.setText(sysPrompt + "run");
} else if(commend[0].equals("cp")){ //the copy commend
cmdOutputLabel.setText(sysPrompt + "copy");
} else if(commend[0].equals("mv")){ //the move commend
cmdOutputLabel.setText(sysPrompt + "move");
} else if(commend[0].equals("cd")){ //the change dir commend
if((commend.length == 1)){ // the invalid arguments
cmdOutputLabel.setText(sysPrompt + " cd: invalid argument.");
} else if(commend[1].equals("/")){
treeModel.setCurrentNode(rootNode);
this.setSysPrompt();
cmdOutputLabel.setText(sysPrompt + " cd: change dirctory sucessfully !");
} else if((treeModel.getChild(commend[1].split("/"))) == null){
cmdOutputLabel.setText(sysPrompt + " cd: dirctory do not exist.");
} else if(!treeModel.getChild(commend[1].split("/")).getAllowsChildren()){
cmdOutputLabel.setText(sysPrompt + " cd: can not change dirctory to a file.");
} else{
treeModel.setCurrentNode(treeModel.getChild(commend[1].split("/")));
this.setSysPrompt();
cmdOutputLabel.setText(sysPrompt + " cd: change dirctory sucessfully !");
}
// cmdOutputLabel.setText(sysPrompt + "cd");
} else { // invalid commend
cmdOutputLabel.setText(sysPrompt + "invalid commend");
}
}
cmdInputField.setText("");
}//GEN-LAST:event_cmdInputFieldActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MainFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel IRDisplayLabel;
private javax.swing.JLabel IRPromptLabel;
private javax.swing.JMenu TipMenu;
private javax.swing.JMenuItem aboutMenuItem;
private javax.swing.JTextArea blockProcArea;
private javax.swing.JLabel blockProcLabel;
private javax.swing.JLabel cmdHistoryLabel;
private javax.swing.JTextField cmdInputField;
private javax.swing.JLabel cmdInputLabel;
private javax.swing.JLabel cmdOutputLabel;
private javax.swing.JMenuItem cmdtipsMenuItem;
private javax.swing.JTextArea devAArea;
private javax.swing.JLabel devALabel;
private javax.swing.JLabel devATime;
private javax.swing.JTextArea devBArea;
private javax.swing.JLabel devBLabel;
private javax.swing.JLabel devBTime;
private javax.swing.JTextArea devCArea;
private javax.swing.JLabel devCLabel;
private javax.swing.JLabel devCTime;
private javax.swing.JTextArea diskUsageArea;
private javax.swing.JProgressBar diskUsageBar;
private javax.swing.JLabel diskUsageLabel;
private javax.swing.JTree fileTree;
private javax.swing.JTextArea finalResultArea;
private javax.swing.JLabel finalResultLabel;
private javax.swing.JMenu helpMenu;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JScrollPane jScrollPane4;
private javax.swing.JScrollPane jScrollPane5;
private javax.swing.JScrollPane jScrollPane6;
private javax.swing.JScrollPane jScrollPane7;
private javax.swing.JScrollPane jScrollPane8;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -