📄 rivercrescentframe.java
字号:
for ( int i=0;i<taskInfoList.size();i++){ if ( TaskTable.isRowSelected(i) ) selected[i] = true; else selected[i] = false; } //先全部选上,再去掉没被选上的。 TaskTable.setRowSelectionInterval(0,taskInfoList.size()-1); for ( int i=0;i<taskInfoList.size();i++) if ( selected[i] ) TaskTable.removeRowSelectionInterval(i,i); }//GEN-LAST:event_ReverseSelectedMenuItemActionPerformed private void AllSelectedMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AllSelectedMenuItemActionPerformed // TODO 将在此处增加您的处理代码: if (taskInfoList.size() == 0) { JOptionPane.showMessageDialog(this,"当前没有任务!","警告",JOptionPane.WARNING_MESSAGE); return; } TaskTable.setRowSelectionInterval(0,taskInfoList.size()-1); }//GEN-LAST:event_AllSelectedMenuItemActionPerformed private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stopButtonActionPerformed // TODO 将在此处增加您的处理代码: int selectedIndex = TaskTable.getSelectedRow(); if ( selectedIndex == -1 || (selectedIndex+1)>taskInfoList.size() ) {JOptionPane.showMessageDialog(this,"请先选择任务!","警告",JOptionPane.WARNING_MESSAGE); return; } for ( int i=0;i<taskInfoList.size();i++){ if ( TaskTable.isRowSelected(i) ) {System.out.println("准备停止任务" + i); this.doStop(i); } } }//GEN-LAST:event_stopButtonActionPerformed private void SearchMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SearchMenuItemActionPerformed // TODO 将在此处增加您的处理代码: this.doSearch(); }//GEN-LAST:event_SearchMenuItemActionPerformed private void GetGroupIDMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_GetGroupIDMenuItemActionPerformed // TODO 将在此处增加您的处理代码: this.doOutport(); }//GEN-LAST:event_GetGroupIDMenuItemActionPerformed private void outportButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_outportButtonActionPerformed // TODO 将在此处增加您的处理代码: this.doOutport(); }//GEN-LAST:event_outportButtonActionPerformed private void PublishMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_PublishMenuItemActionPerformed // TODO 将在此处增加您的处理代码: this.doPublish(); }//GEN-LAST:event_PublishMenuItemActionPerformed private void publishButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_publishButtonActionPerformed // TODO 将在此处增加您的处理代码: this.doPublish(); }//GEN-LAST:event_publishButtonActionPerformed private void WWWMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_WWWMenuItemActionPerformed // TODO 将在此处增加您的处理代码: try{Runtime.getRuntime().exec("cmd.exe /c start http://www.jxta.org"); }catch (Exception e) {} }//GEN-LAST:event_WWWMenuItemActionPerformed private void JXTAMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JXTAMenuItemActionPerformed // TODO 将在此处增加您的处理代码: JXTADialog jd = new JXTADialog(this,true); jd.show(); }//GEN-LAST:event_JXTAMenuItemActionPerformed private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitButtonActionPerformed // TODO 将在此处增加您的处理代码: System.exit(0); }//GEN-LAST:event_exitButtonActionPerformed private void AboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AboutMenuItemActionPerformed // TODO 将在此处增加您的处理代码: AboutDialog ad = new AboutDialog(this,true); ad.show(); this.repaint(); }//GEN-LAST:event_AboutMenuItemActionPerformed private void searchButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_searchButtonActionPerformed // TODO 将在此处增加您的处理代码: this.doSearch(); }//GEN-LAST:event_searchButtonActionPerformed private void channelListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_channelListValueChanged // TODO 将在此处增加您的处理代码: fileListPanel.hide(); localPCPanel.hide(); for ( int i=0;i<taskStatusPanelList.size();i++) ((TaskStatusPanel)taskStatusPanelList.get(i)).hide(); System.out.println("taskStatusPanelList= " + taskStatusPanelList.size()); switch (channelList.getSelectedIndex() ){ case 0 : {System.out.println("0");this.doShowTaskStatusPanel();break;} case 1 : {System.out.println("1");showPanel.add(fileListPanel,BorderLayout.CENTER);fileListPanel.show();backgroundPanel.updateUI();this.doShowFileListPanel(fileListPanel.getPane(),fileListPanel.getLabel() );break;} case 2 : {System.out.println("2");showPanel.add(localPCPanel,BorderLayout.CENTER);localPCPanel.show();backgroundPanel.updateUI();this.doShowLoaclPC(localPCPanel.getPane());break;} } }//GEN-LAST:event_channelListValueChanged private void channelListMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_channelListMouseClicked }//GEN-LAST:event_channelListMouseClicked private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed System.exit(0); }//GEN-LAST:event_exitMenuItemActionPerformed private void doSearch(){ FindNetDialog fnd = new FindNetDialog(this,true,nw); fnd.show(); int i = fnd.getReturnStatus(); int j = fnd.getJoinedGroupIndex(); String niceName = fnd.getNiceName(); //没按加入时,直接退出,不做任何事情。 if ( i != 1 ) return; //加入组的操作 nowGroup = nw.joinGroup(j, niceName); joinedPeerGroups = nw.getJoinedPeerGroups(); PeerGroup pg = (PeerGroup)((Hashtable)joinedPeerGroups.getGroup(nowGroup)).get("PeerGroup"); PipeService ps = (PipeService)((Hashtable)joinedPeerGroups.getGroup(nowGroup)).get("PipeService"); PipeAdvertisement padv = (PipeAdvertisement)((Hashtable)joinedPeerGroups.getGroup(nowGroup)).get("PipeAdvertisement"); String type = "join"; int nums = taskInfoList.size(); TaskInfo taskInfo = new TaskInfo(pg , ps , padv , type , TaskTable); taskInfo.setTaskIndex(nums); //自动开始任务 Task task = new Task(); taskInfo.taskUpdata(); //保存发布的信息 taskInfoList.addElement(taskInfo); taskList.addElement(task); //设置任务信息所需的DTM。 taskStatusPanelList.addElement(new TaskStatusPanel()); taskStatusTableModelList.addElement(((DefaultTableModel)((TaskStatusPanel)taskStatusPanelList.get(taskInfo.getTaskIndex())).getPane().getModel()) ); taskInfo.setTaskStatusTableModel((DefaultTableModel)taskStatusTableModelList.get(taskInfo.getTaskIndex())); ((DefaultTableModel)taskStatusTableModelList.get(taskInfo.getTaskIndex())).setRowCount(0); com.sinpool.rivercrescent.myutil.RSConfigure rsc = com.sinpool.rivercrescent.myutil.RSConfigure.readFromDisk(); Boolean b_auto = new Boolean(true); Boolean b_manual = new Boolean(false); boolean flag = rsc.getP_J_Launch_CheckBox_Selected(); if ( flag ) { taskRunStatus.add(nums, b_auto); task.startTask(taskInfo); } else { taskRunStatus.add(nums, b_manual); } } private void doPublish(){ //填写必要信息,如组名、描述和昵称, PublishArgsDialog pad = new PublishArgsDialog(this,true); pad.show(); int i = pad.getReturnStatus(); if ( i == 0 ) return; String groupName = pad.getGroupName(); String groupMiaoShu = pad.getGroupMiaoShu(); String groupNiceName = pad.getNiceName(); boolean fileType = pad.getFileType(); int pieceLength = pad.getPieceLength(); //选择共享的文件。 EncoderBencoding eb = new EncoderBencoding(); eb.setSingle(fileType); eb.setPL(pieceLength); eb.encoderBencoding(); //获得当前已经加入的组 nowGroup = nw.publishNewPeerGroup(groupName, groupMiaoShu, groupNiceName); joinedPeerGroups = nw.getJoinedPeerGroups(); //获得构造TaskInfo对象的参数 PeerGroup pg = (PeerGroup)((Hashtable)joinedPeerGroups.getGroup(nowGroup)).get("PeerGroup"); String rfn = eb.getRiverscentFileName(); String fap ; if (fileType)//单文件 fap = eb.getShareFileAbsoluteFileName(); else //多文件 fap = eb.getShareFilePath(); PipeService ps = (PipeService)((Hashtable)joinedPeerGroups.getGroup(nowGroup)).get("PipeService"); PipeAdvertisement padv = (PipeAdvertisement)((Hashtable)joinedPeerGroups.getGroup(nowGroup)).get("PipeAdvertisement"); String type = "publish"; //获得当前加入了几个组 int nums = taskInfoList.size(); //设置当前任务的索引 TaskInfo taskInfo = new TaskInfo(pg,rfn,fap,ps,padv,type,TaskTable); taskInfo.setTaskIndex(nums); //自动开始任务 Task task = new Task(); taskInfo.taskUpdata(); //保存发布的信息 taskInfoList.addElement(taskInfo); taskList.addElement(task); //设置任务信息所需的DTM。 taskStatusPanelList.addElement(new TaskStatusPanel()); taskStatusTableModelList.addElement(((DefaultTableModel)((TaskStatusPanel)taskStatusPanelList.get(taskInfo.getTaskIndex())).getPane().getModel()) ); taskInfo.setTaskStatusTableModel((DefaultTableModel)taskStatusTableModelList.get(taskInfo.getTaskIndex())); ((DefaultTableModel)taskStatusTableModelList.get(taskInfo.getTaskIndex())).setRowCount(0); com.sinpool.rivercrescent.myutil.RSConfigure rsc = com.sinpool.rivercrescent.myutil.RSConfigure.readFromDisk(); Boolean b_auto = new Boolean(true); Boolean b_manual = new Boolean(false); boolean flag = rsc.getP_J_Launch_CheckBox_Selected(); if ( flag ) { taskRunStatus.add(nums, b_auto); task.startTask(taskInfo); } else { taskRunStatus.add(nums, b_manual); } } private void doOutport(){ int selectedIndex = TaskTable.getSelectedRow(); if ( selectedIndex == -1 ) {JOptionPane.showMessageDialog(this,"请先选择一个任务!","警告",JOptionPane.WARNING_MESSAGE); return; } else { if ( selectedIndex <= (taskInfoList.size()-1) ){ String id = ((TaskInfo)taskInfoList.get(selectedIndex)).getTaskGroupID(); JOptionPane.showInputDialog(this,"您可以把它发布到Web页,使更多的人知道它。", "组ID",JOptionPane.INFORMATION_MESSAGE,null,null, id); } else {JOptionPane.showMessageDialog(this,"请先选择一个任务!","警告",JOptionPane.WARNING_MESSAGE); return; } } } private void doStop(int index){ if ( ((Boolean)taskRunStatus.get(index)).booleanValue() ){System.out.println("停止了任务" + index); Boolean b = new Boolean(false); TaskInfo ti = (TaskInfo)taskInfoList.get(index); ((Task)taskList.get(index)).stopTask(); taskRunStatus.add(ti.getTaskIndex(),b ); } } //index 是当前任务的索引号 //可以是TaskTable 的索引号,再次启动时 //可以是任务的索引号,由doPublish 或 doJoin 方法启动时 private void doStart(int index){ if ( !((Boolean)taskRunStatus.get(index)).booleanValue() ){ TaskInfo ti = (TaskInfo)taskInfoList.get(index); ((Task)taskList.get(index)).startTask(ti); Boolean b = new Boolean(true); taskRunStatus.add(ti.getTaskIndex(),b ); } } private void doOpen(){ int selectedIndex = TaskTable.getSelectedRow(); if ( selectedIndex == -1 ) {JOptionPane.showMessageDialog(this,"请先选择一个任务!","警告",JOptionPane.WARNING_MESSAGE); return; } TaskInfo ti = ((TaskInfo)taskInfoList.get(selectedIndex)); String path; if ( ((String)((Hashtable)ti.getTaskDictionary()).get("type")).equals("single") ) path = (new File(ti.getTaskFileName())).getParent(); else path = ti.getTaskFileName(); try {Runtime.getRuntime().exec("explorer " + path);} catch (Exception e) {System.out.println("打开文件夹时出错!");} } private void doDelete(int index,boolean onlyDeleteTask){ File file; //如果这个任务是活动的,先停止它 if ( !((Boolean)taskRunStatus.get(index)).booleanValue() ) this.doStop(index); //被删除任务下面的任务索引号都减一。 for ( int i =index;i<taskInfoList.size();i++){ TaskInfo ti = (TaskInfo)taskInfoList.get(i); int newIndex = ti.getTaskIndex() - 1; ti.setTaskIndex(newIndex); } //隐藏JTable中最后一个任务信息。 dtm.removeRow(index); //删除此任务的保存信息 TaskInfo ti = (TaskInfo)taskInfoList.get(index); //删除任务文件 String groupID = ti.getTaskGroupID(); file = new File("taskobj/" + groupID); if (file.delete()) System.out.println("删除了" + index + "任务文件"); else System.out.println("删除" + index + "任务文件时出错"); //删除元信息文件 String riverFileName = ti.getTaskRiverscentFileName(); file = new File(riverFileName); if (file.delete()) System.out.println("删除了" + index + "任务元信息文件"); else System.out.println("删除 " + index + "任务元信息文件时出错"); //如果要删除任务及文件 if ( !onlyDeleteTask ) { this.doDeleteAllFile(index); } taskRunStatus.remove(index); taskInfoList.remove(index); taskList.remove(index); taskStatusTableModelList.remove(index); taskStatusPanelList.remove(index); for ( int i=0;i<taskInfoList.size();i++){ ((TaskInfo)taskInfoList.get(i)).taskUpdata(); } System.out.println("删除操作完成!");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -