private BungeniMessage validateAction_TextSelectedInsertAction() { BungeniMessage validMessage = new BungeniMessage(); // check if text was selected if ((ooDocument.isTextSelected() == false) || (ooDocument.isTextGraphicObjectSelected() == false)) { // fail if no text was selected return new BungeniMessage( BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, BungeniError.NO_TEXT_SELECTED); } if (m_subAction.sub_action_name().equals("section_creation")) { validMessage = validateAction_TextSelectedInsertAction_CreateSection(); return validMessage; } else if (m_subAction.sub_action_name().equals("debatedate_entry")) { validMessage = validateAction_TextSelectedInsertAction_DebateDateEntry(); return validMessage; } else if (m_subAction.sub_action_name().equals("debatetime_entry")) { validMessage = validateAction_TextSelectedInsertAction_DebateTimeEntry(); return validMessage; } else if (m_subAction.sub_action_name().equals("markup_logo")) { validMessage = validateAction_TextSelectedInsertAction_MarkupLogo(); return validMessage; } else { log.debug("validateAction_DocumentLevelAction() : method not implemented"); return new BungeniMessage( BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, BungeniError.METHOD_NOT_IMPLEMENTED); } }
private boolean action_addSectionIntoSectionwithStyling( OOComponentHelper ooDoc, String parentSection, String newSectionName, long sectionBackColor, float sectionLeftMargin) { boolean bState = false; try { ExternalMacro AddSectionInsideSection = ExternalMacroFactory.getMacroDefinition("AddSectionInsideSectionWithStyle"); AddSectionInsideSection.addParameter(ooDoc.getComponent()); AddSectionInsideSection.addParameter(parentSection); AddSectionInsideSection.addParameter(newSectionName); AddSectionInsideSection.addParameter(sectionBackColor); AddSectionInsideSection.addParameter(sectionLeftMargin); ooDoc.executeMacro(AddSectionInsideSection.toString(), AddSectionInsideSection.getParams()); bState = true; } catch (Exception ex) { log.error("action_addSectionIntoSectionwithStyling: error : " + ex.getMessage()); // checkFieldsMessages.add(ex.getLocalizedMessage()); bState = false; } finally { return bState; } }
private int check_systemContainerPositionCheck() { String systemContainer = m_subAction.system_container(); if (ooDocument.hasSection(systemContainer)) { String currentSection = ooDocument.currentSectionName(); if (currentSection.equals(systemContainer)) { return BungeniError.SYSTEM_CONTAINER_ALREADY_EXISTS; } else { return BungeniError.SYSTEM_CONTAINER_WRONG_POSITION; } } else { return BungeniError.SYSTEM_CONTAINER_CHECK_OK; } }
@Override public boolean validateSelectedInsert() { OOComponentHelper ooDoc = getContainerPanel().getOoDocument(); XNameAccess refs = ooDoc.getReferenceMarks(); if (refs.hasByName(_debatetimeRefName_)) { this.addErrorMessage( null, "This item has already been marked up. Please use the 'Edit Metadata' option to modify it"); return false; } return true; }
private boolean action_removeSectionWithoutContents(OOComponentHelper ooDoc, String sectionName) { boolean bResult = false; try { XTextSection theSection = ooDocument.getSection(sectionName); XText docText = ooDocument.getTextDocument().getText(); docText.removeTextContent(theSection); bResult = true; } catch (NoSuchElementException ex) { log.error("in removeSectionWIthoutContents : " + ex.getLocalizedMessage(), ex); bResult = false; } finally { return bResult; } }
/* * *This is a generic check, because a system action is always a generic action with generic validation * * */ private BungeniMessage validateAction_TextSelectedSystemAction() { int nRetValue = -1; BungeniMessage theMessage = new BungeniMessage(); // 1st check ... look for root nRetValue = check_rootContainerExists(); if (nRetValue == BungeniError.DOCUMENT_ROOT_DOES_NOT_EXIST) { return new BungeniMessage( BungeniError.TEXT_SELECTED_SYSTEM_ACTION_FAIL, BungeniError.DOCUMENT_ROOT_DOES_NOT_EXIST); } // 2nd check ... if text was selected if (ooDocument.isTextSelected() == false) { // fail if no text was selected return new BungeniMessage( BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, BungeniError.NO_TEXT_SELECTED); } // 3rd check ... if system container can be created here if (m_subAction.sub_action_name().equals("debatedate_entry")) { theMessage = validateAction_TextSelectedSystemAction_DebateDateEntry(); return theMessage; } else if (m_subAction.sub_action_name().equals("debatetime_entry")) { theMessage = validateAction_TextSelectedSystemAction_DebateTimeEntry(); return theMessage; } /* nRetValue = check_canSystemContainerBeCreated(); if (nRetValue == BungeniError.INVALID_CONTAINER_FOR_SYSTEM_ACTION) { return new BungeniMessage(BungeniError.TEXT_SELECTED_SYSTEM_ACTION_FAIL, BungeniError.INVALID_CONTAINER_FOR_SYSTEM_ACTION); } */ return new BungeniMessage(BungeniError.TEXT_SELECTED_SYSTEM_ACTION_PROCEED, nRetValue); }
private boolean action_createSystemContainerFromSelection( OOComponentHelper ooDoc, String systemContainerName) { boolean bResult = false; try { XTextViewCursor xCursor = ooDocument.getViewCursor(); XText xText = xCursor.getText(); XTextContent xSectionContent = ooDocument.createTextSection(systemContainerName, (short) 1); xText.insertTextContent(xCursor, xSectionContent, true); bResult = true; } catch (com.sun.star.lang.IllegalArgumentException ex) { bResult = false; log.error("in addTextSection : " + ex.getLocalizedMessage(), ex); } finally { return bResult; } }
private BungeniMessage validateAction_TextSelectedInsertAction_CreateSection() { int nRetValue = -1; // 1st tier, root container check nRetValue = check_rootContainerExists(); if (nRetValue == BungeniError.DOCUMENT_ROOT_DOES_NOT_EXIST) { return new BungeniMessage( BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, BungeniError.DOCUMENT_ROOT_DOES_NOT_EXIST); } // 2nd tier validation ...check up the hierarchy // check if there is a current section, and if the section can be created in the current section String currentSectionname = ooDocument.currentSectionName(); nRetValue = check_containment(currentSectionname); if (nRetValue == BungeniError.INVALID_SECTION_CONTAINER) { return new BungeniMessage( BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, BungeniError.INVALID_SECTION_CONTAINER); } // 3rd tier validation // check if section already exists (only for single type section) nRetValue = check_actionSectionExists(); if (nRetValue == BungeniError.SECTION_EXISTS) { return new BungeniMessage( BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, BungeniError.SECTION_EXISTS); } return new BungeniMessage(BungeniError.TEXT_SELECTED_INSERT_ACTION_PROCEED, nRetValue); }
private int check_canSystemContainerBeCreated() { // this is the actual container section type String containerSectionType = m_parentAction.action_section_type(); // this is the current section where the cursor is, we want to compare actual container // section type with required. String currentSection = ooDocument.currentSectionName(); HashMap<String, String> metaMap = ooDocument.getSectionMetadataAttributes(currentSection); if (metaMap.containsKey("BungeniSectionType")) { String currentSectionType = metaMap.get("BungeniSectionType"); if (currentSectionType.equals(containerSectionType)) { return BungeniError.VALID_CONTAINER_FOR_SYSTEM_ACTION; } else { return BungeniError.INVALID_CONTAINER_FOR_SYSTEM_ACTION; } } else return BungeniError.INVALID_CONTAINER_FOR_SYSTEM_ACTION; }
private BungeniMessage validateAction_TextSelectedInsertAction_DebateDateEntry() { int nRetValue = -1; /* if (m_subAction.system_container().length() > 0 ) { nRetValue = check_systemContainerExists(); if (nRetValue == BungeniError.SYSTEM_CONTAINER_NOT_PRESENT){ return new BungeniMessage(BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, nRetValue); } nRetValue = this.check_generic_systemContainerCheck(); switch (nRetValue) { case BungeniError.SYSTEM_CONTAINER_ALREADY_EXISTS: case BungeniError.SYSTEM_CONTAINER_WRONG_POSITION: case BungeniError.INVALID_CONTAINER_FOR_SYSTEM_ACTION: return new BungeniMessage(BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, nRetValue); default: return new BungeniMessage(BungeniError.TEXT_SELECTED_INSERT_ACTION_PROCEED, nRetValue); } } else { */ String currentSection = ooDocument.currentSectionName(); nRetValue = this.check_containment(currentSection); if (nRetValue == BungeniError.VALID_SECTION_CONTAINER) return new BungeniMessage( BungeniError.TEXT_SELECTED_INSERT_ACTION_PROCEED, BungeniError.VALID_SECTION_CONTAINER); else return new BungeniMessage( BungeniError.TEXT_SELECTED_INSERT_ACTION_FAIL, BungeniError.INVALID_SECTION_CONTAINER); /* } */ }
private boolean action_createRootSection(OOComponentHelper ooDoc, String sectionName) { boolean bResult = false; try { XText docText = ooDocument.getTextDocument().getText(); XTextCursor docCursor = docText.createTextCursor(); docCursor.gotoStart(false); docCursor.gotoEnd(true); XTextContent theContent = ooDocument.createTextSection(sectionName, (short) 1); docText.insertTextContent(docCursor, theContent, true); bResult = true; } catch (IllegalArgumentException ex) { log.error("in action_createRootSection :" + ex.getMessage()); log.error("in action_createRootSection :" + CommonExceptionUtils.getStackTrace(ex)); } finally { return bResult; } }
private int check_systemContainerExists() { String systemContainer = m_subAction.system_container(); if (ooDocument.hasSection(systemContainer)) { return BungeniError.SYSTEM_CONTAINER_ALREADY_EXISTS; } else { return BungeniError.SYSTEM_CONTAINER_NOT_PRESENT; } }
private int check_rootContainerExists() { String rootSectionname = CommonPropertyFunctions.getDocumentRootSection(); if (ooDocument.hasSection(rootSectionname)) { return BungeniError.DOCUMENT_ROOT_EXISTS; } else { return BungeniError.DOCUMENT_ROOT_DOES_NOT_EXIST; } }
private boolean action_replaceTextWithField( OOComponentHelper ooDoc, String hintName, String hintPlaceholderValue) { boolean bState = false; try { ExternalMacro ReplaceTextWithField = ExternalMacroFactory.getMacroDefinition("ReplaceTextWithField"); ReplaceTextWithField.addParameter(ooDoc.getComponent()); ReplaceTextWithField.addParameter(hintName); ReplaceTextWithField.addParameter(hintPlaceholderValue); ooDoc.executeMacro(ReplaceTextWithField.toString(), ReplaceTextWithField.getParams()); bState = true; } catch (Exception ex) { log.error("action_replaceTextWithField: error : " + ex.getMessage()); // checkFieldsMessages.add(ex.getLocalizedMessage()); bState = false; } finally { return bState; } }
private boolean action_addDocIntoSection( OOComponentHelper ooDoc, String intoSection, String fragmentName) { boolean bState = false; try { ExternalMacro insertDocIntoSection = ExternalMacroFactory.getMacroDefinition("InsertDocumentIntoSection"); insertDocIntoSection.addParameter(ooDoc.getComponent()); insertDocIntoSection.addParameter(intoSection); insertDocIntoSection.addParameter(fragmentName); ooDoc.executeMacro(insertDocIntoSection.toString(), insertDocIntoSection.getParams()); bState = true; } catch (Exception ex) { log.error("action_addImageIntoSection: error : " + ex.getMessage()); // checkFieldsMessages.add(ex.getLocalizedMessage()); bState = false; } finally { return bState; } }
private boolean action_setInputFieldValue( OOComponentHelper ooDoc, String hintName, String strDebateDate, String unprotectSection) { boolean bState = false; try { ExternalMacro setFieldValue = ExternalMacroFactory.getMacroDefinition("SetReferenceInputFieldValue"); setFieldValue.addParameter(ooDoc.getComponent()); setFieldValue.addParameter(hintName); setFieldValue.addParameter(strDebateDate); setFieldValue.addParameter(unprotectSection); ooDoc.executeMacro(setFieldValue.toString(), setFieldValue.getParams()); bState = true; } catch (Exception ex) { log.error("action_addImageIntoSection: error : " + ex.getMessage()); // checkFieldsMessages.add(ex.getLocalizedMessage()); bState = false; } finally { return bState; } }
private int check_actionSectionExists() { if (m_parentAction.action_numbering_convention().equals("single")) { if (ooDocument.hasSection(m_parentAction.action_naming_convention())) { return BungeniError.SECTION_EXISTS; } else { return BungeniError.SECTION_DOES_NOT_EXIST; } } else { // if section style is not single then multiple instances of the section can be // created. return BungeniError.SECTION_DOES_NOT_EXIST; } }
private void insertRefMark( OOComponentHelper ooHandle, XTextCursor thisCursor, String referenceName) { Object referenceMark = ooHandle.createInstance("com.sun.star.text.ReferenceMark"); XNamed xRefMark = ooQueryInterface.XNamed(referenceMark); xRefMark.setName(referenceName); XTextContent xContent = ooQueryInterface.XTextContent(xRefMark); try { thisCursor.getText().insertTextContent(thisCursor, xContent, true); } catch (Exception ex) { log.error("insertReferenceMark :" + ex.getMessage()); } }
private boolean action_addImageIntoSection( OOComponentHelper ooDoc, String intoSection, String logoPath) { boolean bState = false; try { log.debug( "executing addImageIntoSection : intoSection = " + intoSection + " , logoPath = " + logoPath); ExternalMacro addImageIntoSection = ExternalMacroFactory.getMacroDefinition("AddImageIntoSection"); addImageIntoSection.addParameter(ooDoc.getComponent()); addImageIntoSection.addParameter(intoSection); addImageIntoSection.addParameter(logoPath); ooDoc.executeMacro(addImageIntoSection.toString(), addImageIntoSection.getParams()); bState = true; } catch (Exception ex) { log.error("action_addImageIntoSection: error : " + ex.getMessage()); // checkFieldsMessages.add(ex.getLocalizedMessage()); bState = false; } finally { return bState; } }
@Override public boolean processSelectInsert() { // 1 check if reference exists .. if yes then fail... // if no markhighlighted text with named reference // also store selected date to metadata // 1 - add reference mark OOComponentHelper ooDoc = getContainerPanel().getOoDocument(); insertRefMark(ooDoc, ooDoc.getViewCursor(), this._debatetimeRefName_); // 2 - add metadata SimpleDateFormat formatter = new SimpleDateFormat(BungeniEditorProperties.getEditorProperty("metadataTimeFormat")); Object timeValue = this.dt_initdebate_timeofhansard.getValue(); Date hansardTime = (Date) timeValue; final String strTimeOfHansard = formatter.format(hansardTime); com.sun.star.text.XTextSection currentSection = ooDoc.currentSection(); HashMap<String, String> sectionMeta = new HashMap<String, String>() { { put(_debatetimeRefName_, strTimeOfHansard); } }; ooDoc.setSectionMetadataAttributes(currentSection, sectionMeta); return true; }
private int routeAction_TextSelectedInsertAction_CreateSection(BungeniMessage lastMessage) { String newSectionName = ""; newSectionName = get_newSectionNameForAction(m_parentAction); if (newSectionName.length() == 0) { } else { boolean bAction = action_createSystemContainerFromSelection(ooDocument, newSectionName); if (bAction) { // set section type metadata ooDocument.setSectionMetadataAttributes( newSectionName, get_newSectionMetadata(m_parentAction)); } else { log.error( "routeAction_TextSelectedInsertAction_CreateSection: error while creating section "); } } return 0; }
private int check_containment_Section(String currentContainerSection) { int error = BungeniError.GENERAL_ERROR; try { // get valid parent actions String strActionName = m_parentAction.action_name(); dbSettings.Connect(); String fetchParentQuery = SettingsQueryFactory.Q_FETCH_PARENT_ACTIONS(strActionName); log.debug("checkContainmentSection = " + fetchParentQuery); QueryResults qr = dbSettings.QueryResults(fetchParentQuery); dbSettings.EndConnect(); String[] actionSectionTypes = qr.getSingleColumnResult("ACTION_SECTION_TYPE"); // there can be multiple parents... so we iterate through the array if one of them is a valid // parent HashMap<String, String> sectionMetadata = ooDocument.getSectionMetadataAttributes(currentContainerSection); // if (sectionMetadata.get) String strDocSectionType = ""; if (sectionMetadata.containsKey("BungeniSectionType")) { strDocSectionType = sectionMetadata.get("BungeniSectionType").trim(); // check the doc section type against the array of valid action section types for (String sectionType : actionSectionTypes) { if (strDocSectionType.equals(sectionType.trim())) { error = BungeniError.VALID_SECTION_CONTAINER; break; } else { error = BungeniError.INVALID_SECTION_CONTAINER; } } } else { error = BungeniError.INVALID_SECTION_CONTAINER; } } catch (Exception ex) { log.error("check_containmentSection : " + ex.getMessage()); log.error("check_containmentSection : " + CommonExceptionUtils.getStackTrace(ex)); } finally { return error; } }
private String get_newSectionNameForAction(toolbarAction pAction) { String newSectionName = ""; if (pAction.action_numbering_convention().equals("single")) { newSectionName = pAction.action_naming_convention(); } else if (pAction.action_numbering_convention().equals("serial")) { String sectionPrefix = pAction.action_naming_convention(); for (int i = 1; ; i++) { if (ooDocument.hasSection(sectionPrefix + i)) { continue; } else { newSectionName = sectionPrefix + i; break; } } } else { log.error( "get_newSectionNameForAction: invalid action naming convention: " + m_parentAction.action_naming_convention()); } return newSectionName; }