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

📄 mainwindow.java

📁 Libgist is an implementation of the Generalized Search Tree, a template index structure that makes i
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	    opThread.dispatchCmd(cmd);	}    });    openItem = new JMenuItem("Open...");    final JFileChooser openChooser = new JFileChooser(".");    openChooser.setDialogTitle("Open Index");    openChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);    fileMenu.add(openItem);    openItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    // first close currently opened index	    // let user choose index file	    int retval = openChooser.showOpenDialog(MainWindow.this);	    if (retval != 0) {		return;	    }	    String fileName = openChooser.getSelectedFile().getPath();	    // open AM	    cmd.reset();	    cmd.cmdType = LibgistCommand.OPEN;	    cmd.indexName.append(fileName);	    opThread.dispatchCmd(cmd);	    enableIndexOpened();	}    });    closeItem = new JMenuItem("Close");    fileMenu.add(closeItem);    closeItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    // close AM	    cmd.reset();	    cmd.cmdType = LibgistCommand.CLOSE;	    opThread.dispatchCmd(cmd);	    //MainWindow.this.setTitle("amdb");	}    });    flushItem = new JMenuItem("Flush");    fileMenu.add(flushItem);    flushItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    // open AM	    cmd.reset();	    cmd.cmdType = LibgistCommand.FLUSH;	    opThread.dispatchCmd(cmd);	}    });    fileMenu.addSeparator();    optionsItem = new JMenuItem("Properties...");    fileMenu.add(optionsItem);    optionsItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent e) {	    Properties.edit();	}    });    settingsItem = new JMenuItem("Save Settings");    fileMenu.add(settingsItem);    settingsItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent e) {	    saveConfig();	}    });    fileMenu.addSeparator();    exitItem = new JMenuItem("Exit");    fileMenu.add(exitItem);    exitItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent e) {	    // close AM	    opThread.stopNow();	    Libgist.cleanup();	    System.exit(0);	}    });}private voidcreateOpsMenu(){    opsMenu = new JMenu("Ops");    menuBar.add(opsMenu);    insertItem = new JMenuItem("Insert...");    opsMenu.add(insertItem);    final Object[] insertMsg = new Object[4];    insertMsg[0] = "Key:";    final JTextField insertKey = new JTextField("");    insertMsg[1] = insertKey;    insertMsg[2] = "Data:";    final JTextField insertData = new JTextField("");    insertMsg[3] = insertData;    insertItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    int response = JOptionPane.showOptionDialog(MainWindow.this, insertMsg, "Insert",		JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE,		null, null, null);	    if (response != JOptionPane.OK_OPTION) {	        return;	    }	    // insert new item	    cmd.reset();	    cmd.cmdType = LibgistCommand.INSERT;	    cmd.key.append(insertKey.getText());	    cmd.data.append(insertData.getText());	    opThread.dispatchCmd(cmd);	}    });    deleteItem = new JMenuItem("Delete...");    opsMenu.add(deleteItem);    final Object[] deleteMsg = new Object[2];    deleteMsg[0] = "Query:";    final JTextField deleteQuery = new JTextField("");    deleteMsg[1] = deleteQuery;    deleteItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    int response = JOptionPane.showOptionDialog(MainWindow.this, deleteMsg,	        "Delete", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE,		null, null, null);	    if (response != JOptionPane.OK_OPTION) {	        return;	    }	    // delete item(s)	    cmd.reset();	    cmd.cmdType = LibgistCommand.REMOVE;	    cmd.qual.append(deleteQuery.getText());	    opThread.dispatchCmd(cmd);	}    });    searchItem = new JMenuItem("Search...");    opsMenu.add(searchItem);    final Object[] searchMsg = new Object[4];    searchMsg[0] = "Query:";    final JTextField searchQuery = new JTextField("");    searchMsg[1] = searchQuery;    searchMsg[2] = "Retrieval Limit:";    final JTextField retrLimit = new JTextField("");    searchMsg[3] = retrLimit;    searchItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    int response = JOptionPane.showOptionDialog(MainWindow.this, searchMsg, "Search",		JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE,		null, null, null);	    if (response != JOptionPane.OK_OPTION) {	        return;	    }	    int limit = 0; // 0 means "get them all"	    // if no limit is specified: we leave it at 0	    if (retrLimit.getText() != null) {		try {		    limit = Integer.parseInt(retrLimit.getText());		} catch (NumberFormatException e) {		    // user typed junk		    limit = 0;		    retrLimit.setText("");		}	    }	    // execute query	    cmd.reset();	    cmd.cmdType = LibgistCommand.FETCH;	    cmd.qual.append(searchQuery.getText());	    cmd.fetchLimit = limit;	    opThread.dispatchCmd(cmd);	}    });    executeItem = new JMenuItem("Execute...");    final JFileChooser executeChooser = new JFileChooser(".");    executeChooser.setDialogTitle("Execute Script");    executeChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);    opsMenu.add(executeItem);    executeItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    // let user choose script file	    int retval = executeChooser.showDialog(MainWindow.this, "Execute");	    if (retval != 0) {	        return;	    }	    // execute script	    cmd.reset();	    cmd.cmdType = LibgistCommand.SCRIPT;	    cmd.scriptFile.append(executeChooser.getSelectedFile().getPath());	    opThread.dispatchCmd(cmd);	}    });}private voidcreateDebugMenu(){    debugMenu = new JMenu("Debug");    menuBar.add(debugMenu);    debugMenu.add(stepAction);    debugMenu.add(nextAction);    debugMenu.add(contAction);    debugMenu.add(stopAction);    traceAllItem = new JCheckBoxMenuItem("Trace All");    debugMenu.add(traceAllItem);    debugMenu.addSeparator();    breakpointsItem = new JMenuItem("Breakpoints...");    debugMenu.add(breakpointsItem);    breakpointsItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    Breakpoints.edit();	}    });    Breakpoints.setParent(this);}private voidcreateTreeStatsMenu(){    treeStatsMenu = new JMenu("Tree Stats");    menuBar.add(treeStatsMenu);    utilItem = new JMenuItem("Utilization");    treeStatsMenu.add(utilItem);    utilItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent e) {	    Libgist.getWkldNodeStats(Libgist.NODEUTIL, 0, false);	    treeView.showStats(Libgist.nodeCnt, Libgist.displayStats, utilItem.getText());	}    });    slotCntItem = new JMenuItem("Slot Count");    treeStatsMenu.add(slotCntItem);    slotCntItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent e) {	    Libgist.getWkldNodeStats(Libgist.SLOTCNT, 0, false);	    treeView.showStats(Libgist.nodeCnt, Libgist.displayStats, slotCntItem.getText());	}    });    predSzItem = new JMenuItem("Predicate Size");    treeStatsMenu.add(predSzItem);    predSzItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent e) {	    Libgist.getWkldNodeStats(Libgist.PREDSIZE, 0, false);	    treeView.showStats(Libgist.nodeCnt, Libgist.displayStats, predSzItem.getText());	}    });}private voidcreateAnalysisMenu(){    analysisMenu = new JMenu("Analysis");    menuBar.add(analysisMenu);    // analysis-related variables    analysisInfo = new AnalysisInfo();    wkldStatsDlg = new WkldStatsDlg(this);    splitStatsDlg = new SplitStatsDlg(this);    penaltyStatsDlg = new PenaltyStatsDlg(this);    newAnalysisItem = new JMenuItem("Create Analysis ...");    analysisMenu.add(newAnalysisItem);    newAnalysisItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    JOptionPane.showMessageDialog(MainWindow.this,	        "Not implemented yet.\nUse command createanl in gistcmdline instead.");	}    });    openAnalysisItem = new JMenuItem("Open Analysis ...");    final JFileChooser openAnalysisChooser = new JFileChooser(".");    openAnalysisChooser.setDialogTitle("Open Analysis");    openAnalysisChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);    analysisMenu.add(openAnalysisItem);    openAnalysisItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    int retval = openAnalysisChooser.showOpenDialog(MainWindow.this);	    if (retval != 0) {		    return;	    }	    File f = openAnalysisChooser.getSelectedFile();	    cmd.reset();	    cmd.cmdType = LibgistCommand.OPENANL;	    cmd.analysisFile = f;	    opThread.dispatchCmd(cmd);	}    });    completeAnalysisItem = new JMenuItem("Complete Analysis ...");    analysisMenu.add(completeAnalysisItem);    completeAnalysisItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    JOptionPane.showMessageDialog(MainWindow.this,	        "Not implemented yet.\nUse commands wkldstats, splitstats and penaltystats\nin gistcmdline instead.");	}    });    analysisMenu.addSeparator();    wkldStatsItem = new JMenuItem("Workload Stats ...");    analysisMenu.add(wkldStatsItem);    wkldStatsItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    wkldStatsDlg.setVisible(true);	}    });    splitStatsItem = new JMenuItem("Split Stats ...");    analysisMenu.add(splitStatsItem);    wkldStatsItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    splitStatsDlg.setVisible(true);	}    });    penaltyStatsItem = new JMenuItem("Penalty Stats ...");    analysisMenu.add(penaltyStatsItem);    penaltyStatsItem.addActionListener(new ActionListener() {        public void actionPerformed(ActionEvent event) {	    penaltyStatsDlg.setVisible(true);	}    });}private voidcreateWindowsMenu(){    windowsMenu = new JMenu("Windows");    menuBar.add(windowsMenu);    showCmdsItem = new JCheckBoxMenuItem("Show Commands");    showCmdsItem.setState(true);    windowsMenu.add(showCmdsItem);    showResultsItem = new JCheckBoxMenuItem("Show Results");    showResultsItem.setState(true);    windowsMenu.add(showResultsItem);    showTraceItem = new JCheckBoxMenuItem("Show Trace Output");    showTraceItem.setState(true);    windowsMenu.add(showTraceItem);    tileItem = new JMenuItem("Tile");    tileItem.addActionListener(new ActionListener() {	public void actionPerformed(ActionEvent event) {	    MainWindow.this.tile();	}    });    windowsMenu.add(tileItem);}private voidsetTree(String title){    consoleFrame.setTree(title);}private voidopen(String indexName){    DbgOutput.println(1, "open() " + indexName);    cmd.reset();    cmd.cmdType = LibgistCommand.OPEN;    cmd.indexName.append(indexName);    opThread.dispatchCmd(cmd);}public static voidmain(String[] argv){    MainWindow win;    DbgOutput.toStdout();    win = new MainWindow();    // process cmd line arguments    int i;    for (i = 0; i < argv.length; i++) {	if (argv[i].equals("-D")) {	    i++;	    // try to interpret the next argument as the debug level	    int dbgLvl = 1; // basic debug level	    if (i >= argv.length) {	        // no more arguments, we stick with debug level 1		break;	    }	    try {	        dbgLvl = Integer.parseInt(argv[i]);	    } catch(NumberFormatException e) {	        dbgLvl = 1; // didn't work, this is probably a filename		win.open(argv[i]);	    }	    DbgOutput.setDbgLevel(dbgLvl);	    Libgist.setDbgLevel(dbgLvl);	} else if (argv[i].equals("-h")) { 	    // print help message and exit	    System.out.println("Usage: amdb [-D <dbglevel> | -h] [index]");	    System.exit(0);	} else {	    // this is a name of an index, open it	    //System.out.println("open " + argv[i]);	    win.open(argv[i]);	}    }    win.setTitle("amdb");    win.setSize(800, 600);    win.setLocation(50, 50);    win.setVisible(true);}}

⌨️ 快捷键说明

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