protected void setData(String strChecksum) { String strValue = (String) m_cmbPath.getSelectedItem(); if (strValue == null || strValue.equals("")) return; m_cmbChecksum.removeAllItems(); String strPath = strValue.substring(strValue.lastIndexOf("/") + 1); strPath = UtilB.unixPathToWindows(FileUtil.SYS_VNMR + "/p11/checksums/" + strPath); strPath = FileUtil.openPath(strPath); if (strPath != null) { File file = new File(strPath); String[] files = file.list(); int nSize = files.length; for (int i = 0; i < nSize; i++) { String strfile = files[i]; m_cmbChecksum.addItem(strfile); } int nIndex = strChecksum.lastIndexOf("/"); if (nIndex < 0) nIndex = strChecksum.lastIndexOf(File.separator); if (nIndex + 1 < strChecksum.length()) strChecksum = strChecksum.substring(nIndex + 1); m_cmbChecksum.setSelectedItem(strChecksum); } }
protected void checksumValidation() { String strValue = (String) m_cmbPath.getSelectedItem(); int nIndex = strValue.lastIndexOf("/"); if (nIndex < 0) nIndex = strValue.lastIndexOf(File.separator); String strPath = strValue.substring(nIndex + 1); strPath = new StringBuffer() .append(FileUtil.SYS_VNMR) .append("/p11/checksums/") .append(strPath) .append("/") .append(m_cmbChecksum.getSelectedItem()) .toString(); strPath = UtilB.unixPathToWindows(strPath); strPath = FileUtil.openPath(strPath); if (strPath == null) return; String[] cmd = { WGlobal.SHTOOLCMD, WGlobal.SHTOOLOPTION, WGlobal.SUDO + WGlobal.SBIN + "chchsums " + strPath }; runScript(cmd, m_txaChecksum); }
/** * Write the file by writing the values from the labels, and the values list. * * @param strFile the file to be written. * @param aListLabels arraylist of texfields of labels. * @param aListValues arraylist of texfields of values. */ protected void writeFile( String strUser, String strFile, ArrayList aListLabels, ArrayList aListValues) { String strPath = FileUtil.openPath(strFile); String strLabel = ""; String strValue = ""; StringBuffer sbValues = new StringBuffer(); JTextField txfLabel = null; JTextField txfValue = null; boolean bNewFile = false; int nFDAMode = Util.getPart11Mode(); // if it's the part11 pnl and the mode is nonFDA, // then don't write the file for this panel // the other way is not true. if (this instanceof DisplayParentDirectory) { if ((isPart11Pnl() && nFDAMode == Util.NONFDA)) { return; } } if (strPath == null) { strPath = FileUtil.savePath(strFile); bNewFile = true; } if (strPath == null || aListLabels == null) return; if (aListValues == null) aListValues = new ArrayList(); // Get the list of the textfields for values and labels. int nLblSize = aListLabels.size(); int nValueSize = aListValues.size(); ArrayList<String> labelList = new ArrayList<String>(); // Get the value from each textfield, and add it to the buffer. for (int i = 0; i < nLblSize; i++) { txfLabel = (JTextField) aListLabels.get(i); txfValue = (i < nValueSize) ? (JTextField) aListValues.get(i) : null; strLabel = (txfLabel != null) ? txfLabel.getText() : null; strValue = (txfValue != null) ? txfValue.getText() : ""; // We need to be sure they don't have two data directories with // the same labels. Save the label list if we are writing to // the "data" file. if (strFile.indexOf("data") != -1) { if (labelList.contains(strLabel)) { Messages.postError( "The Data Directory specifications " + "must not have duplicate Label names. " + "The Label \"" + strLabel + "\" is duplicated. " + "Skipping the second instance. Please " + "specify a new Label."); continue; } else labelList.add(strLabel); } if (strLabel == null || strLabel.trim().length() <= 0 || strValue.equals(INFOSTR)) continue; // for user template tab, don't need to parse the value if (!(this instanceof DisplayTemplate)) strValue = getValue(strUser, strValue); strLabel = strLabel.trim(); if (strValue != null) strValue = strValue.trim(); // sbValues.append("\""); sbValues.append(strLabel); // sbValues.append("\" "); sbValues.append(File.pathSeparator); sbValues.append(strValue); sbValues.append("\n"); } if (Util.isPart11Sys()) writeAuditTrail(strPath, strUser, sbValues); // write the data to the file. BufferedWriter writer = WFileUtil.openWriteFile(strPath); WFileUtil.writeAndClose(writer, sbValues); // if it's a template file, then make it writable for everyone. if (bNewFile) { String strCmd = "chmod 755 "; if (this instanceof DisplayTemplate) strCmd = "chmod 777 "; if (Util.iswindows()) strPath = UtilB.windowsPathToUnix(strPath); String[] cmd = {WGlobal.SHTOOLCMD, WGlobal.SHTOOLOPTION, strCmd + strPath}; WUtil.runScriptInThread(cmd); } }