protected void doSave() throws Exception { for (XlsWorkbookSourceCodeModule workbook : modifiedWorkbooks) { workbook.save(); } }
/** * {@inheritDoc} */ @Override public String[] getDisplayValue(Object nodeObject, int i) { XlsWorkbookSourceCodeModule wb = (XlsWorkbookSourceCodeModule) nodeObject; return new String[] { wb.getDisplayName(), wb.getUri(), wb.getUri() }; }
public EditXlsModificationChecker(XlsWorkbookSourceCodeModule module) { this.module = module; this.sourceFile = module.getSourceFile(); this.beforeOpenFileSize = sourceFile.length(); this.beforeOpenModifiedTime = sourceFile.lastModified(); }
public void save() throws IOException { File sourceFile = getSourceFile(); String fileName = sourceFile.getCanonicalPath(); synchronized (fileAccessLock) { saveAs(fileName); resetModified(); } }
/** * Get path on file system for xls/xlsx file. * Returns null if path file isn't on file system (for example inside of jar). Example of such case * is AlgorithmTableSpecification.xls. * * @param workbookSourceModule module to get the path * @return path on file system or null if path can't be retrieved. */ private String getPath(XlsWorkbookSourceCodeModule workbookSourceModule) { String uri = workbookSourceModule.getSource().getUri(); log.debug("Workbook uri: {}", uri); String path = null; if (!uri.startsWith("jar:") && !uri.startsWith("vfs:")) { path = workbookSourceModule.getSourceFile().getAbsolutePath(); } return path; }
public String getWorksheetName() { Workbook currentWorkbook = workbooks.get(workbook).getWorkbook(); return currentWorkbook.getSheetName(worksheetIndex); }
private void initProjectHistory() { WorkbookSyntaxNode[] workbookNodes = getWorkbookNodes(); if (workbookNodes != null) { for (WorkbookSyntaxNode workbookSyntaxNode : workbookNodes) { XlsWorkbookSourceCodeModule sourceCodeModule = workbookSyntaxNode.getWorkbookSourceCodeModule(); Collection<XlsWorkbookListener> listeners = sourceCodeModule.getListeners(); for (XlsWorkbookListener listener : listeners) { if (listener instanceof XlsWorkbookSourceHistoryListener) { return; } } XlsWorkbookListener historyListener = new XlsWorkbookSourceHistoryListener(getHistoryManager()); sourceCodeModule.addListener(historyListener); } } }
public boolean isSourceModified() { WorkbookSyntaxNode[] workbookNodes = getWorkbookNodes(); if (workbookNodes != null) { for (WorkbookSyntaxNode node : workbookNodes) { XlsWorkbookSourceCodeModule workbookSourceCodeModule = node.getWorkbookSourceCodeModule(); if (workbookSourceCodeModule.isModified()) { getLocalRepository().getProjectState(workbookSourceCodeModule.getSourceFile().getPath()).notifyModified(); return true; } } } return false; }
/** * {@inheritDoc} */ @Override public String getUrl(Object nodeObject) { XlsWorkbookSourceCodeModule workbook = (XlsWorkbookSourceCodeModule) nodeObject; return workbook.getUri(); }
/** * Wrap source to XlsWorkbookSourceCodeModule */ protected XlsWorkbookSourceCodeModule getWorkbookSourceCodeModule(ExtensionModule extensionModule, IOpenSourceCodeModule source) throws OpenLCompilationException { try { // TODO Check the cases when source can be UrlSourceCodeModule or // another one. File projectFolder = new File(new File(new URI(source.getUri())).getParent()); return new XlsWorkbookSourceCodeModule(source, new LazyXmlRulesWorkbookLoader(projectFolder, extensionModule)); } catch (URISyntaxException e) { throw new OpenLCompilationException(e.getMessage(), e); } }
public XlsSheetSourceCodeModule(int sheetIndex, XlsWorkbookSourceCodeModule workbookSource) { this(workbookSource.getWorkbookLoader().getSheetLoader(sheetIndex), workbookSource); }
if (moduleSyntaxNode != null) { for (WorkbookSyntaxNode workbookSyntaxNode : moduleSyntaxNode.getWorkbookSyntaxNodes()) { workbookSyntaxNode.getWorkbookSourceCodeModule().getWorkbookLoader().setCanUnload(true); XlsWorkbookSourceCodeModule module = workbookSyntaxNode.getWorkbookSourceCodeModule(); boolean currentModule = this.moduleInfo.getRulesRootPath() == null || module.getSourceFile().getName().equals(FileUtils.getName(this.moduleInfo.getRulesRootPath().getPath())); module.getWorkbookLoader().setCanUnload(!currentModule);
public void openWorkbookForEdit(String workBookName) { for (WorkbookSyntaxNode workbookSyntaxNode : getWorkbookNodes()) { XlsWorkbookSourceCodeModule module = workbookSyntaxNode.getWorkbookSourceCodeModule(); if (module.getSourceFile().getName().equals(workBookName)) { module.setModificationChecker(new EditXlsModificationChecker(module)); break; } } }
public void afterOpenWorkbookForEdit(String workBookName) { for (WorkbookSyntaxNode workbookSyntaxNode : getWorkbookNodes()) { XlsWorkbookSourceCodeModule module = workbookSyntaxNode.getWorkbookSourceCodeModule(); if (module.getSourceFile().getName().equals(workBookName)) { ModificationChecker checker = module.getModificationChecker(); if (checker instanceof EditXlsModificationChecker) { ((EditXlsModificationChecker) checker).afterXlsOpened(); } break; } } }
protected void initWorkbooks() { workbooks = new HashMap<String, XlsWorkbookSourceCodeModule>(); WorkbookSyntaxNode[] syntaxNodes = WizardUtils.getWorkbookNodes(); for (WorkbookSyntaxNode node : syntaxNodes) { XlsWorkbookSourceCodeModule module = node.getWorkbookSourceCodeModule(); workbooks.put(module.getDisplayName(), module); } if (workbooks.size() > 0) { workbook = workbooks.keySet().iterator().next(); } }
public boolean isModified() { return workbookSource.isModified(); } }
ParsedGrid(String workbookPath, XlsSheetSourceCodeModule sheetSource, SheetDescriptor sheet, Object[][] cells, boolean use1904Windowing) { this.workbookPath = workbookPath; this.cells = cells; this.sheetSource = sheetSource; this.uri = sheetSource.getUri(); this.sheetDescriptor = sheet; this.use1904Windowing = use1904Windowing; findRegions(); sheetSource.getWorkbookSource().addListener(new WorkbookSaveListener()); }
/** * Remove listeners added in {@link #initProjectHistory()} */ private void removeListeners() { WorkbookSyntaxNode[] workbookNodes = getWorkbookNodes(); if (workbookNodes != null) { for (WorkbookSyntaxNode workbookSyntaxNode : workbookNodes) { XlsWorkbookSourceCodeModule sourceCodeModule = workbookSyntaxNode.getWorkbookSourceCodeModule(); Iterator<XlsWorkbookListener> iterator = sourceCodeModule.getListeners().iterator(); while (iterator.hasNext()) { XlsWorkbookListener listener = iterator.next(); if (listener instanceof XlsWorkbookSourceHistoryListener) { iterator.remove(); break; } } } } }
public String getWorksheetName() { Workbook currentWorkbook = workbooks.get(workbook).getWorkbook(); return currentWorkbook.getSheetName(worksheetIndex); }
private void initProjectHistory() { WorkbookSyntaxNode[] workbookNodes = getWorkbookNodes(); if (workbookNodes != null) { LocalRepository repository = getLocalRepository(); for (WorkbookSyntaxNode workbookSyntaxNode : workbookNodes) { XlsWorkbookSourceCodeModule sourceCodeModule = workbookSyntaxNode.getWorkbookSourceCodeModule(); Collection<XlsWorkbookListener> listeners = sourceCodeModule.getListeners(); for (XlsWorkbookListener listener : listeners) { if (listener instanceof XlsWorkbookSourceHistoryListener) { return; } } XlsWorkbookListener historyListener = new XlsWorkbookSourceHistoryListener(getHistoryManager()); sourceCodeModule.addListener(historyListener); sourceCodeModule.addListener(new XlsModificationListener(repository)); } } }