diff --git a/functional-test/src/test/java/org/zanata/feature/TransMemoryTest.java b/functional-test/src/test/java/org/zanata/feature/TransMemoryTest.java index 66af2370cd..0a34799b3f 100644 --- a/functional-test/src/test/java/org/zanata/feature/TransMemoryTest.java +++ b/functional-test/src/test/java/org/zanata/feature/TransMemoryTest.java @@ -70,13 +70,13 @@ public void pushTransMemoryProjectWithDifferentProjectName() { projectWorkFlow.createNewProjectVersion("trans memory test v2", "master"); - // @formatter:off +// @formatter:off // int exitCode = new ClientPushWorkFlow().mvnPush("trans-memory", // "-Dzanata.projectConfig=differentProject/zanata.xml", // "-Dzanata.projectVersion=master", // "-Dzanata.copyTrans=false", // "-Dzanata.pushType=Source"); - // @formatter:on +// @formatter:on // assertThat(exitCode, Matchers.equalTo(0)); } diff --git a/functional-test/src/test/java/org/zanata/feature/glossary/GlossaryTestSuite.java b/functional-test/src/test/java/org/zanata/feature/glossary/GlossaryTestSuite.java index b2346170fb..c8f0b1ce3b 100644 --- a/functional-test/src/test/java/org/zanata/feature/glossary/GlossaryTestSuite.java +++ b/functional-test/src/test/java/org/zanata/feature/glossary/GlossaryTestSuite.java @@ -12,12 +12,12 @@ @RunWith(Suite.class) // @formatter:off @Suite.SuiteClasses({GlossaryTest.class, - GlossaryPushTest.class, - InvalidGlossaryPushTest.class, - GlossaryPushCSVTest.class, - UnauthorizedGlossaryDeleteTest.class, - UnauthorizedGlossaryPushTest.class, - GlossaryDeleteTest.class + GlossaryPushTest.class, + InvalidGlossaryPushTest.class, + GlossaryPushCSVTest.class, + UnauthorizedGlossaryDeleteTest.class, + UnauthorizedGlossaryPushTest.class, + GlossaryDeleteTest.class }) // @formatter:on public class GlossaryTestSuite { diff --git a/functional-test/src/test/java/org/zanata/feature/startNewProject/CreateSampleProjectTestSuite.java b/functional-test/src/test/java/org/zanata/feature/startNewProject/CreateSampleProjectTestSuite.java index 6304061b06..e2320c5807 100644 --- a/functional-test/src/test/java/org/zanata/feature/startNewProject/CreateSampleProjectTestSuite.java +++ b/functional-test/src/test/java/org/zanata/feature/startNewProject/CreateSampleProjectTestSuite.java @@ -31,13 +31,13 @@ @RunWith(Suite.class) // @formatter:off @Suite.SuiteClasses({ - StartNewProjectTest.class, - CreateNewProjectTest.class, - CreateVersionAndAddToProjectTest.class, - AddLanguageTest.class, - TranslatorJoinsLanguageTeamTest.class, - PushPodirPluralProjectTest.class, - DocumentListInWebTransTest.class + StartNewProjectTest.class, + CreateNewProjectTest.class, + CreateVersionAndAddToProjectTest.class, + AddLanguageTest.class, + TranslatorJoinsLanguageTeamTest.class, + PushPodirPluralProjectTest.class, + DocumentListInWebTransTest.class }) // @formatter:on public class CreateSampleProjectTestSuite { diff --git a/zanata-model/src/test/java/org/zanata/util/OkapiUtilTest.java b/zanata-model/src/test/java/org/zanata/util/OkapiUtilTest.java index 6a938f13ea..d7d905bad8 100644 --- a/zanata-model/src/test/java/org/zanata/util/OkapiUtilTest.java +++ b/zanata-model/src/test/java/org/zanata/util/OkapiUtilTest.java @@ -9,32 +9,31 @@ @Test(groups = { "unit-tests" }) public class OkapiUtilTest { -// @formatter:off - String[] strings = - { - "Emmanuel Bernard", - "Graphic Design", - "the object is passed up to the UI tier", + // @formatter:off + String[] strings = { + "Emmanuel Bernard", + "Graphic Design", + "the object is passed up to the UI tier", - "// in the first session\n" + - "Cat cat = (Cat) firstSession.load(Cat.class, catID);\n" + - "\n" + - "// in a higher tier of the application\n" + - "Cat mate = new Cat();\n" + - "cat.setMate(mate);\n" + - "\n" + - "// later, in a new session\n" + - "secondSession.saveOrUpdate(cat); // update existing state (cat has a non-null id)\n" + - "secondSession.saveOrUpdate(mate); // save the new instance (mate has a null id)", + "// in the first session\n" + + "Cat cat = (Cat) firstSession.load(Cat.class, catID);\n" + + "\n" + + "// in a higher tier of the application\n" + + "Cat mate = new Cat();\n" + + "cat.setMate(mate);\n" + + "\n" + + "// later, in a new session\n" + + "secondSession.saveOrUpdate(cat); // update existing state (cat has a non-null id)\n" + + "secondSession.saveOrUpdate(mate); // save the new instance (mate has a null id)", - "/var/lib/ricci", + "/var/lib/ricci", - "https://cdn.redhat.com", // NB okapi says 2, but looks like 4. perhaps - // something.ext counts as one word? + "https://cdn.redhat.com", // NB okapi says 2, but looks like 4. perhaps + // something.ext counts as one word? - "/etc/rhsm/rhsm.conf", // NB okapi says 3, but looks like 4 - }; -// @formatter:on + "/etc/rhsm/rhsm.conf", // NB okapi says 3, but looks like 4 + }; + // @formatter:on // These counts represent the expected word counts for the strings listed // above. long[] count = { 2, 2, 9, diff --git a/zanata-war/src/main/java/org/zanata/dao/DocumentDAO.java b/zanata-war/src/main/java/org/zanata/dao/DocumentDAO.java index fdc3b6d8e6..afe624c34a 100644 --- a/zanata-war/src/main/java/org/zanata/dao/DocumentDAO.java +++ b/zanata-war/src/main/java/org/zanata/dao/DocumentDAO.java @@ -57,17 +57,16 @@ public HDocument getById(Long id) { } public Set getTargetLocales(HDocument hDoc) { - // @formatter:off - // TODO should this use UNIQUE? - Query q = getSession().createQuery( - "select tft.locale from HTextFlowTarget tft " + - "where tft.textFlow.document = :document"); - q.setParameter("document", hDoc); - q.setComment("DocumentDAO.getTargetLocales"); - // TODO q.setCacheable(true); ?? - @SuppressWarnings("unchecked") - List locales = q.list(); - // @formatter:on + // TODO should this use UNIQUE? + Query q = + getSession().createQuery( + "select tft.locale from HTextFlowTarget tft " + + "where tft.textFlow.document = :document"); + q.setParameter("document", hDoc); + q.setComment("DocumentDAO.getTargetLocales"); + // TODO q.setCacheable(true); ?? + @SuppressWarnings("unchecked") + List locales = q.list(); return new HashSet(locales); } @@ -83,9 +82,9 @@ public int getTotalDocument() { public int getTotalActiveDocument() { Query q = - getSession() - .createQuery( - "select count(*) from HDocument doc where doc.obsolete = false"); + getSession().createQuery( + "select count(*) from HDocument doc " + + "where doc.obsolete = false"); q.setCacheable(true); q.setComment("DocumentDAO.getTotalActiveDocument"); Long totalCount = (Long) q.uniqueResult(); @@ -96,9 +95,9 @@ public int getTotalActiveDocument() { public int getTotalObsoleteDocument() { Query q = - getSession() - .createQuery( - "select count(*) from HDocument doc where doc.obsolete = true"); + getSession().createQuery( + "select count(*) from HDocument doc " + + "where doc.obsolete = true"); q.setCacheable(true); q.setComment("DocumentDAO.getTotalObsoleteDocument"); Long totalCount = (Long) q.uniqueResult(); @@ -116,7 +115,8 @@ public Long getTotalCountForDocument(HDocument document) { (Long) session .createQuery( "select count(tf) from HTextFlow tf " - + "where tf.document = :doc and tf.obsolete = false") + + "where tf.document = :doc " + + "and tf.obsolete = false") .setParameter("doc", document) .setComment("DocumentDAO.getTotalCountForDocument") .setCacheable(true).uniqueResult(); @@ -136,7 +136,8 @@ public Long getTotalWordCountForDocument(HDocument document) { (Long) session .createQuery( "select sum(tf.wordCount) from HTextFlow tf " - + "where tf.document = :doc and tf.obsolete = false") + + "where tf.document = :doc " + + "and tf.obsolete = false") .setParameter("doc", document).setCacheable(true) .setComment("DocumentDAO.getTotalWordCountForDocument") .uniqueResult(); @@ -191,60 +192,63 @@ public HTextFlowTarget getLastTranslatedTargetOrNull(Long documentId) { */ public ContainerTranslationStatistics getStatistics(long docId, LocaleId localeId) { - // @formatter:off - Session session = getSession(); - - // calculate unit counts - @SuppressWarnings("unchecked") - List stats = session.createQuery( - "select new org.zanata.model.StatusCount(tft.state, count(tft)) " + - "from HTextFlowTarget tft " + - "where tft.textFlow.document.id = :id " + - " and tft.locale.localeId = :locale " + - " and tft.textFlow.obsolete = false " + - "group by tft.state") - .setParameter("id", docId) - .setParameter("locale", localeId) - .setComment("DocumentDAO.getStatistics-units") - .setCacheable(true).list(); - Long totalCount = getTotalCountForDocument( getById(docId) ); - - TransUnitCount unitCount = new TransUnitCount(); - for (StatusCount count : stats) - { - unitCount.set(count.status, count.count.intValue()); - } - unitCount.set(ContentState.New, StatisticsUtil.calculateUntranslated(totalCount, unitCount)); - - // calculate word counts - @SuppressWarnings("unchecked") - List wordStats = session.createQuery( - "select new org.zanata.model.StatusCount(tft.state, sum(tft.textFlow.wordCount)) " + - "from HTextFlowTarget tft where tft.textFlow.document.id = :id " + - " and tft.locale.localeId = :locale " + - " and tft.textFlow.obsolete = false " + - "group by tft.state") - .setParameter("id", docId) - .setParameter("locale", localeId) - .setCacheable(true) - .setComment("DocumentDAO.getStatistics-words") - .list(); - Long totalWordCount = getTotalWordCountForDocument( getById(docId) ); - TransUnitWords wordCount = new TransUnitWords(); - for (StatusCount count : wordStats) - { - wordCount.set(count.status, count.count.intValue()); - } - long newWordCount = StatisticsUtil.calculateUntranslated(totalWordCount, wordCount); - wordCount.set(ContentState.New, (int) newWordCount); - - - ContainerTranslationStatistics result = new ContainerTranslationStatistics(); - result.addStats(new TranslationStatistics(unitCount, localeId.toString())); - result.addStats(new TranslationStatistics(wordCount, localeId.toString())); - - return result; - // @formatter:on + Session session = getSession(); + + // calculate unit counts + @SuppressWarnings("unchecked") + List stats = + session.createQuery( + "select new org.zanata.model.StatusCount(" + + "tft.state, count(tft)) " + + "from HTextFlowTarget tft " + + "where tft.textFlow.document.id = :id " + + " and tft.locale.localeId = :locale " + + " and tft.textFlow.obsolete = false " + + "group by tft.state") + .setParameter("id", docId) + .setParameter("locale", localeId) + .setComment("DocumentDAO.getStatistics-units") + .setCacheable(true).list(); + Long totalCount = getTotalCountForDocument(getById(docId)); + + TransUnitCount unitCount = new TransUnitCount(); + for (StatusCount count : stats) { + unitCount.set(count.status, count.count.intValue()); + } + unitCount.set(ContentState.New, + StatisticsUtil.calculateUntranslated(totalCount, unitCount)); + + // calculate word counts + @SuppressWarnings("unchecked") + List wordStats = + session.createQuery( + "select new org.zanata.model.StatusCount(" + + "tft.state, sum(tft.textFlow.wordCount)) " + + "from HTextFlowTarget tft " + + "where tft.textFlow.document.id = :id " + + " and tft.locale.localeId = :locale " + + " and tft.textFlow.obsolete = false " + + "group by tft.state") + .setParameter("id", docId) + .setParameter("locale", localeId).setCacheable(true) + .setComment("DocumentDAO.getStatistics-words").list(); + Long totalWordCount = getTotalWordCountForDocument(getById(docId)); + TransUnitWords wordCount = new TransUnitWords(); + for (StatusCount count : wordStats) { + wordCount.set(count.status, count.count.intValue()); + } + long newWordCount = + StatisticsUtil.calculateUntranslated(totalWordCount, wordCount); + wordCount.set(ContentState.New, (int) newWordCount); + + ContainerTranslationStatistics result = + new ContainerTranslationStatistics(); + result.addStats(new TranslationStatistics(unitCount, localeId + .toString())); + result.addStats(new TranslationStatistics(wordCount, localeId + .toString())); + + return result; } /** @@ -259,298 +263,319 @@ public ContainerTranslationStatistics getStatistics(long docId, */ public Map getStatistics( long docId, LocaleId... localeIds) { - // @formatter:off - Session session = getSession(); - Map returnStats = new HashMap(); - Map transUnitCountMap = new HashMap(); - Map transUnitWordsMap = new HashMap(); - - StringBuilder query = new StringBuilder(); - query.append("select new map (tft.state as state, count(tft) as count, "); - query.append(" sum(tft.textFlow.wordCount) as wordCount, tft.locale.localeId as locale) "); - query.append("from HTextFlowTarget tft "); - query.append("where tft.textFlow.document.id = :id "); - if( localeIds != null && localeIds.length > 0 ) - { - query.append(" and tft.locale.localeId in (:locales) "); - } - query.append(" and tft.textFlow.obsolete = false "); - query.append("group by tft.state, tft.locale"); - - // calculate unit counts - @SuppressWarnings("unchecked") - Query hQuery = session.createQuery( query.toString() ) - .setParameter("id", docId) - .setComment("DocumentDAO.getStatisticsMultipleLocales-units") - .setCacheable(true); - - if(localeIds != null && localeIds.length > 0) - { - hQuery.setParameterList("locales", localeIds); - } - - List> stats = hQuery.list(); - // Collect the results for all states - for (Map row : stats) - { - ContentState state = (ContentState)row.get("state"); - Long count = (Long)row.get("count"); - Long wordCount = (Long) row.get("wordCount"); - LocaleId localeId = (LocaleId)row.get("locale"); - - TransUnitCount transUnitCount = transUnitCountMap.get( localeId.getId() ); - if( transUnitCount == null ) - { - transUnitCount = new TransUnitCount(); - transUnitCountMap.put(localeId.getId(), transUnitCount); - } - - TransUnitWords transUnitWords = transUnitWordsMap.get( localeId.getId() ); - if( transUnitWords == null ) - { - transUnitWords = new TransUnitWords(); - transUnitWordsMap.put(localeId.getId(), transUnitWords); - } - - transUnitCount.set( state, count.intValue() ); - transUnitWords.set( state, wordCount.intValue() ); - } - - Map totalCounts = (Map) session.createQuery( - "select new map ( count(tf) as count, sum(tf.wordCount) as wordCount ) " + - "from HTextFlow tf " + - "where tf.document.id = :id and tf.obsolete = false") - .setParameter("id", docId) - .setComment("DocumentDAO.getStatisticsMultipleLocales-words") - .setCacheable(true).uniqueResult(); - - // Calculate the 'New' counts - Long totalCount = (Long)totalCounts.get("count"); - Long totalWordCount = (Long)totalCounts.get("wordCount"); - for( TransUnitCount stat : transUnitCountMap.values() ) - { - stat.set(ContentState.New, StatisticsUtil.calculateUntranslated(totalCount, stat)); - } - for( TransUnitWords stat : transUnitWordsMap.values() ) - { - stat.set(ContentState.New, StatisticsUtil.calculateUntranslated(totalWordCount, stat)); - } - - // Merge into a single Stats object - for( String locale : transUnitCountMap.keySet() ) - { - ContainerTranslationStatistics newStats = new ContainerTranslationStatistics(); - newStats.addStats(new TranslationStatistics( transUnitCountMap.get(locale), locale)); - newStats.addStats(new TranslationStatistics( transUnitWordsMap.get(locale), locale)); - - if( newStats.getStats(locale, StatUnit.MESSAGE) != null && newStats.getStats(locale, StatUnit.WORD) != null ) - { - returnStats.put(new LocaleId(locale), newStats); - } - } - - return returnStats; - } - - public HDocument getByGlobalId(GlobalDocumentId id) - { - return getByProjectIterationAndDocId(id.getProjectSlug(), id.getVersionSlug(), id.getDocId()); - } - - public HDocument getByProjectIterationAndDocId(final String projectSlug, final String iterationSlug, final String docId) - { - // TODO caching might be better with getByDocIdAndIteration(ProjectIterationDAO.getBySlug(), docId) - Session session = getSession(); - Query q = session.createQuery("from HDocument d where d.projectIteration.slug = :iterationSlug " + - "and d.projectIteration.project.slug = :projectSlug " + - "and d.docId = :docId " + - "and d.obsolete = false"); - q.setParameter("iterationSlug", iterationSlug) - .setParameter("projectSlug", projectSlug) - .setParameter("docId", docId); - q.setComment("DocumentDAO.getByProjectIterationAndDocId"); - q.setCacheable(true); - final HDocument doc = (HDocument) q.uniqueResult(); - return doc; - } - - public List getByProjectIterationAndDocIdList(final String projectSlug, final String iterationSlug, List docIdList) - { - Session session = getSession(); - Query q = session.createQuery("from HDocument d where d.projectIteration.slug = :iterationSlug " + - "and d.projectIteration.project.slug = :projectSlug " + - "and d.docId in (:docIdList) " + - "and d.obsolete = false"); - q.setParameter("iterationSlug", iterationSlug) - .setParameter("projectSlug", projectSlug) - .setParameterList("docIdList", docIdList); - q.setComment("DocumentDAO.getByProjectIterationAndDocIdList"); - q.setCacheable(true); - List docs = q.list(); - return docs; - } - - public List getAllByProjectIteration(final String projectSlug, final String iterationSlug) - { - Session session = getSession(); - Query q = session.createQuery("from HDocument d " + - "where d.projectIteration.slug = :iterationSlug " + - "and d.projectIteration.project.slug = :projectSlug " + - "and d.obsolete = false " + - "order by d.name"); - q.setParameter("iterationSlug", iterationSlug) - .setParameter("projectSlug", projectSlug); - q.setComment("DocumentDAO.getAllByProjectIteration"); - // TODO q.setCacheable(true); ?? - @SuppressWarnings("unchecked") - final List documents = q.list(); - return documents; - } - - /** - * Calculates a translated document's hash. - * - * @param projectSlug Project identifier - * @param iterationSlug Iteration identifier - * @param docId Document identifier - * @param locale Translated document's locale. - * @return A Hash string (checksum) for a translated document. - */ - public String getTranslatedDocumentStateHash(final String projectSlug, final String iterationSlug, - final String docId, final HLocale locale) - { - // NB: This method uses a native SQL query tested on mysql and h2 databases. - Session session = getSession(); - StringBuilder nativeSql = new StringBuilder(); - nativeSql.append("select MD5(group_concat(hashState)) from "); - nativeSql.append("( "); - nativeSql.append(" select "); - nativeSql.append(" concat( "); - nativeSql.append(" d.id, '|', "); - nativeSql.append(" d.versionNum, '|', "); - nativeSql.append(" ifnull(group_concat(poth.versionNum separator '|'), ''), '|', "); - nativeSql.append(" ifnull(group_concat(tft.id separator '|'), ''), '|', "); - nativeSql.append(" ifnull(group_concat(tft.versionNum separator '|'), ''), '|', "); - nativeSql.append(" ifnull(group_concat(tf.id separator '|'), ''), '|', "); - nativeSql.append(" ifnull(group_concat(tf.revision separator '|'), ''), '|', "); - nativeSql.append(" ifnull(group_concat(c.comment separator '|'), '')) as hashState "); - nativeSql.append(" from "); - nativeSql.append(" HDocument d "); - nativeSql.append(" inner join HTextFlow tf on tf.document_id = d.id "); - nativeSql.append(" inner join HProjectIteration i on d.project_iteration_id = i.id "); - nativeSql.append(" inner join HProject p on i.project_id = p.id "); - nativeSql.append(" left outer join HTextFlowTarget tft on tft.tf_id = tf.id and tft.locale = :localeId "); - nativeSql.append(" left outer join HSimpleComment c on c.id = tft.comment_id "); - nativeSql.append(" left outer join HPoTargetHeader poth on poth.document_id = d.id and poth.targetLanguage = :localeId "); - nativeSql.append(" where "); - nativeSql.append(" d.docId = :docId "); - nativeSql.append(" and p.slug = :projectSlug "); - nativeSql.append(" and i.slug = :iterationSlug "); - nativeSql.append(" group by d.id, d.versionNum "); - nativeSql.append(") as T"); - - Query query = session.createSQLQuery(nativeSql.toString()) - .setParameter("localeId", locale.getId()) - .setParameter("docId", docId) - .setParameter("projectSlug", projectSlug) - .setParameter("iterationSlug", iterationSlug); - // Transform the results from byte[] into Strings when necessary - query.setResultTransformer(new ResultTransformer() - { - @Override - public Object transformTuple(Object[] tuple, String[] aliases) - { - if( tuple[0] instanceof byte[] ) - { - return new String((byte[])tuple[0]); + Session session = getSession(); + Map returnStats = + new HashMap(); + Map transUnitCountMap = + new HashMap(); + Map transUnitWordsMap = + new HashMap(); + + StringBuilder query = new StringBuilder(); + query.append("select new map (tft.state as state, count(tft) as count, "); + query.append(" sum(tft.textFlow.wordCount) as wordCount, " + + "tft.locale.localeId as locale) "); + query.append("from HTextFlowTarget tft "); + query.append("where tft.textFlow.document.id = :id "); + if (localeIds != null && localeIds.length > 0) { + query.append(" and tft.locale.localeId in (:locales) "); + } + query.append(" and tft.textFlow.obsolete = false "); + query.append("group by tft.state, tft.locale"); + + // calculate unit counts + @SuppressWarnings("unchecked") + Query hQuery = + session.createQuery(query.toString()) + .setParameter("id", docId) + .setComment( + "DocumentDAO.getStatisticsMultipleLocales-units") + .setCacheable(true); + + if (localeIds != null && localeIds.length > 0) { + hQuery.setParameterList("locales", localeIds); + } + + List> stats = hQuery.list(); + // Collect the results for all states + for (Map row : stats) { + ContentState state = (ContentState) row.get("state"); + Long count = (Long) row.get("count"); + Long wordCount = (Long) row.get("wordCount"); + LocaleId localeId = (LocaleId) row.get("locale"); + + TransUnitCount transUnitCount = + transUnitCountMap.get(localeId.getId()); + if (transUnitCount == null) { + transUnitCount = new TransUnitCount(); + transUnitCountMap.put(localeId.getId(), transUnitCount); } - return tuple[0]; - } - - @Override - public List transformList(List collection) - { - return collection; // no transformation needed - } - }); - String stateHash = (String)query.uniqueResult(); - return stateHash; - } - - /** - * Do not use this method when adding a new raw document, - * instead use {@link #addRawDocument(HDocument, HRawDocument)} - * - * @see AbstractDAOImpl#makePersistent(Object) - */ - @Override - public HDocument makePersistent(HDocument entity) { - // TODO consider how to deal with old rawDocument. - if (entity.getRawDocument() != null) - { - getSession().saveOrUpdate(entity.getRawDocument()); - } - return super.makePersistent(entity); - } - - /** - * Add a raw document to a document, cleanly removing any - * existing raw document associated with the document. - * - * @param doc - * @param rawDoc - * @return - */ - public HRawDocument addRawDocument(HDocument doc, HRawDocument rawDoc) - { - HRawDocument oldRawDoc = doc.getRawDocument(); - - if (oldRawDoc != null && !oldRawDoc.equals(rawDoc)) - { - getSession().delete(oldRawDoc); - } - - if (rawDoc != null) - { - getSession().saveOrUpdate(rawDoc); - } - - doc.setRawDocument(rawDoc); - makePersistent(doc); - return rawDoc; - } - - public Optional getAdapterParams(String projectSlug, String iterationSlug, String docId) - { - HDocument doc = getByProjectIterationAndDocId(projectSlug, iterationSlug, docId); - if (doc != null) - { - HRawDocument rawDoc = doc.getRawDocument(); - if (rawDoc != null) - { - return Optional.fromNullable(rawDoc.getAdapterParameters()); - } - } - return Optional.absent(); - } - - public List getDocumentsByIds(List docIds) - { - StringBuilder query = new StringBuilder(); - query.append("from HDocument doc where doc.id in (:docIds)"); - - Query q = getSession().createQuery(query.toString()); - q.setParameterList("docIds", docIds); - q.setCacheable(true); - q.setComment("DocumentDAO.getDocumentsByIds"); - - List docs = q.list(); - - return docs; - } - - public LobHelper getLobHelper() - { - return getSession().getLobHelper(); - } + + TransUnitWords transUnitWords = + transUnitWordsMap.get(localeId.getId()); + if (transUnitWords == null) { + transUnitWords = new TransUnitWords(); + transUnitWordsMap.put(localeId.getId(), transUnitWords); + } + + transUnitCount.set(state, count.intValue()); + transUnitWords.set(state, wordCount.intValue()); + } + + Map totalCounts = + (Map) session + .createQuery( + "select new map ( count(tf) as count, " + + "sum(tf.wordCount) as wordCount ) " + + "from HTextFlow tf " + + "where tf.document.id = :id " + + "and tf.obsolete = false") + .setParameter("id", docId) + .setComment( + "DocumentDAO.getStatisticsMultipleLocales-words") + .setCacheable(true).uniqueResult(); + + // Calculate the 'New' counts + Long totalCount = (Long) totalCounts.get("count"); + Long totalWordCount = (Long) totalCounts.get("wordCount"); + for (TransUnitCount stat : transUnitCountMap.values()) { + stat.set(ContentState.New, + StatisticsUtil.calculateUntranslated(totalCount, stat)); + } + for (TransUnitWords stat : transUnitWordsMap.values()) { + stat.set(ContentState.New, + StatisticsUtil.calculateUntranslated(totalWordCount, stat)); + } + + // Merge into a single Stats object + for (String locale : transUnitCountMap.keySet()) { + ContainerTranslationStatistics newStats = + new ContainerTranslationStatistics(); + newStats.addStats(new TranslationStatistics(transUnitCountMap + .get(locale), locale)); + newStats.addStats(new TranslationStatistics(transUnitWordsMap + .get(locale), locale)); + + if (newStats.getStats(locale, StatUnit.MESSAGE) != null + && newStats.getStats(locale, StatUnit.WORD) != null) { + returnStats.put(new LocaleId(locale), newStats); + } + } + + return returnStats; + } + + public HDocument getByGlobalId(GlobalDocumentId id) { + return getByProjectIterationAndDocId(id.getProjectSlug(), + id.getVersionSlug(), id.getDocId()); + } + + public HDocument getByProjectIterationAndDocId(final String projectSlug, + final String iterationSlug, final String docId) { + // TODO caching might be better with + // getByDocIdAndIteration(ProjectIterationDAO.getBySlug(), docId) + Session session = getSession(); + Query q = + session.createQuery("from HDocument d " + + "where d.projectIteration.slug = :iterationSlug " + + "and d.projectIteration.project.slug = :projectSlug " + + "and d.docId = :docId " + "and d.obsolete = false"); + q.setParameter("iterationSlug", iterationSlug) + .setParameter("projectSlug", projectSlug) + .setParameter("docId", docId); + q.setComment("DocumentDAO.getByProjectIterationAndDocId"); + q.setCacheable(true); + final HDocument doc = (HDocument) q.uniqueResult(); + return doc; + } + + public List getByProjectIterationAndDocIdList( + final String projectSlug, final String iterationSlug, + List docIdList) { + Session session = getSession(); + Query q = + session.createQuery("from HDocument d " + + "where d.projectIteration.slug = :iterationSlug " + + "and d.projectIteration.project.slug = :projectSlug " + + "and d.docId in (:docIdList) " + + "and d.obsolete = false"); + q.setParameter("iterationSlug", iterationSlug) + .setParameter("projectSlug", projectSlug) + .setParameterList("docIdList", docIdList); + q.setComment("DocumentDAO.getByProjectIterationAndDocIdList"); + q.setCacheable(true); + List docs = q.list(); + return docs; + } + + public List getAllByProjectIteration(final String projectSlug, + final String iterationSlug) { + Session session = getSession(); + Query q = + session.createQuery("from HDocument d " + + "where d.projectIteration.slug = :iterationSlug " + + "and d.projectIteration.project.slug = :projectSlug " + + "and d.obsolete = false " + "order by d.name"); + q.setParameter("iterationSlug", iterationSlug).setParameter( + "projectSlug", projectSlug); + q.setComment("DocumentDAO.getAllByProjectIteration"); + // TODO q.setCacheable(true); ?? + @SuppressWarnings("unchecked") + final List documents = q.list(); + return documents; + } + + /** + * Calculates a translated document's hash. + * + * @param projectSlug + * Project identifier + * @param iterationSlug + * Iteration identifier + * @param docId + * Document identifier + * @param locale + * Translated document's locale. + * @return A Hash string (checksum) for a translated document. + */ + public String + getTranslatedDocumentStateHash(final String projectSlug, + final String iterationSlug, final String docId, + final HLocale locale) { + // NB: This method uses a native SQL query tested on mysql and h2 + // databases. + Session session = getSession(); + StringBuilder nativeSql = new StringBuilder(); + nativeSql.append("select MD5(group_concat(hashState)) from "); + nativeSql.append("( "); + nativeSql.append(" select "); + nativeSql.append(" concat( "); + nativeSql.append(" d.id, '|', "); + nativeSql.append(" d.versionNum, '|', "); + nativeSql + .append(" ifnull(group_concat(poth.versionNum separator '|'), ''), '|', "); + nativeSql + .append(" ifnull(group_concat(tft.id separator '|'), ''), '|', "); + nativeSql + .append(" ifnull(group_concat(tft.versionNum separator '|'), ''), '|', "); + nativeSql + .append(" ifnull(group_concat(tf.id separator '|'), ''), '|', "); + nativeSql + .append(" ifnull(group_concat(tf.revision separator '|'), ''), '|', "); + nativeSql + .append(" ifnull(group_concat(c.comment separator '|'), '')) as hashState "); + nativeSql.append(" from "); + nativeSql.append(" HDocument d "); + nativeSql + .append(" inner join HTextFlow tf on tf.document_id = d.id "); + nativeSql + .append(" inner join HProjectIteration i on d.project_iteration_id = i.id "); + nativeSql.append(" inner join HProject p on i.project_id = p.id "); + nativeSql + .append(" left outer join HTextFlowTarget tft on tft.tf_id = tf.id and tft.locale = :localeId "); + nativeSql + .append(" left outer join HSimpleComment c on c.id = tft.comment_id "); + nativeSql + .append(" left outer join HPoTargetHeader poth on poth.document_id = d.id and poth.targetLanguage = :localeId "); + nativeSql.append(" where "); + nativeSql.append(" d.docId = :docId "); + nativeSql.append(" and p.slug = :projectSlug "); + nativeSql.append(" and i.slug = :iterationSlug "); + nativeSql.append(" group by d.id, d.versionNum "); + nativeSql.append(") as T"); + + Query query = + session.createSQLQuery(nativeSql.toString()) + .setParameter("localeId", locale.getId()) + .setParameter("docId", docId) + .setParameter("projectSlug", projectSlug) + .setParameter("iterationSlug", iterationSlug); + // Transform the results from byte[] into Strings when necessary + query.setResultTransformer(new ResultTransformer() { + @Override + public Object transformTuple(Object[] tuple, String[] aliases) { + if (tuple[0] instanceof byte[]) { + return new String((byte[]) tuple[0]); + } + return tuple[0]; + } + + @Override + public List transformList(List collection) { + return collection; // no transformation needed + } + }); + String stateHash = (String) query.uniqueResult(); + return stateHash; + } + + /** + * Do not use this method when adding a new raw document, instead use + * {@link #addRawDocument(HDocument, HRawDocument)} + * + * @see AbstractDAOImpl#makePersistent(Object) + */ + @Override + public HDocument makePersistent(HDocument entity) { + // TODO consider how to deal with old rawDocument. + if (entity.getRawDocument() != null) { + getSession().saveOrUpdate(entity.getRawDocument()); + } + return super.makePersistent(entity); + } + + /** + * Add a raw document to a document, cleanly removing any existing raw + * document associated with the document. + * + * @param doc + * @param rawDoc + * @return + */ + public HRawDocument addRawDocument(HDocument doc, HRawDocument rawDoc) { + HRawDocument oldRawDoc = doc.getRawDocument(); + + if (oldRawDoc != null && !oldRawDoc.equals(rawDoc)) { + getSession().delete(oldRawDoc); + } + + if (rawDoc != null) { + getSession().saveOrUpdate(rawDoc); + } + + doc.setRawDocument(rawDoc); + makePersistent(doc); + return rawDoc; + } + + public Optional getAdapterParams(String projectSlug, + String iterationSlug, String docId) { + HDocument doc = + getByProjectIterationAndDocId(projectSlug, iterationSlug, docId); + if (doc != null) { + HRawDocument rawDoc = doc.getRawDocument(); + if (rawDoc != null) { + return Optional.fromNullable(rawDoc.getAdapterParameters()); + } + } + return Optional. absent(); + } + + public List getDocumentsByIds(List docIds) { + StringBuilder query = new StringBuilder(); + query.append("from HDocument doc where doc.id in (:docIds)"); + + Query q = getSession().createQuery(query.toString()); + q.setParameterList("docIds", docIds); + q.setCacheable(true); + q.setComment("DocumentDAO.getDocumentsByIds"); + + List docs = q.list(); + + return docs; + } + + public LobHelper getLobHelper() { + return getSession().getLobHelper(); + } } diff --git a/zanata-war/src/main/java/org/zanata/dao/GlossaryDAO.java b/zanata-war/src/main/java/org/zanata/dao/GlossaryDAO.java index 71469a0365..8e975167d8 100644 --- a/zanata-war/src/main/java/org/zanata/dao/GlossaryDAO.java +++ b/zanata-war/src/main/java/org/zanata/dao/GlossaryDAO.java @@ -110,20 +110,22 @@ public List getTermByGlossaryEntryId(Long glossaryEntryId) { return query.list(); } - /* @formatter:off */ - public HGlossaryEntry getEntryBySrcLocaleAndContent(LocaleId localeid, String content) - { - Query query = getSession().createQuery("from HGlossaryEntry as e " + - "WHERE e.srcLocale.localeId= :localeid AND e.id IN " + - "(SELECT t.glossaryEntry.id FROM HGlossaryTerm as t " + - "WHERE t.locale.localeId=e.srcLocale.localeId " + - "AND t.content= :content)"); - query.setParameter("localeid", localeid); - query.setParameter("content", content); - query.setComment("GlossaryDAO.getEntryBySrcLocaleAndContent"); - return (HGlossaryEntry) query.uniqueResult(); - } - /* @formatter:on */ + public HGlossaryEntry getEntryBySrcLocaleAndContent(LocaleId localeid, + String content) { + Query query = + getSession() + .createQuery( + "from HGlossaryEntry as e " + + "WHERE e.srcLocale.localeId= :localeid " + + "AND e.id IN " + + "(SELECT t.glossaryEntry.id FROM HGlossaryTerm as t " + + "WHERE t.locale.localeId=e.srcLocale.localeId " + + "AND t.content= :content)"); + query.setParameter("localeid", localeid); + query.setParameter("content", content); + query.setComment("GlossaryDAO.getEntryBySrcLocaleAndContent"); + return (HGlossaryEntry) query.uniqueResult(); + } @SuppressWarnings("unchecked") public List findByIdList(List idList) { diff --git a/zanata-war/src/main/java/org/zanata/dao/ProjectIterationDAO.java b/zanata-war/src/main/java/org/zanata/dao/ProjectIterationDAO.java index ebdaa59d6b..123ac13bf8 100644 --- a/zanata-war/src/main/java/org/zanata/dao/ProjectIterationDAO.java +++ b/zanata-war/src/main/java/org/zanata/dao/ProjectIterationDAO.java @@ -94,15 +94,16 @@ public HProjectIteration getBySlug(@Nonnull HProject project, public TransUnitCount getStatisticsForContainer(Long iterationId, LocaleId localeId) { - // @formatter:off - Query q = getSession().createQuery("select new org.zanata.model.StatusCount(tft.state, count(tft)) " + - "from HTextFlowTarget tft " + - "where tft.textFlow.document.projectIteration.id = :id " + - " and tft.locale.localeId = :locale" + - " and tft.textFlow.obsolete = false" + - " and tft.textFlow.document.obsolete = false" + - " group by tft.state"); - // @formatter:on + Query q = + getSession() + .createQuery( + "select new org.zanata.model.StatusCount(tft.state, count(tft)) " + + "from HTextFlowTarget tft " + + "where tft.textFlow.document.projectIteration.id = :id " + + " and tft.locale.localeId = :locale" + + " and tft.textFlow.obsolete = false" + + " and tft.textFlow.document.obsolete = false" + + " group by tft.state"); q.setParameter("id", iterationId).setParameter("locale", localeId); q.setCacheable(true).setComment( "ProjectIterationDAO.getStatisticsForContainer"); @@ -132,15 +133,17 @@ public TransUnitCount getStatisticsForContainer(Long iterationId, public TransUnitWords getWordStatsForContainer(Long iterationId, LocaleId localeId) { - // @formatter:off - Query q = getSession().createQuery("select new org.zanata.model.StatusCount(tft.state, sum(tft.textFlow.wordCount)) " + - "from HTextFlowTarget tft " + - "where tft.textFlow.document.projectIteration.id = :id " + - " and tft.locale.localeId = :locale" + - " and tft.textFlow.obsolete = false" + - " and tft.textFlow.document.obsolete = false" + - " group by tft.state"); - // @formatter:on + Query q = + getSession() + .createQuery( + "select new org.zanata.model.StatusCount(tft.state, " + + "sum(tft.textFlow.wordCount)) " + + "from HTextFlowTarget tft " + + "where tft.textFlow.document.projectIteration.id = :id " + + " and tft.locale.localeId = :locale" + + " and tft.textFlow.obsolete = false" + + " and tft.textFlow.document.obsolete = false" + + " group by tft.state"); q.setParameter("id", iterationId).setParameter("locale", localeId); q.setCacheable(true).setComment( "ProjectIterationDAO.getWordStatsForContainer"); @@ -162,13 +165,12 @@ public TransUnitWords getWordStatsForContainer(Long iterationId, } public EntityTag getResourcesETag(HProjectIteration projectIteration) { - // @formatter:off - Query q = getSession().createQuery( - "select d.revision from HDocument d " + - "where d.projectIteration =:iteration " + - "and d.obsolete = false") - .setParameter("iteration", projectIteration); - // @formatter:on + Query q = + getSession().createQuery( + "select d.revision from HDocument d " + + "where d.projectIteration =:iteration " + + "and d.obsolete = false").setParameter( + "iteration", projectIteration); q.setCacheable(true).setComment("ProjectIterationDAO.getResourcesETag"); @SuppressWarnings("unchecked") List revisions = q.list(); @@ -241,15 +243,17 @@ public Map getAllWordStatsStatistics( */ public Map getAllStatisticsForContainer( Long iterationId) { - // @formatter:off - Query q = getSession().createQuery( - "select new map(tft.state as state, count(tft) as count, tft.locale.localeId as locale) " + - "from HTextFlowTarget tft " + - "where tft.textFlow.document.projectIteration.id = :id " + - " and tft.textFlow.obsolete = false" + - " and tft.textFlow.document.obsolete = false" + - " group by tft.state, tft.locale"); - // @formatter:on + Query q = + getSession() + .createQuery( + "select new map(tft.state as state, " + + "count(tft) as count, " + + "tft.locale.localeId as locale) " + + "from HTextFlowTarget tft " + + "where tft.textFlow.document.projectIteration.id = :id " + + " and tft.textFlow.obsolete = false" + + " and tft.textFlow.document.obsolete = false" + + " group by tft.state, tft.locale"); q.setParameter("id", iterationId); q.setComment("ProjectIterationDAO.getAllStatisticsForContainer"); @@ -282,13 +286,12 @@ public Map getAllStatisticsForContainer( } public Long getTotalCountForIteration(Long iterationId) { - // @formatter:off - Query q = getSession().createQuery( - "select count(tf) from HTextFlow tf " + - "where tf.document.projectIteration.id = :id" + - " and tf.obsolete = false" + - " and tf.document.obsolete = false"); - // @formatter:on + Query q = + getSession().createQuery( + "select count(tf) from HTextFlow tf " + + "where tf.document.projectIteration.id = :id" + + " and tf.obsolete = false" + + " and tf.document.obsolete = false"); q.setParameter("id", iterationId); q.setCacheable(true).setComment( "ProjectIterationDAO.getTotalCountForIteration"); @@ -300,13 +303,12 @@ public Long getTotalCountForIteration(Long iterationId) { } public Long getTotalWordCountForIteration(Long iterationId) { - // @formatter:off - Query q = getSession().createQuery( - "select sum(tf.wordCount) from HTextFlow tf " + - "where tf.document.projectIteration.id = :id" + - " and tf.obsolete = false" + - " and tf.document.obsolete = false"); - // @formatter:on + Query q = + getSession().createQuery( + "select sum(tf.wordCount) from HTextFlow tf " + + "where tf.document.projectIteration.id = :id" + + " and tf.obsolete = false" + + " and tf.document.obsolete = false"); q.setParameter("id", iterationId); q.setCacheable(true).setComment( "ProjectIterationDAO.getTotalWordCountForIteration"); @@ -331,9 +333,9 @@ public int getTotalProjectIterCount() { public int getTotalActiveProjectIterCount() { Query q = - getSession() - .createQuery( - "select count(*) from HProjectIteration t where t.status = :status"); + getSession().createQuery( + "select count(*) from HProjectIteration t " + + "where t.status = :status"); q.setParameter("status", EntityStatus.ACTIVE); q.setCacheable(true).setComment( "ProjectIterationDAO.getTotalActiveProjectIterCount"); @@ -345,9 +347,9 @@ public int getTotalActiveProjectIterCount() { public int getTotalReadOnlyProjectIterCount() { Query q = - getSession() - .createQuery( - "select count(*) from HProjectIteration t where t.status = :status"); + getSession().createQuery( + "select count(*) from HProjectIteration t " + + "where t.status = :status"); q.setParameter("status", EntityStatus.READONLY); q.setCacheable(true).setComment( "ProjectIterationDAO.getTotalReadOnlyProjectIterCount"); @@ -359,9 +361,9 @@ public int getTotalReadOnlyProjectIterCount() { public int getTotalObsoleteProjectIterCount() { Query q = - getSession() - .createQuery( - "select count(*) from HProjectIteration t where t.status = :status"); + getSession().createQuery( + "select count(*) from HProjectIteration t " + + "where t.status = :status"); q.setParameter("status", EntityStatus.OBSOLETE); q.setCacheable(true).setComment( "ProjectIterationDAO.getTotalObsoleteProjectIterCount"); @@ -377,9 +379,11 @@ public int getTotalObsoleteProjectIterCount() { return new ArrayList(); } Query q = - getSession() - .createQuery( - "from HProjectIteration t where lower(t.slug) LIKE :searchTerm OR lower(t.project.slug) LIKE :searchTerm OR lower(t.project.name) LIKE :searchTerm"); + getSession().createQuery( + "from HProjectIteration t " + + "where lower(t.slug) LIKE :searchTerm " + + "OR lower(t.project.slug) LIKE :searchTerm " + + "OR lower(t.project.name) LIKE :searchTerm"); q.setParameter("searchTerm", "%" + searchTerm.toLowerCase() + "%"); q.setCacheable(false).setComment( "ProjectIterationDAO.searchLikeSlugOrProjectSlug"); @@ -390,7 +394,8 @@ public int getTotalObsoleteProjectIterCount() { public List searchByProjectId(Long projectId) { Query q = getSession().createQuery( - "from HProjectIteration t where t.project.id = :projectId " + "from HProjectIteration t " + + "where t.project.id = :projectId " + "order by t.creationDate DESC"); q.setParameter("projectId", projectId); q.setCacheable(false).setComment("ProjectIterationDAO.findByProjectId"); diff --git a/zanata-war/src/main/java/org/zanata/dao/TextFlowDAO.java b/zanata-war/src/main/java/org/zanata/dao/TextFlowDAO.java index 9726af5dc0..c02853d5f5 100644 --- a/zanata-war/src/main/java/org/zanata/dao/TextFlowDAO.java +++ b/zanata-war/src/main/java/org/zanata/dao/TextFlowDAO.java @@ -92,28 +92,29 @@ public List getNavigationByDocumentId(Long documentId, StringBuilder queryBuilder = new StringBuilder(); // I can't write a HQL or criteria to achieve the same result. I gave // up... - // @formatter:off - queryBuilder - .append("SELECT tf.id, tft.state FROM HTextFlow tf ") - .append(" LEFT JOIN HTextFlowTarget tft on tf.id = tft.tf_id AND locale = :locale") - .append(" WHERE tf.document_id = :docId AND tf.obsolete = 0"); - queryBuilder - .append(" AND ") - .append(buildContentStateCondition(filterConstraints.getIncludedStates(), "tft")); - boolean hasSearchString = !Strings.isNullOrEmpty(filterConstraints.getSearchString()); - if (hasSearchString) - { - queryBuilder - .append(" AND (") - .append(buildSearchCondition(filterConstraints.getSearchString(), "tf")) // search in source - .append(" OR ") - .append(buildSearchCondition(filterConstraints.getSearchString(), "tft")) // search in target - .append(")"); - } - queryBuilder - .append(" ORDER BY tf.pos"); + queryBuilder + .append("SELECT tf.id, tft.state FROM HTextFlow tf ") + .append(" LEFT JOIN HTextFlowTarget tft on tf.id = tft.tf_id AND locale = :locale") + .append(" WHERE tf.document_id = :docId AND tf.obsolete = 0"); + queryBuilder.append(" AND ").append( + buildContentStateCondition( + filterConstraints.getIncludedStates(), "tft")); + boolean hasSearchString = + !Strings.isNullOrEmpty(filterConstraints.getSearchString()); + if (hasSearchString) { + queryBuilder + .append(" AND (") + // search in source + .append(buildSearchCondition( + filterConstraints.getSearchString(), "tf")) + .append(" OR ") + // search in target + .append(buildSearchCondition( + filterConstraints.getSearchString(), "tft")) + .append(")"); + } + queryBuilder.append(" ORDER BY tf.pos"); - // @formatter:on log.debug("get navigation SQL query: {}", queryBuilder); Query query = getSession().createSQLQuery(queryBuilder.toString()) diff --git a/zanata-war/src/main/java/org/zanata/dao/TextFlowTargetDAO.java b/zanata-war/src/main/java/org/zanata/dao/TextFlowTargetDAO.java index 5e9937f74b..115ac16afa 100644 --- a/zanata-war/src/main/java/org/zanata/dao/TextFlowTargetDAO.java +++ b/zanata-war/src/main/java/org/zanata/dao/TextFlowTargetDAO.java @@ -141,18 +141,17 @@ public int getTotalNewTextFlowTargets() { @SuppressWarnings("unchecked") public List findAllTranslations(HDocument document, LocaleId localeId) { - // @formatter:off - Query q = getSession().createQuery( - "select t from HTextFlowTarget t where " + - "t.textFlow.document =:document " + - "and t.locale.localeId =:localeId " + - "order by t.textFlow.pos"); - q.setParameter("document", document); - q.setParameter("localeId", localeId); - q.setCacheable(false); - q.setComment("TextFlowTargetDAO.findAllTranslations"); - return q.list(); - // @formatter:on + Query q = + getSession().createQuery( + "select t from HTextFlowTarget t where " + + "t.textFlow.document =:document " + + "and t.locale.localeId =:localeId " + + "order by t.textFlow.pos"); + q.setParameter("document", document); + q.setParameter("localeId", localeId); + q.setCacheable(false); + q.setComment("TextFlowTargetDAO.findAllTranslations"); + return q.list(); } /** @@ -165,20 +164,18 @@ public List findAllTranslations(HDocument document, @SuppressWarnings("unchecked") public List findTranslations(HDocument document, HLocale locale) { - // @formatter:off - Query q = getSession().createQuery( - "select t " + - "from HTextFlowTarget t where " + - "t.textFlow.document =:document " + - "and t.locale =:locale " + - "and t.textFlow.obsolete=false " + - "order by t.textFlow.pos"); - q.setParameter("document", document); - q.setParameter("locale", locale); - q.setCacheable(true); - q.setComment("TextFlowTargetDAO.findTranslations"); - return q.list(); - // @formatter:on + Query q = + getSession().createQuery( + "select t " + "from HTextFlowTarget t where " + + "t.textFlow.document =:document " + + "and t.locale =:locale " + + "and t.textFlow.obsolete=false " + + "order by t.textFlow.pos"); + q.setParameter("document", document); + q.setParameter("locale", locale); + q.setCacheable(true); + q.setComment("TextFlowTargetDAO.findTranslations"); + return q.list(); } /** @@ -295,7 +292,9 @@ public HTextFlowTarget getTextFlowTarget(HTextFlow hTextFlow, HTextFlowTarget hTextFlowTarget = (HTextFlowTarget) getSession() .createQuery( - "select tft from HTextFlowTarget tft where tft.textFlow = :textFlow and tft.locale = :locale") + "select tft from HTextFlowTarget tft " + + "where tft.textFlow = :textFlow " + + "and tft.locale = :locale") .setParameter("textFlow", hTextFlow) .setParameter("locale", hLocale) .setComment("TextFlowTargetDAO.getTextFlowTarget") @@ -308,7 +307,9 @@ public HTextFlowTarget getTextFlowTarget(HTextFlow hTextFlow, HTextFlowTarget hTextFlowTarget = (HTextFlowTarget) getSession() .createQuery( - "select tft from HTextFlowTarget tft where tft.textFlow.id = :hTextFlowId and tft.locale.localeId = :localeId") + "select tft from HTextFlowTarget tft " + + "where tft.textFlow.id = :hTextFlowId " + + "and tft.locale.localeId = :localeId") .setParameter("hTextFlowId", hTextFlowId) .setParameter("localeId", localeId) .setComment("TextFlowTargetDAO.getTextFlowTarget") @@ -321,7 +322,9 @@ public HTextFlowTarget getTextFlowTarget(HTextFlow hTextFlow, HTextFlowTarget hTextFlowTarget = (HTextFlowTarget) getSession() .createQuery( - "select tft from HTextFlowTarget tft where tft.textFlow = :textFlow and tft.locale.localeId = :localeId") + "select tft from HTextFlowTarget tft " + + "where tft.textFlow = :textFlow " + + "and tft.locale.localeId = :localeId") .setParameter("textFlow", hTextFlow) .setParameter("localeId", localeId) .setComment("TextFlowTargetDAO.getTextFlowTarget") @@ -331,9 +334,10 @@ public HTextFlowTarget getTextFlowTarget(HTextFlow hTextFlow, public Long getTextFlowTargetId(HTextFlow hTextFlow, LocaleId localeId) { Query q = - getSession() - .createQuery( - "select tft.id from HTextFlowTarget tft where tft.textFlow = :textFlow and tft.locale.localeId = :localeId"); + getSession().createQuery( + "select tft.id from HTextFlowTarget tft " + + "where tft.textFlow = :textFlow " + + "and tft.locale.localeId = :localeId"); q.setParameter("textFlow", hTextFlow); q.setParameter("localeId", localeId); q.setComment("TextFlowTargetDAO.getTextFlowTargetId"); diff --git a/zanata-war/src/main/java/org/zanata/liquibase/custom/MigrateRawDocumentsToFileSystem.java b/zanata-war/src/main/java/org/zanata/liquibase/custom/MigrateRawDocumentsToFileSystem.java index 4996fad8e1..61951a49a7 100644 --- a/zanata-war/src/main/java/org/zanata/liquibase/custom/MigrateRawDocumentsToFileSystem.java +++ b/zanata-war/src/main/java/org/zanata/liquibase/custom/MigrateRawDocumentsToFileSystem.java @@ -60,11 +60,9 @@ public class MigrateRawDocumentsToFileSystem implements CustomTaskChange { private static final String CONTENTS_SQL = "select fileId, content from HRawDocumentContent"; - //@formatter:off - private static final String ID_TYPE_SQL = "select d.documentId, rd.type" + - " from HRawDocument rd, HDocument_RawDocument d" + - " where d.rawDocumentId = rd.id and rd.fileId = ?"; - //@formatter:on + private static final String ID_TYPE_SQL = "select d.documentId, rd.type" + + " from HRawDocument rd, HDocument_RawDocument d" + + " where d.rawDocumentId = rd.id and rd.fileId = ?"; private static final String UPDATE_LOCATION_SQL = "update HRawDocument set fileId = ? where fileId = ?"; private static final String DELETE_OLD_CONTENT_SQL = diff --git a/zanata-war/src/main/java/org/zanata/search/FilterConstraintToQuery.java b/zanata-war/src/main/java/org/zanata/search/FilterConstraintToQuery.java index 04cedd4a2c..cf754cc3fe 100644 --- a/zanata-war/src/main/java/org/zanata/search/FilterConstraintToQuery.java +++ b/zanata-war/src/main/java/org/zanata/search/FilterConstraintToQuery.java @@ -92,12 +92,15 @@ public String toHQL() { String searchCondition = buildSearchCondition(); String stateCondition = buildStateCondition(); - // @formatter:off - QueryBuilder query = QueryBuilder.select("distinct tf") - .from("HTextFlow tf").leftJoin("tf.targets tfts").with(eq("tfts.index", LOCALE_PLACEHOLDER).toString()) - .where(and(obsoleteCondition, docIdCondition, searchCondition, stateCondition)) - .orderBy("tf.pos"); - // @formatter:on + QueryBuilder query = + QueryBuilder + .select("distinct tf") + .from("HTextFlow tf") + .leftJoin("tf.targets tfts") + .with(eq("tfts.index", LOCALE_PLACEHOLDER).toString()) + .where(and(obsoleteCondition, docIdCondition, + searchCondition, stateCondition)) + .orderBy("tf.pos"); return query.toQueryString(); } @@ -111,12 +114,10 @@ protected String buildSearchCondition() { } String searchInTargetCondition = null; if (constraints.isSearchInTarget()) { - // @formatter:off - Criterion targetWhereClause = Restrictions.conjunction() - .add(eq("textFlow", "tf")) - .add(eq("locale", LOCALE_PLACEHOLDER)) - .add(contentsCriterion(null)); - // @formatter:on + Criterion targetWhereClause = + Restrictions.conjunction().add(eq("textFlow", "tf")) + .add(eq("locale", LOCALE_PLACEHOLDER)) + .add(contentsCriterion(null)); searchInTargetCondition = QueryBuilder.exists().from("HTextFlowTarget") .where(targetWhereClause.toString()) @@ -126,7 +127,7 @@ protected String buildSearchCondition() { .or(searchInSourceCondition, searchInTargetCondition); } - private Criterion contentsCriterion(String alias) { + private Criterion contentsCriterion(String alias) { String propertyAlias = Strings.isNullOrEmpty(alias) ? "content" : alias + ".content"; String caseFunction = constraints.isCaseSensitive() ? "" : "lower"; diff --git a/zanata-war/src/main/java/org/zanata/search/FilterConstraints.java b/zanata-war/src/main/java/org/zanata/search/FilterConstraints.java index edf2b7c2bd..cb93143500 100644 --- a/zanata-war/src/main/java/org/zanata/search/FilterConstraints.java +++ b/zanata-war/src/main/java/org/zanata/search/FilterConstraints.java @@ -58,15 +58,11 @@ public static Builder builder() { @Override public String toString() { - // @formatter:off - return Objects.toStringHelper(this). - add("searchString", searchString). - add("isCaseSensitive", isCaseSensitive). - add("searchInSource", searchInSource). - add("searchInTarget", searchInTarget). - add("includedStates", includedStates). - toString(); - // @formatter:on + return Objects.toStringHelper(this).add("searchString", searchString) + .add("isCaseSensitive", isCaseSensitive) + .add("searchInSource", searchInSource) + .add("searchInTarget", searchInTarget) + .add("includedStates", includedStates).toString(); } public static class Builder { diff --git a/zanata-war/src/main/java/org/zanata/service/impl/LocaleServiceImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/LocaleServiceImpl.java index 0e68faefc1..f0e94df694 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/LocaleServiceImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/LocaleServiceImpl.java @@ -73,22 +73,15 @@ public class LocaleServiceImpl implements LocaleService { public LocaleServiceImpl() { } - // @formatter:off - public LocaleServiceImpl( - LocaleDAO localeDAO, - ProjectDAO projectDAO, - ProjectIterationDAO projectIterationDAO, - PersonDAO personDAO, - TextFlowTargetDAO textFlowTargetDAO - ) - { - setLocaleDAO(localeDAO); - setProjectDAO(projectDAO); - setProjectIterationDAO(projectIterationDAO); - setPersonDAO(personDAO); - setTextFlowTargetDAO(textFlowTargetDAO); - } - // @formatter:on + public LocaleServiceImpl(LocaleDAO localeDAO, ProjectDAO projectDAO, + ProjectIterationDAO projectIterationDAO, PersonDAO personDAO, + TextFlowTargetDAO textFlowTargetDAO) { + setLocaleDAO(localeDAO); + setProjectDAO(projectDAO); + setProjectIterationDAO(projectIterationDAO); + setPersonDAO(personDAO); + setTextFlowTargetDAO(textFlowTargetDAO); + } @In public void setTextFlowTargetDAO(TextFlowTargetDAO textFlowTargetDAO) { diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/UncaughtExceptionHandlerImpl.java b/zanata-war/src/main/java/org/zanata/webtrans/client/UncaughtExceptionHandlerImpl.java index eeee704f94..e8ca4fb66a 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/UncaughtExceptionHandlerImpl.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/UncaughtExceptionHandlerImpl.java @@ -67,7 +67,7 @@ public void onUncaughtException(Throwable exception) { // description text SafeHtmlBuilder htmlBuilder = new SafeHtmlBuilder(); // @formatter:off - htmlBuilder + htmlBuilder .appendHtmlConstant("

You may close this window and continue with your work

") .appendHtmlConstant("
If you want to let us know the error, Please recall your actions and take one of the following steps:
") .appendHtmlConstant("") - // @formatter:on + // @formatter:on ; // stack trace diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/gin/WebTransClientModule.java b/zanata-war/src/main/java/org/zanata/webtrans/client/gin/WebTransClientModule.java index 4d46b2b139..91a22371ac 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/gin/WebTransClientModule.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/gin/WebTransClientModule.java @@ -255,7 +255,7 @@ public Identity get() { @Named("distinctColor") public List distinctColorList() { // @formatter:off - return ImmutableList.builder() + return ImmutableList.builder() .add(distinctColor(240, 163, 255)) .add(distinctColor(0, 117, 220)) .add(distinctColor(153, 63, 0)) @@ -282,7 +282,7 @@ public List distinctColorList() { .add(distinctColor(255, 255, 0)) .add(distinctColor(255, 80, 5)) .build(); - // @formatter:on + // @formatter:on } private static String distinctColor(int rndRedColor, int rndGreenColor, diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/AppPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/AppPresenter.java index 360cf4eb56..a223a2cacb 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/AppPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/AppPresenter.java @@ -60,15 +60,15 @@ import net.customware.gwt.presenter.client.PresenterRevealedHandler; import net.customware.gwt.presenter.client.widget.WidgetPresenter; -// @formatter:off public class AppPresenter extends WidgetPresenter implements - ShowSideMenuEventHandler, - WorkspaceContextUpdateEventHandler, - DocumentStatsUpdatedEventHandler, - PresenterRevealedHandler, - AttentionModeActivationEventHandler, - ProjectStatsUpdatedEventHandler, - AppDisplay.Listener +// @formatter:off + ShowSideMenuEventHandler, + WorkspaceContextUpdateEventHandler, + DocumentStatsUpdatedEventHandler, + PresenterRevealedHandler, + AttentionModeActivationEventHandler, + ProjectStatsUpdatedEventHandler, + AppDisplay.Listener // @formatter:on { @@ -181,59 +181,50 @@ protected void onBind() { } private void registerKeyShortcuts() { - // @formatter:off - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'L')) - .setContext(ShortcutContext.Application) - .setDescription(messages.showDocumentListKeyShortcut()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - HistoryToken token = history.getHistoryToken(); - token.setView(MainView.Documents); - history.newItem(token.toTokenString()); - } - }).build()); - - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'O')) - .setContext(ShortcutContext.Application) - .setDescription(messages.showEditorKeyShortcut()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - if (selectedDocument == null) - { - eventBus.fireEvent(new NotificationEvent(Severity.Warning, messages.noDocumentSelected())); - } - else - { - HistoryToken token = history.getHistoryToken(); - token.setView(MainView.Editor); - history.newItem(token.toTokenString()); - } - } - }).build()); - - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'P')) - .setContext(ShortcutContext.Application) - .setDescription(messages.showProjectWideSearch()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - HistoryToken token = history.getHistoryToken(); - token.setView(MainView.Search); - history.newItem(token.toTokenString()); - } - }).build()); - // @formatter:on + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'L')) + .setContext(ShortcutContext.Application) + .setDescription(messages.showDocumentListKeyShortcut()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + HistoryToken token = history.getHistoryToken(); + token.setView(MainView.Documents); + history.newItem(token.toTokenString()); + } + }).build()); + + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'O')) + .setContext(ShortcutContext.Application) + .setDescription(messages.showEditorKeyShortcut()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + if (selectedDocument == null) { + eventBus.fireEvent(new NotificationEvent( + Severity.Warning, messages + .noDocumentSelected())); + } else { + HistoryToken token = history.getHistoryToken(); + token.setView(MainView.Editor); + history.newItem(token.toTokenString()); + } + } + }).build()); + + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'P')) + .setContext(ShortcutContext.Application) + .setDescription(messages.showProjectWideSearch()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + HistoryToken token = history.getHistoryToken(); + token.setView(MainView.Search); + history.newItem(token.toTokenString()); + } + }).build()); } @Override @@ -270,8 +261,7 @@ public void showView(MainView viewToShow) { break; case Search: // these two lines temporarily here until PresenterRevealedHandler - // is - // fully functional + // is fully functional display.setDocumentLabel("", messages.projectWideSearchAndReplace()); currentDisplayStats = projectStats; translationPresenter.concealDisplay(); diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/EditorKeyShortcuts.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/EditorKeyShortcuts.java index d8b641bb7f..9f942332fd 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/EditorKeyShortcuts.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/EditorKeyShortcuts.java @@ -58,31 +58,37 @@ public void registerKeys(TargetContentsPresenter targetContentsPresenter) { } protected void registerCopyTMKeys() { - // @formatter:off - KeyShortcut copyTM1Shortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_1)).addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_NUM_1)) - .setContext(ShortcutContext.Edit).setDescription(messages.copyFromTM(1)) - .setHandler(new CopyTMKeyShortcutHandler(0)) - .build(); + KeyShortcut copyTM1Shortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_1)) + .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_NUM_1)) + .setContext(ShortcutContext.Edit) + .setDescription(messages.copyFromTM(1)) + .setHandler(new CopyTMKeyShortcutHandler(0)).build(); - KeyShortcut copyTM2Shortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_2)).addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_NUM_2)) - .setContext(ShortcutContext.Edit).setDescription(messages.copyFromTM(2)) - .setHandler(new CopyTMKeyShortcutHandler(1)) - .build(); + KeyShortcut copyTM2Shortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_2)) + .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_NUM_2)) + .setContext(ShortcutContext.Edit) + .setDescription(messages.copyFromTM(2)) + .setHandler(new CopyTMKeyShortcutHandler(1)).build(); - KeyShortcut copyTM3Shortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_3)).addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_NUM_3)) - .setContext(ShortcutContext.Edit).setDescription(messages.copyFromTM(3)) - .setHandler(new CopyTMKeyShortcutHandler(2)) - .build(); + KeyShortcut copyTM3Shortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_3)) + .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_NUM_3)) + .setContext(ShortcutContext.Edit) + .setDescription(messages.copyFromTM(3)) + .setHandler(new CopyTMKeyShortcutHandler(2)).build(); - KeyShortcut copyTM4Shortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_4)).addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_NUM_4)) - .setContext(ShortcutContext.Edit).setDescription(messages.copyFromTM(4)) - .setHandler(new CopyTMKeyShortcutHandler(3)) - .build(); - // @formatter:on + KeyShortcut copyTM4Shortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_4)) + .addKey(new Keys(Keys.CTRL_ALT_KEYS, Keys.KEY_NUM_4)) + .setContext(ShortcutContext.Edit) + .setDescription(messages.copyFromTM(4)) + .setHandler(new CopyTMKeyShortcutHandler(3)).build(); keyShortcutPresenter.register(copyTM1Shortcut); keyShortcutPresenter.register(copyTM2Shortcut); keyShortcutPresenter.register(copyTM3Shortcut); @@ -91,84 +97,89 @@ protected void registerCopyTMKeys() { protected void registerNavigationKeys( final TargetContentsPresenter targetContentsPresenter) { - // @formatter:off - KeyShortcut moveNextShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, KeyCodes.KEY_DOWN)).addKey(new Keys(Keys.ALT_KEY, 'K')) - .setContext(ShortcutContext.Edit).setDescription(messages.moveToNextRow()) - .setPreventDefault(true).setStopPropagation(true).setPreventDefault(true) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - targetContentsPresenter.moveToNextEntry(); - } - }).build(); - keyShortcutPresenter.register(moveNextShortcut); + KeyShortcut moveNextShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, KeyCodes.KEY_DOWN)) + .addKey(new Keys(Keys.ALT_KEY, 'K')) + .setContext(ShortcutContext.Edit) + .setDescription(messages.moveToNextRow()) + .setPreventDefault(true).setStopPropagation(true) + .setPreventDefault(true) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + targetContentsPresenter.moveToNextEntry(); + } + }).build(); + keyShortcutPresenter.register(moveNextShortcut); - KeyShortcut movePreviousShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, KeyCodes.KEY_UP)).addKey(new Keys(Keys.ALT_KEY, 'J')) - .setContext(ShortcutContext.Edit).setDescription(messages.moveToPreviousRow()) - .setPreventDefault(true).setStopPropagation(true) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - targetContentsPresenter.moveToPreviousEntry(); - } - }).build(); - keyShortcutPresenter.register(movePreviousShortcut); + KeyShortcut movePreviousShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, KeyCodes.KEY_UP)) + .addKey(new Keys(Keys.ALT_KEY, 'J')) + .setContext(ShortcutContext.Edit) + .setDescription(messages.moveToPreviousRow()) + .setPreventDefault(true).setStopPropagation(true) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + targetContentsPresenter.moveToPreviousEntry(); + } + }).build(); + keyShortcutPresenter.register(movePreviousShortcut); - nextStateShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, KeyCodes.KEY_PAGEDOWN)) - .setContext(ShortcutContext.Edit).setDescription(messages.nextIncomplete()) - .setPreventDefault(true).setStopPropagation(true) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - targetContentsPresenter.savePendingChangesIfApplicable(); - eventBus.fireEvent(new NavTransUnitEvent(NextState)); - } - }).build(); - keyShortcutPresenter.register(nextStateShortcut); + nextStateShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, KeyCodes.KEY_PAGEDOWN)) + .setContext(ShortcutContext.Edit) + .setDescription(messages.nextIncomplete()) + .setPreventDefault(true).setStopPropagation(true) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + targetContentsPresenter + .savePendingChangesIfApplicable(); + eventBus.fireEvent(new NavTransUnitEvent( + NextState)); + } + }).build(); + keyShortcutPresenter.register(nextStateShortcut); - prevStateShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, KeyCodes.KEY_PAGEUP)) - .setContext(ShortcutContext.Edit).setDescription(messages.prevIncomplete()) - .setPreventDefault(true).setStopPropagation(true) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - targetContentsPresenter.savePendingChangesIfApplicable(); - eventBus.fireEvent(new NavTransUnitEvent(PrevState)); - } - }).build(); - keyShortcutPresenter.register(prevStateShortcut); - // @formatter:on + prevStateShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, KeyCodes.KEY_PAGEUP)) + .setContext(ShortcutContext.Edit) + .setDescription(messages.prevIncomplete()) + .setPreventDefault(true).setStopPropagation(true) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + targetContentsPresenter + .savePendingChangesIfApplicable(); + eventBus.fireEvent(new NavTransUnitEvent( + PrevState)); + } + }).build(); + keyShortcutPresenter.register(prevStateShortcut); } protected void registerEditorActionKeys( final TargetContentsPresenter targetContentsPresenter) { // Register shortcut CTRL+S to save as fuzzy - // @formatter:off - KeyShortcut saveFuzzyShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.CTRL_KEY, 'S')) - .setContext(ShortcutContext.Edit).setDescription(messages.saveAsFuzzy()) - .setPreventDefault(true).setStopPropagation(true) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - targetContentsPresenter.saveAsFuzzy(targetContentsPresenter.getCurrentTransUnitIdOrNull()); - } - }).build(); - // @formatter:on + KeyShortcut saveFuzzyShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.CTRL_KEY, 'S')) + .setContext(ShortcutContext.Edit) + .setDescription(messages.saveAsFuzzy()) + .setPreventDefault(true).setStopPropagation(true) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + targetContentsPresenter + .saveAsFuzzy(targetContentsPresenter + .getCurrentTransUnitIdOrNull()); + } + }).build(); keyShortcutPresenter.register(saveFuzzyShortcut); KeyShortcutEventHandler saveAsApprovedKeyShortcutHandler = @@ -179,42 +190,40 @@ public void onKeyShortcut(KeyShortcutEvent event) { } }; - // @formatter:off - KeyShortcut ctrlEnterShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.CTRL_KEY, KeyCodes.KEY_ENTER)) - .setContext(ShortcutContext.Edit).setDescription(messages.saveAsTranslated()) - .setPreventDefault(true).setStopPropagation(true) - .setHandler(saveAsApprovedKeyShortcutHandler) - .build(); - keyShortcutPresenter.register(ctrlEnterShortcut); - enterSavesApprovedShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ENTER)) - .setContext(ShortcutContext.Edit).setDescription(messages.saveAsTranslated()) - .setPreventDefault(true).setStopPropagation(true) - .setHandler(saveAsApprovedKeyShortcutHandler) - .build(); - // @formatter:on + KeyShortcut ctrlEnterShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.CTRL_KEY, KeyCodes.KEY_ENTER)) + .setContext(ShortcutContext.Edit) + .setDescription(messages.saveAsTranslated()) + .setPreventDefault(true).setStopPropagation(true) + .setHandler(saveAsApprovedKeyShortcutHandler).build(); + keyShortcutPresenter.register(ctrlEnterShortcut); + enterSavesApprovedShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ENTER)) + .setContext(ShortcutContext.Edit) + .setDescription(messages.saveAsTranslated()) + .setPreventDefault(true).setStopPropagation(true) + .setHandler(saveAsApprovedKeyShortcutHandler).build(); if (configHolder.getState().isEnterSavesApproved()) { enterSavesApprovedHandlerRegistration = keyShortcutPresenter.register(enterSavesApprovedShortcut); } - // @formatter:off - KeyShortcut copySourceShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'G')) - .addAttentionKey(new Keys('G')) - .setContext(ShortcutContext.Edit).setDescription(messages.copyFromSource()) - .setStopPropagation(true) - .setPreventDefault(true) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - targetContentsPresenter.copySourceForActiveRow(); - } - }).build(); - // @formatter:on + KeyShortcut copySourceShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'G')) + .addAttentionKey(new Keys('G')) + .setContext(ShortcutContext.Edit) + .setDescription(messages.copyFromSource()) + .setStopPropagation(true).setPreventDefault(true) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + targetContentsPresenter + .copySourceForActiveRow(); + } + }).build(); keyShortcutPresenter.register(copySourceShortcut); } diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/KeyShortcutPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/KeyShortcutPresenter.java index 651fdd585b..77b9edd2e5 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/KeyShortcutPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/KeyShortcutPresenter.java @@ -166,75 +166,68 @@ public void onPreviewNativeEvent(NativePreviewEvent nativeEvent) { } }); - // @formatter:off - KeyShortcut hideShortcutSummaryShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ESCAPE)) - .setContext(ShortcutContext.Application) - .setDescription(messages.closeShortcutView()) - .setKeyEvent(KeyEvent.KEY_DOWN) - .setPreventDefault(true) - .setStopPropagation(true) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - if (display.isShowing()) - { - display.hide(true); - } - } - }).build(); - register(hideShortcutSummaryShortcut); - - // could try to use ?, although this is not as simple as passing character - // '?' - KeyShortcut showShortcutSummaryShortcut = KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'Y')) - .setContext(ShortcutContext.Application) - .setDescription(messages.showAvailableKeyShortcuts()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - showShortcuts(); - } - }).build(); - register(showShortcutSummaryShortcut); - - // TODO use configured value (just use a different Keys object) - KeyShortcut attentionKeyShortcut = KeyShortcut.Builder.builder() - .setDescription("Activate attention mode.") - .addKey(new Keys(Keys.ALT_KEY, 'X')) - .setContext(ShortcutContext.Application) - .setKeyEvent(KeyEvent.KEY_DOWN) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - setAttentionMode(true); - } - }).build(); - attentionShortcutHandle = register(attentionKeyShortcut); - - KeyShortcut cancelAttentionShortcut = KeyShortcut.Builder.builder() - .setDescription("Deactivate attention mode.") - .addAttentionKey(new Keys(KeyCodes.KEY_ESCAPE)) - .setContext(ShortcutContext.Application) - .setKeyEvent(KeyEvent.KEY_DOWN) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - setAttentionMode(false); - } - }).build(); - register(cancelAttentionShortcut); - - // @formatter:on + KeyShortcut hideShortcutSummaryShortcut = + KeyShortcut.Builder + .builder() + .addKey(new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ESCAPE)) + .setContext(ShortcutContext.Application) + .setDescription(messages.closeShortcutView()) + .setKeyEvent(KeyEvent.KEY_DOWN).setPreventDefault(true) + .setStopPropagation(true) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + if (display.isShowing()) { + display.hide(true); + } + } + }).build(); + register(hideShortcutSummaryShortcut); + + // could try to use ?, although this is not as simple as passing + // character + // '?' + KeyShortcut showShortcutSummaryShortcut = + KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'Y')) + .setContext(ShortcutContext.Application) + .setDescription(messages.showAvailableKeyShortcuts()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + showShortcuts(); + } + }).build(); + register(showShortcutSummaryShortcut); + + // TODO use configured value (just use a different Keys object) + KeyShortcut attentionKeyShortcut = + KeyShortcut.Builder.builder() + .setDescription("Activate attention mode.") + .addKey(new Keys(Keys.ALT_KEY, 'X')) + .setContext(ShortcutContext.Application) + .setKeyEvent(KeyEvent.KEY_DOWN) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + setAttentionMode(true); + } + }).build(); + attentionShortcutHandle = register(attentionKeyShortcut); + + KeyShortcut cancelAttentionShortcut = + KeyShortcut.Builder.builder() + .setDescription("Deactivate attention mode.") + .addAttentionKey(new Keys(KeyCodes.KEY_ESCAPE)) + .setContext(ShortcutContext.Application) + .setKeyEvent(KeyEvent.KEY_DOWN) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + setAttentionMode(false); + } + }).build(); + register(cancelAttentionShortcut); Log.info("creating attention timer"); attentionTimer = timers.create(new TimedAction() { diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java index 3a41cbd8e7..25d73d6857 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java @@ -417,72 +417,61 @@ public void onWorkspaceContextUpdated( } })); - // @formatter:off - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.SHIFT_ALT_KEYS, 'A')) - .setContext(ShortcutContext.ProjectWideSearch) - .setDescription(messages.selectAllTextFlowsKeyShortcut()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - display.getSelectAllChk().setValue(!display.getSelectAllChk().getValue(), true); - } - }).build()); - - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'P')) - .setContext(ShortcutContext.ProjectWideSearch) - .setDescription(messages.focusSearchPhraseKeyShortcut()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - display.focusFilterTextBox(); - } - }).build()); - - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'C')) - .setContext(ShortcutContext.ProjectWideSearch) - .setDescription(messages.focusReplacementPhraseKeyShortcut()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - display.focusReplacementTextBox(); - } - }).build()); - - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'R')) - .setContext(ShortcutContext.ProjectWideSearch) - .setDescription(messages.replaceSelectedKeyShortcut()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - replaceSelected(); - } - }).build()); - - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.ALT_KEY, 'W')) - .setContext(ShortcutContext.ProjectWideSearch) - .setDescription(messages.toggleRowActionButtons()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - showRowActionButtons = !showRowActionButtons; - } - }).build()); - // @formatter:on + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.SHIFT_ALT_KEYS, 'A')) + .setContext(ShortcutContext.ProjectWideSearch) + .setDescription(messages.selectAllTextFlowsKeyShortcut()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + display.getSelectAllChk().setValue( + !display.getSelectAllChk().getValue(), true); + } + }).build()); + + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'P')) + .setContext(ShortcutContext.ProjectWideSearch) + .setDescription(messages.focusSearchPhraseKeyShortcut()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + display.focusFilterTextBox(); + } + }).build()); + + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'C')) + .setContext(ShortcutContext.ProjectWideSearch) + .setDescription(messages.focusReplacementPhraseKeyShortcut()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + display.focusReplacementTextBox(); + } + }).build()); + + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'R')) + .setContext(ShortcutContext.ProjectWideSearch) + .setDescription(messages.replaceSelectedKeyShortcut()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + replaceSelected(); + } + }).build()); + + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.ALT_KEY, 'W')) + .setContext(ShortcutContext.ProjectWideSearch) + .setDescription(messages.toggleRowActionButtons()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + showRowActionButtons = !showRowActionButtons; + } + }).build()); // TODO register key shortcuts: // Alt+Z undo last operation diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SideMenuPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SideMenuPresenter.java index 380b7b2a84..2882e9f226 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SideMenuPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SideMenuPresenter.java @@ -61,16 +61,13 @@ public class SideMenuPresenter extends WidgetPresenter private boolean isExpended = false; @Inject - // @formatter:off - public SideMenuPresenter(SideMenuDisplay display, EventBus eventBus, CachingDispatchAsync dispatcher, - OptionsPresenter optionsPresenter, - ValidationOptionsPresenter validationOptionsPresenter, - WorkspaceUsersPresenter workspaceUsersPresenter, - NotificationPresenter notificationPresenter, - UserSessionService sessionService, - UserWorkspaceContext userWorkspaceContext) - // @formatter:on - { + public SideMenuPresenter(SideMenuDisplay display, EventBus eventBus, + CachingDispatchAsync dispatcher, OptionsPresenter optionsPresenter, + ValidationOptionsPresenter validationOptionsPresenter, + WorkspaceUsersPresenter workspaceUsersPresenter, + NotificationPresenter notificationPresenter, + UserSessionService sessionService, + UserWorkspaceContext userWorkspaceContext) { super(display, eventBus); this.optionsPresenter = optionsPresenter; this.validationOptionsPresenter = validationOptionsPresenter; diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TargetContentsPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TargetContentsPresenter.java index 19b883f4c3..f86447ee53 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TargetContentsPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TargetContentsPresenter.java @@ -79,16 +79,10 @@ import com.google.inject.Singleton; @Singleton -// @formatter:off -public class TargetContentsPresenter implements - TargetContentsDisplay.Listener, - TransUnitEditEventHandler, - UserConfigChangeHandler, - RequestValidationEventHandler, - InsertStringInEditorHandler, - CopyDataToEditorHandler, - WorkspaceContextUpdateEventHandler -// @formatter:on +public class TargetContentsPresenter implements TargetContentsDisplay.Listener, + TransUnitEditEventHandler, UserConfigChangeHandler, + RequestValidationEventHandler, InsertStringInEditorHandler, + CopyDataToEditorHandler, WorkspaceContextUpdateEventHandler { protected static final int LAST_INDEX = -2; private final EventBus eventBus; @@ -114,18 +108,17 @@ public class TargetContentsPresenter implements private boolean spellCheckEnabled; @Inject - // @formatter:off - public TargetContentsPresenter(Provider displayProvider, EditorTranslators editorTranslators, final EventBus eventBus, - TableEditorMessages messages, - SourceContentsPresenter sourceContentsPresenter, - UserWorkspaceContext userWorkspaceContext, - EditorKeyShortcuts editorKeyShortcuts, - TranslationHistoryPresenter historyPresenter, - UserOptionsService userOptionsService, - SaveAsApprovedConfirmationDisplay saveAsApprovedConfirmation, - ValidationWarningDisplay validationWarning) - // @formatter:on - { + public TargetContentsPresenter( + Provider displayProvider, + EditorTranslators editorTranslators, final EventBus eventBus, + TableEditorMessages messages, + SourceContentsPresenter sourceContentsPresenter, + UserWorkspaceContext userWorkspaceContext, + EditorKeyShortcuts editorKeyShortcuts, + TranslationHistoryPresenter historyPresenter, + UserOptionsService userOptionsService, + SaveAsApprovedConfirmationDisplay saveAsApprovedConfirmation, + ValidationWarningDisplay validationWarning) { this.displayProvider = displayProvider; this.editorTranslators = editorTranslators; this.userWorkspaceContext = userWorkspaceContext; diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TransMemoryPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TransMemoryPresenter.java index 887744832a..c8a629c882 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TransMemoryPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TransMemoryPresenter.java @@ -80,20 +80,16 @@ public TransMemoryPresenter(TranslationMemoryDisplay display, protected void onBind() { display.getSearchType().setValue(SearchType.FUZZY); - // @formatter:off - keyShortcutPresenter.register(KeyShortcut.Builder.builder() - .addKey(new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ENTER)) - .setContext(ShortcutContext.TM) - .setDescription(messages.searchTM()) - .setHandler(new KeyShortcutEventHandler() - { - @Override - public void onKeyShortcut(KeyShortcutEvent event) - { - fireSearchEvent(); - } - }).build()); - // @formatter:on + keyShortcutPresenter.register(KeyShortcut.Builder.builder() + .addKey(new Keys(Keys.NO_MODIFIER, KeyCodes.KEY_ENTER)) + .setContext(ShortcutContext.TM) + .setDescription(messages.searchTM()) + .setHandler(new KeyShortcutEventHandler() { + @Override + public void onKeyShortcut(KeyShortcutEvent event) { + fireSearchEvent(); + } + }).build()); registerHandler(eventBus.addHandler(TransUnitSelectionEvent.getType(), this)); diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TransUnitsTablePresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TransUnitsTablePresenter.java index 287ed98fca..b2bc39413b 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TransUnitsTablePresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TransUnitsTablePresenter.java @@ -71,18 +71,14 @@ * @author Patrick Huang pahuang@redhat.com */ -// @formatter:off -public class TransUnitsTablePresenter extends WidgetPresenter implements - TransUnitSelectionHandler, - FilterViewEventHandler, - FilterViewConfirmationDisplay.Listener, - NavigationService.PageDataChangeListener, - TransUnitsTableDisplay.Listener, - TableRowSelectedEventHandler, - LoadingEventHandler, - RefreshPageEventHandler, UserConfigChangeHandler, - RequestPageValidationHandler -// @formatter:on +public class TransUnitsTablePresenter extends + WidgetPresenter implements + TransUnitSelectionHandler, FilterViewEventHandler, + FilterViewConfirmationDisplay.Listener, + NavigationService.PageDataChangeListener, + TransUnitsTableDisplay.Listener, TableRowSelectedEventHandler, + LoadingEventHandler, RefreshPageEventHandler, UserConfigChangeHandler, + RequestPageValidationHandler { private final TransUnitsTableDisplay display; @@ -104,14 +100,13 @@ public class TransUnitsTablePresenter extends WidgetPresenter { private HistoryToken currentHistoryState = new HistoryToken(); @Inject - // @formatter:off - public HistoryEventHandlerService(EventBus eventBus, DocumentListPresenter documentListPresenter, - AppPresenter appPresenter, SearchResultsPresenter searchResultsPresenter, - GetTransUnitActionContextHolder getTransUnitActionContextHolder, - ModalNavigationStateHolder modalStateHolder, UserConfigHolder configHolder) - // @formatter:on - { + public HistoryEventHandlerService(EventBus eventBus, + DocumentListPresenter documentListPresenter, + AppPresenter appPresenter, + SearchResultsPresenter searchResultsPresenter, + GetTransUnitActionContextHolder getTransUnitActionContextHolder, + ModalNavigationStateHolder modalStateHolder, + UserConfigHolder configHolder) { this.eventBus = eventBus; this.documentListPresenter = documentListPresenter; this.appPresenter = appPresenter; @@ -104,12 +104,12 @@ public void onValueChange(ValueChangeEvent event) { } protected void processForDocumentListPresenter(HistoryToken token) { - // @formatter:off - if (!equal(token.getDocFilterExact(), currentHistoryState.getDocFilterExact()) - || !equal(token.getDocFilterText(), currentHistoryState.getDocFilterText()) - || !equal(token.isDocFilterCaseSensitive(), currentHistoryState.isDocFilterCaseSensitive())) - // @formatter:on - { + if (!equal(token.getDocFilterExact(), + currentHistoryState.getDocFilterExact()) + || !equal(token.getDocFilterText(), + currentHistoryState.getDocFilterText()) + || !equal(token.isDocFilterCaseSensitive(), + currentHistoryState.isDocFilterCaseSensitive())) { Log.info("[gwt-history] document list filter has changed"); documentListPresenter .updateFilterAndRun(token.getDocFilterText(), @@ -143,13 +143,14 @@ protected void processForTransFilter(HistoryToken newHistoryToken) { } protected void processForProjectWideSearch(HistoryToken token) { - // @formatter:off - if (!equal(token.getProjectSearchCaseSensitive(), currentHistoryState.getProjectSearchCaseSensitive()) - || !equal(token.getProjectSearchText(), currentHistoryState.getProjectSearchText()) - || !equal(token.isProjectSearchInSource(), currentHistoryState.isProjectSearchInSource()) - || !equal(token.isProjectSearchInTarget(), currentHistoryState.isProjectSearchInTarget())) - // @formatter:on - { + if (!equal(token.getProjectSearchCaseSensitive(), + currentHistoryState.getProjectSearchCaseSensitive()) + || !equal(token.getProjectSearchText(), + currentHistoryState.getProjectSearchText()) + || !equal(token.isProjectSearchInSource(), + currentHistoryState.isProjectSearchInSource()) + || !equal(token.isProjectSearchInTarget(), + currentHistoryState.isProjectSearchInTarget())) { Log.info("[gwt-history] project wide search condition has changed"); searchResultsPresenter.updateViewAndRun( diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/service/ModalNavigationStateHolder.java b/zanata-war/src/main/java/org/zanata/webtrans/client/service/ModalNavigationStateHolder.java index 951aed6634..aa4583dbf6 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/service/ModalNavigationStateHolder.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/service/ModalNavigationStateHolder.java @@ -124,11 +124,12 @@ protected TransUnitId getNextId() { } private boolean matchFilterCondition(ContentState contentState) { - // @formatter:off - return configHolder.getState().isFilterByFuzzy() && contentState.isRejectedOrFuzzy() - || configHolder.getState().isFilterByUntranslated() && contentState == ContentState.New - || configHolder.getState().isFilterByTranslated() && contentState.isTranslated(); - // @formatter:on + return configHolder.getState().isFilterByFuzzy() + && contentState.isRejectedOrFuzzy() + || configHolder.getState().isFilterByUntranslated() + && contentState == ContentState.New + || configHolder.getState().isFilterByTranslated() + && contentState.isTranslated(); } public TransUnitId getPrevId() { diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Editor.java b/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Editor.java index 609e90f93f..8b4cf6ef30 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Editor.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/ui/Editor.java @@ -191,14 +191,10 @@ public void insertTextInCursorPosition(String suggestion) { @Override public String toString() { - // @formatter:off - return Objects.toStringHelper(this) - .add("id", id) -// .add("label", label.getText()) -// .add("textArea", textArea.getText()) - .add("isFocused", isFocused()) - .toString(); - // @formatter:on + return Objects.toStringHelper(this).add("id", id) + // .add("label", label.getText()) + // .add("textArea", textArea.getText()) + .add("isFocused", isFocused()).toString(); } @Override diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetProjectTransUnitListsHandler.java b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetProjectTransUnitListsHandler.java index 1f6b5f0d5a..2c45d1ca93 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetProjectTransUnitListsHandler.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetProjectTransUnitListsHandler.java @@ -103,14 +103,11 @@ public GetProjectTransUnitListsResult execute( matchingTUs); } - // @formatter:off - FilterConstraints filterConstraints = FilterConstraints.builder() - .filterBy(action.getSearchString()) - .caseSensitive(action.isCaseSensitive()) - .checkInSource(action.isSearchInSource()) - .checkInTarget(action.isSearchInTarget()) - .build(); - // @formatter:on + FilterConstraints filterConstraints = + FilterConstraints.builder().filterBy(action.getSearchString()) + .caseSensitive(action.isCaseSensitive()) + .checkInSource(action.isSearchInSource()) + .checkInTarget(action.isSearchInTarget()).build(); List matchingFlows = textFlowSearchServiceImpl.findTextFlows( diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetTransUnitListHandler.java b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetTransUnitListHandler.java index 9291610b3f..a5ca8fc291 100755 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetTransUnitListHandler.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetTransUnitListHandler.java @@ -156,13 +156,11 @@ private List getTextFlows(GetTransUnitList action, } // has status and phrase filter else { - // @formatter:off - FilterConstraints constraints = FilterConstraints.builder() - .filterBy(action.getPhrase()) - .caseSensitive(false).checkInSource(true).checkInTarget(true) - .includeStates(action.getFilterStates()) - .build(); - // @formatter:on + FilterConstraints constraints = + FilterConstraints.builder().filterBy(action.getPhrase()) + .caseSensitive(false).checkInSource(true) + .checkInTarget(true) + .includeStates(action.getFilterStates()).build(); log.debug("Fetch TransUnits filtered by status and/or search: {}", constraints); if (!hasValidationFilter(action)) { diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetTransUnitsNavigationService.java b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetTransUnitsNavigationService.java index cfff63c6f5..d057501384 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetTransUnitsNavigationService.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/GetTransUnitsNavigationService.java @@ -52,13 +52,10 @@ public class GetTransUnitsNavigationService { protected GetTransUnitsNavigationResult getNavigationIndexes( GetTransUnitsNavigation action, HLocale hLocale) { - // @formatter:off - FilterConstraints filterConstraints = FilterConstraints.builder() - .filterBy(action.getPhrase()) - .checkInSource(true).checkInTarget(true) - .includeStates(action.getActiveStates()) - .build(); - // @formatter:on + FilterConstraints filterConstraints = + FilterConstraints.builder().filterBy(action.getPhrase()) + .checkInSource(true).checkInTarget(true) + .includeStates(action.getActiveStates()).build(); List idIndexList = new ArrayList(); Map transIdStateMap = diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/TransUnitTransformer.java b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/TransUnitTransformer.java index 8ff5ab116b..fde8175f2b 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/TransUnitTransformer.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/TransUnitTransformer.java @@ -69,22 +69,26 @@ public TransUnit transform(HTextFlow hTextFlow, HTextFlowTarget target, GwtRpcUtil.getTargetContentsWithPadding(hTextFlow, target, nPlurals); - // @formatter:off - TransUnit.Builder builder = TransUnit.Builder.newTransUnitBuilder() - .setId(hTextFlow.getId()) - .setResId(hTextFlow.getResId()) - .setLocaleId(hLocale.getLocaleId()) - .setPlural(hTextFlow.isPlural()) - .setSources(sourceContents) - .setSourceComment(commentToString(hTextFlow.getComment())) - .setTargets(targetContents) - .setTargetComment(target == null ? null : commentToString(target.getComment())) - .setMsgContext(msgContext) - .setRowIndex(hTextFlow.getPos()) - .setVerNum(target == null ? NULL_TARGET_VERSION_NUM : target.getVersionNum()) - .setCommentsCount(getCommentCount(target)) - ; - // @formatter:on + TransUnit.Builder builder = + TransUnit.Builder + .newTransUnitBuilder() + .setId(hTextFlow.getId()) + .setResId(hTextFlow.getResId()) + .setLocaleId(hLocale.getLocaleId()) + .setPlural(hTextFlow.isPlural()) + .setSources(sourceContents) + .setSourceComment( + commentToString(hTextFlow.getComment())) + .setTargets(targetContents) + .setTargetComment( + target == null ? null : commentToString(target + .getComment())) + .setMsgContext(msgContext) + .setRowIndex(hTextFlow.getPos()) + .setVerNum( + target == null ? NULL_TARGET_VERSION_NUM + : target.getVersionNum()) + .setCommentsCount(getCommentCount(target)); if (target != null) { builder.setStatus(target.getState()); diff --git a/zanata-war/src/main/java/org/zanata/webtrans/shared/model/UserOptions.java b/zanata-war/src/main/java/org/zanata/webtrans/shared/model/UserOptions.java index 6f5ec0df9c..fc82f77fad 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/shared/model/UserOptions.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/shared/model/UserOptions.java @@ -9,27 +9,27 @@ */ public enum UserOptions implements IsSerializable { - // @formatter:off - EnterSavesApproved(editor()+ ".EnterSavesApproved"), - DisplayButtons(editor()+ ".DisplayButtons"), - EditorPageSize(editor()+ ".PageSize"), - UseCodeMirrorEditor(editor()+ ".codeMirrorEditor"), - EnableSpellCheck(editor()+ ".enableSpellCheck"), - TransMemoryDisplayMode(editor()+ ".transMemoryDisplayMode"), - DisplayTransMemory(editor()+ ".displayTransMemory"), - DisplayGlossary(editor()+ ".displayGlossary"), - ShowOptionalTransUnitDetails(editor()+ ".showOptionalTransUnitDetails"), - ShowErrors(common()+ ".ShowErrors"), - Themes(common()+ ".Themes"), - TranslatedMessageFilter(editor()+ ".TranslatedMessageFilter"), - FuzzyMessageFilter(editor()+ ".FuzzyMessageFilter"), - UntranslatedMessageFilter(editor()+ ".UntranslatedMessageFilter"), - ApprovedMessageFilter(editor()+ ".ApprovedMessageFilter"), - RejectedMessageFilter(editor()+ ".RejectedMessageFilter"), - Navigation(editor()+ ".Navigation"), - DocumentListPageSize(doc() + ".PageSize"), - ShowSaveApprovedWarning(editor() + ".ShowSaveApprovedWarning"); - // @formatter:on + // @formatter:off + EnterSavesApproved(editor()+ ".EnterSavesApproved"), + DisplayButtons(editor()+ ".DisplayButtons"), + EditorPageSize(editor()+ ".PageSize"), + UseCodeMirrorEditor(editor()+ ".codeMirrorEditor"), + EnableSpellCheck(editor()+ ".enableSpellCheck"), + TransMemoryDisplayMode(editor()+ ".transMemoryDisplayMode"), + DisplayTransMemory(editor()+ ".displayTransMemory"), + DisplayGlossary(editor()+ ".displayGlossary"), + ShowOptionalTransUnitDetails(editor()+ ".showOptionalTransUnitDetails"), + ShowErrors(common()+ ".ShowErrors"), + Themes(common()+ ".Themes"), + TranslatedMessageFilter(editor()+ ".TranslatedMessageFilter"), + FuzzyMessageFilter(editor()+ ".FuzzyMessageFilter"), + UntranslatedMessageFilter(editor()+ ".UntranslatedMessageFilter"), + ApprovedMessageFilter(editor()+ ".ApprovedMessageFilter"), + RejectedMessageFilter(editor()+ ".RejectedMessageFilter"), + Navigation(editor()+ ".Navigation"), + DocumentListPageSize(doc() + ".PageSize"), + ShowSaveApprovedWarning(editor() + ".ShowSaveApprovedWarning"); + // @formatter:on private String persistentName; diff --git a/zanata-war/src/main/java/org/zanata/webtrans/shared/model/ValidationId.java b/zanata-war/src/main/java/org/zanata/webtrans/shared/model/ValidationId.java index 4fc2a9dc3e..e38b116c47 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/shared/model/ValidationId.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/shared/model/ValidationId.java @@ -9,16 +9,16 @@ */ public enum ValidationId implements IsSerializable { - // @formatter:off - HTML_XML("HTML/XML tags"), - NEW_LINE("Leading/trailing newline (\\n)"), - TAB("Tab characters (\\t)"), - JAVA_VARIABLES("Java variables"), - XML_ENTITY("XML entity reference"), - PRINTF_VARIABLES("Printf variables"), - PRINTF_XSI_EXTENSION("Positional printf (XSI extension)"); + // @formatter:off + HTML_XML("HTML/XML tags"), + NEW_LINE("Leading/trailing newline (\\n)"), + TAB("Tab characters (\\t)"), + JAVA_VARIABLES("Java variables"), + XML_ENTITY("XML entity reference"), + PRINTF_VARIABLES("Printf variables"), + PRINTF_XSI_EXTENSION("Positional printf (XSI extension)"); - // @formatter:on + // @formatter:on private String displayName; ValidationId(String displayName) { diff --git a/zanata-war/src/test/java/org/zanata/rest/service/RestUtilsTest.java b/zanata-war/src/test/java/org/zanata/rest/service/RestUtilsTest.java index 5ce63f22b9..8a1d160fc7 100644 --- a/zanata-war/src/test/java/org/zanata/rest/service/RestUtilsTest.java +++ b/zanata-war/src/test/java/org/zanata/rest/service/RestUtilsTest.java @@ -50,36 +50,37 @@ public void prepareSeam() { @DataProvider(name = "ResourceTestData") public Object[][] getResourceTestData() { - // @formatter:off - return new Object[][] { - new Object[] { "getPoHeaderTest", resourceTestFactory.getPoHeaderTest() }, - new Object[] { "getPotEntryHeaderTest", resourceTestFactory.getPotEntryHeaderTest() }, - new Object[] { "getTextFlowCommentTest", resourceTestFactory.getTextFlowCommentTest() }, - new Object[] { "getTextFlowTest2", resourceTestFactory.getTextFlowTest2() } - }; - // @formatter:on + return new Object[][] { + new Object[] { "getPoHeaderTest", + resourceTestFactory.getPoHeaderTest() }, + new Object[] { "getPotEntryHeaderTest", + resourceTestFactory.getPotEntryHeaderTest() }, + new Object[] { "getTextFlowCommentTest", + resourceTestFactory.getTextFlowCommentTest() }, + new Object[] { "getTextFlowTest2", + resourceTestFactory.getTextFlowTest2() } }; } @DataProvider(name = "ResourceMetaTestData") public Object[][] getResourceMetaTestData() { - // @formatter:off - return new Object[][] { - new Object[] { "getResourceMeta", resourceTestFactory.getResourceMeta() }, - new Object[] { "getPoHeaderResourceMeta", resourceTestFactory.getPoHeaderResourceMeta() } - }; - // @formatter:on + return new Object[][] { + new Object[] { "getResourceMeta", + resourceTestFactory.getResourceMeta() }, + new Object[] { "getPoHeaderResourceMeta", + resourceTestFactory.getPoHeaderResourceMeta() } }; } @DataProvider(name = "TranslationTestData") public Object[][] getTranslationTestData() { - // @formatter:off - return new Object[][] { - new Object[] { "getPoTargetHeaderTextFlowTargetTest", transTestFactory.getPoTargetHeaderTextFlowTargetTest() }, - new Object[] { "getTestObject", transTestFactory.getTestObject() }, - new Object[] { "getTestObject2", transTestFactory.getTestObject2() }, - new Object[] { "getTextFlowTargetCommentTest", transTestFactory.getTextFlowTargetCommentTest() } - }; - // @formatter:on + return new Object[][] { + new Object[] { "getPoTargetHeaderTextFlowTargetTest", + transTestFactory.getPoTargetHeaderTextFlowTargetTest() }, + new Object[] { "getTestObject", + transTestFactory.getTestObject() }, + new Object[] { "getTestObject2", + transTestFactory.getTestObject2() }, + new Object[] { "getTextFlowTargetCommentTest", + transTestFactory.getTextFlowTargetCommentTest() } }; } @Test(dataProvider = "ResourceTestData") @@ -123,7 +124,18 @@ public void testUnmarshallJasonTranslationsResource() { // String testStr = // "{\"resId\":\"782f49c4e93c32403ba0b51821b38b90\",\"state\":\"Approved\",\"translator\":{},\"content\":\"title: ttff\",\"extensions\":[{\"object-type\": \"comment\",\"value\": \"testcomment\", \"space\": \"preserve\"}]}"; String testStr = - "{\"textFlowTargets\":[{\"resId\":\"rest1\",\"state\":\"Approved\",\"translator\":{\"email\":\"root@localhost\",\"name\":\"Admin user\"},\"content\": \"\u8bbf\u95ee\u5b58\u53d6\u63a7\u5236\u5217\u8868\"},{\"resId\":\"rest2\",\"state\":\"Approved\",\"translator\":{\"email\":\"root@localhost\",\"name\":\"Admin user\"},\"content\":\"hello world\"}]}"; + "{\"textFlowTargets\":[" + + "{\"resId\":\"rest1\"," + + "\"state\":\"Approved\"," + + "\"translator\":{" + + "\"email\":\"root@localhost\"," + + "\"name\":\"Admin user\"}," + + "\"content\": \"\u8bbf\u95ee\u5b58\u53d6\u63a7\u5236\u5217\u8868\"}," + + "{\"resId\":\"rest2\"," + + "\"state\":\"Approved\"," + "\"translator\":{" + + "\"email\":\"root@localhost\"," + + "\"name\":\"Admin user\"}," + + "\"content\":\"hello world\"}]}"; messageBody = new ByteArrayInputStream(testStr.getBytes("UTF-8")); TranslationsResource unmarshall = diff --git a/zanata-war/src/test/java/org/zanata/rest/service/TranslationResourceRestTest.java b/zanata-war/src/test/java/org/zanata/rest/service/TranslationResourceRestTest.java index c42d784573..5bf9fc1d50 100644 --- a/zanata-war/src/test/java/org/zanata/rest/service/TranslationResourceRestTest.java +++ b/zanata-war/src/test/java/org/zanata/rest/service/TranslationResourceRestTest.java @@ -240,14 +240,14 @@ public void createPoResourceWithPoHeader() { sr.getTextFlows().add(stf); // @formatter:off - /* - TODO: move this into an AbstractResourceMeta test (PoHeader is valid for source documents, not target) + /* + TODO: move this into an AbstractResourceMeta test (PoHeader is valid for source documents, not target) - PoHeader poHeaderExt = new PoHeader("comment", new HeaderEntry("h1", "v1"), new HeaderEntry("h2", "v2")); - sr.getExtensions(true).add(poHeaderExt); + PoHeader poHeaderExt = new PoHeader("comment", new HeaderEntry("h1", "v1"), new HeaderEntry("h2", "v2")); + sr.getExtensions(true).add(poHeaderExt); - */ - // @formatter:on + */ + // @formatter:on ClientResponse postResponse = sourceDocResource.post(sr, null, true); // new @@ -264,16 +264,16 @@ public void createPoResourceWithPoHeader() { assertThat(gotSr.getTextFlows().get(0).getContents(), is(asList("tf1"))); // @formatter:off - /* - TODO: move this into an AbstractResourceMeta test - - assertThat(gotSr.getExtensions().size(), is(1)); - PoHeader gotPoHeader = gotSr.getExtensions().findByType(PoHeader.class); - assertThat(gotPoHeader, notNullValue()); - assertThat(poHeaderExt.getComment(), is(gotPoHeader.getComment())); - assertThat(poHeaderExt.getEntries(), is(gotPoHeader.getEntries())); - */ - // @formatter:on + /* + TODO: move this into an AbstractResourceMeta test + + assertThat(gotSr.getExtensions().size(), is(1)); + PoHeader gotPoHeader = gotSr.getExtensions().findByType(PoHeader.class); + assertThat(gotPoHeader, notNullValue()); + assertThat(poHeaderExt.getComment(), is(gotPoHeader.getComment())); + assertThat(poHeaderExt.getEntries(), is(gotPoHeader.getEntries())); + */ + // @formatter:on } // NB this test breaks in Maven if the dev profile is active (because of the diff --git a/zanata-war/src/test/java/org/zanata/rest/service/TranslationServiceRestTest.java b/zanata-war/src/test/java/org/zanata/rest/service/TranslationServiceRestTest.java index 8be75d431e..695df2e9bc 100644 --- a/zanata-war/src/test/java/org/zanata/rest/service/TranslationServiceRestTest.java +++ b/zanata-war/src/test/java/org/zanata/rest/service/TranslationServiceRestTest.java @@ -35,15 +35,15 @@ public class TranslationServiceRestTest extends @DataProvider(name = "TranslationTestData") public Object[][] getTestData() { - // @formatter:off - return new Object[][] - { - new Object[] { "getTestObject", transTestFactory.getTestObject() }, - new Object[] { "getPoTargetHeaderTextFlowTargetTest", transTestFactory.getPoTargetHeaderTextFlowTargetTest() }, - new Object[] { "getTextFlowTargetCommentTest", transTestFactory.getTextFlowTargetCommentTest() }, - new Object[] { "getAllExtension", transTestFactory.getAllExtension() } - }; - // @formatter:on + return new Object[][] { + new Object[] { "getTestObject", + transTestFactory.getTestObject() }, + new Object[] { "getPoTargetHeaderTextFlowTargetTest", + transTestFactory.getPoTargetHeaderTextFlowTargetTest() }, + new Object[] { "getTextFlowTargetCommentTest", + transTestFactory.getTextFlowTargetCommentTest() }, + new Object[] { "getAllExtension", + transTestFactory.getAllExtension() } }; } @Override diff --git a/zanata-war/src/test/java/org/zanata/search/FilterConstraintToQueryTest.java b/zanata-war/src/test/java/org/zanata/search/FilterConstraintToQueryTest.java index f73c0fc65b..0450bffa14 100644 --- a/zanata-war/src/test/java/org/zanata/search/FilterConstraintToQueryTest.java +++ b/zanata-war/src/test/java/org/zanata/search/FilterConstraintToQueryTest.java @@ -163,14 +163,12 @@ public void testBuildStateConditionWithUntranslatedStateButNoSearch() { String result = constraintToQuery.buildStateCondition(); - // @formatter:off - assertThat(result, Matchers.equalToIgnoringCase( - "( EXISTS " + - "( FROM HTextFlowTarget WHERE " + - "(textFlow=tf and locale=:locale AND state in (:contentStateList))" + - ") OR :locale not in indices(tf.targets)" + - ")")); - // @formatter:on + assertThat( + result, + Matchers.equalToIgnoringCase("( EXISTS " + + "( FROM HTextFlowTarget WHERE " + + "(textFlow=tf and locale=:locale AND state in (:contentStateList))" + + ") OR :locale not in indices(tf.targets)" + ")")); } @Test @@ -182,15 +180,13 @@ public void testBuildStateConditionWithUntranslatedStateAndSearch() { String result = constraintToQuery.buildStateCondition(); - // @formatter:off - assertThat(result, Matchers.equalToIgnoringCase( - "( EXISTS " + - "( FROM HTextFlowTarget WHERE " + - "(textFlow=tf and locale=:locale AND state in (:contentStateList))" + - ") OR " + - "(:locale not in indices(tf.targets) AND " + SOURCE_CONTENT_CASE_INSENSITIVE + ")" + - ")")); - // @formatter:on + assertThat( + result, + Matchers.equalToIgnoringCase("( EXISTS " + + "( FROM HTextFlowTarget WHERE " + + "(textFlow=tf and locale=:locale AND state in (:contentStateList))" + + ") OR " + "(:locale not in indices(tf.targets) AND " + + SOURCE_CONTENT_CASE_INSENSITIVE + ")" + ")")); } @Test @@ -234,22 +230,30 @@ public void testToHQLWithSearchAndStateCondition() { log.info("hql: {}", result); // @formatter:off - assertThat(result, Matchers.equalToIgnoringCase( - "SELECT distinct tf FROM HTextFlow tf LEFT JOIN tf.targets tfts WITH tfts.index=:locale WHERE " + + assertThat(result, Matchers.equalToIgnoringCase( + "SELECT distinct tf FROM HTextFlow tf " + + "LEFT JOIN tf.targets tfts WITH tfts.index=:locale " + + "WHERE " + "(tf.obsolete=0 AND tf.document.id=:docId AND " + "(" + SOURCE_CONTENT_CASE_INSENSITIVE + " OR EXISTS " + - "( FROM HTextFlowTarget WHERE (textFlow=tf and locale=:locale and " + TARGET_CONTENT_CASE_INSENSITIVE + ")" + + "( FROM HTextFlowTarget " + + "WHERE (textFlow=tf " + + "AND locale=:locale " + + "AND " + TARGET_CONTENT_CASE_INSENSITIVE + ")" + ")" + ") AND " + "( EXISTS " + "( FROM HTextFlowTarget WHERE " + - "(textFlow=tf and locale=:locale AND state in (:contentStateList))" + + "(textFlow=tf " + + "AND locale=:locale " + + "AND state in (:contentStateList))" + ") OR " + - "(:locale not in indices(tf.targets) AND " + SOURCE_CONTENT_CASE_INSENSITIVE + ")" + + "(:locale not in indices(tf.targets) " + + "AND " + SOURCE_CONTENT_CASE_INSENSITIVE + ")" + ")" + ") ORDER BY tf.pos")); - // @formatter:on + // @formatter:on } @Test diff --git a/zanata-war/src/test/java/org/zanata/webtrans/client/presenter/TargetContentsPresenterTest.java b/zanata-war/src/test/java/org/zanata/webtrans/client/presenter/TargetContentsPresenterTest.java index b2b215f970..38345bd587 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/client/presenter/TargetContentsPresenterTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/client/presenter/TargetContentsPresenterTest.java @@ -101,13 +101,9 @@ public class TargetContentsPresenterTest { . builder().add("a").build(); private static final List CACHED_TARGETS = ImmutableList . builder().add("b").build(); - // @formatter:off - List currentPageRows = ImmutableList.builder() - .add(makeTransUnit(2)) - .add(makeTransUnit(3)) - .add(makeTransUnit(6)) - .build(); - // @formatter:on + List currentPageRows = ImmutableList. builder() + .add(makeTransUnit(2)).add(makeTransUnit(3)).add(makeTransUnit(6)) + .build(); @Mock private EventBus eventBus; diff --git a/zanata-war/src/test/java/org/zanata/webtrans/client/service/ModalNavigationStateHolderTest.java b/zanata-war/src/test/java/org/zanata/webtrans/client/service/ModalNavigationStateHolderTest.java index dbd0d5cf56..5a5f966561 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/client/service/ModalNavigationStateHolderTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/client/service/ModalNavigationStateHolderTest.java @@ -31,23 +31,23 @@ public class ModalNavigationStateHolderTest { private ModalNavigationStateHolder navigationStateHolder; // @formatter:off - private final List tuList = Lists.newArrayList( - TestFixture.makeTransUnit(0, ContentState.New), - TestFixture.makeTransUnit(1, ContentState.New), - TestFixture.makeTransUnit(2, ContentState.NeedReview), - TestFixture.makeTransUnit(3, ContentState.Approved), - TestFixture.makeTransUnit(4, ContentState.NeedReview), - TestFixture.makeTransUnit(5, ContentState.New), - TestFixture.makeTransUnit(6, ContentState.NeedReview), - TestFixture.makeTransUnit(7, ContentState.Approved), - TestFixture.makeTransUnit(8, ContentState.New), - TestFixture.makeTransUnit(9, ContentState.New), - TestFixture.makeTransUnit(10, ContentState.NeedReview) - ); - private Map transIdStateMap; - private List idIndexList; - private UserConfigHolder configHolder; - // @formatter:on + private final List tuList = Lists.newArrayList( + TestFixture.makeTransUnit(0, ContentState.New), + TestFixture.makeTransUnit(1, ContentState.New), + TestFixture.makeTransUnit(2, ContentState.NeedReview), + TestFixture.makeTransUnit(3, ContentState.Approved), + TestFixture.makeTransUnit(4, ContentState.NeedReview), + TestFixture.makeTransUnit(5, ContentState.New), + TestFixture.makeTransUnit(6, ContentState.NeedReview), + TestFixture.makeTransUnit(7, ContentState.Approved), + TestFixture.makeTransUnit(8, ContentState.New), + TestFixture.makeTransUnit(9, ContentState.New), + TestFixture.makeTransUnit(10, ContentState.NeedReview) + ); + private Map transIdStateMap; + private List idIndexList; + private UserConfigHolder configHolder; + // @formatter:on @BeforeClass protected void setUpTestData() { diff --git a/zanata-war/src/test/java/org/zanata/webtrans/client/service/NavigationServiceIntegrationTest.java b/zanata-war/src/test/java/org/zanata/webtrans/client/service/NavigationServiceIntegrationTest.java index c181478b7a..e041265462 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/client/service/NavigationServiceIntegrationTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/client/service/NavigationServiceIntegrationTest.java @@ -81,15 +81,15 @@ public class NavigationServiceIntegrationTest { private static final HLocale LOCALE = new HLocale( WORKSPACE_ID.getLocaleId()); // @formatter:off - private static final List TEXT_FLOWS = ImmutableList.builder().add( - TestFixture.makeHTextFlow(0, LOCALE, ContentState.New), - TestFixture.makeHTextFlow(1, LOCALE, ContentState.New), - TestFixture.makeHTextFlow(2, LOCALE, ContentState.NeedReview), - TestFixture.makeHTextFlow(3, LOCALE, ContentState.Approved), - TestFixture.makeHTextFlow(4, LOCALE, ContentState.NeedReview), - TestFixture.makeHTextFlow(5, LOCALE, ContentState.New) - ).build(); - // @formatter:on + private static final List TEXT_FLOWS = ImmutableList.builder().add( + TestFixture.makeHTextFlow(0, LOCALE, ContentState.New), + TestFixture.makeHTextFlow(1, LOCALE, ContentState.New), + TestFixture.makeHTextFlow(2, LOCALE, ContentState.NeedReview), + TestFixture.makeHTextFlow(3, LOCALE, ContentState.Approved), + TestFixture.makeHTextFlow(4, LOCALE, ContentState.NeedReview), + TestFixture.makeHTextFlow(5, LOCALE, ContentState.New) + ).build(); + // @formatter:on private static final DocumentInfo DOCUMENT = TestFixture .documentInfo(1, ""); diff --git a/zanata-war/src/test/java/org/zanata/webtrans/client/service/NavigationServiceUnitTest.java b/zanata-war/src/test/java/org/zanata/webtrans/client/service/NavigationServiceUnitTest.java index 8fc591897e..6412fa64cb 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/client/service/NavigationServiceUnitTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/client/service/NavigationServiceUnitTest.java @@ -108,14 +108,14 @@ public void beforeMethod() { private void initData() { // @formatter:off - data = Lists.newArrayList( + data = Lists.newArrayList( TestFixture.makeTransUnit(1, ContentState.Approved), TestFixture.makeTransUnit(2, ContentState.Approved), TestFixture.makeTransUnit(3, ContentState.NeedReview), TestFixture.makeTransUnit(4, ContentState.New), TestFixture.makeTransUnit(5, ContentState.Approved) - ); - // @formatter:on + ); + // @formatter:on idStateMap = Maps.newHashMap(); idIndexList = Lists.newArrayList(); for (TransUnit transUnit : data) { diff --git a/zanata-war/src/test/java/org/zanata/webtrans/client/service/SinglePageDataModelImplTest.java b/zanata-war/src/test/java/org/zanata/webtrans/client/service/SinglePageDataModelImplTest.java index 18d11612f5..87a66fe0da 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/client/service/SinglePageDataModelImplTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/client/service/SinglePageDataModelImplTest.java @@ -23,12 +23,12 @@ public class SinglePageDataModelImplTest { private SinglePageDataModelImpl model; // @formatter:off - private List data = Lists.newArrayList( - TestFixture.makeTransUnit(1), - TestFixture.makeTransUnit(2), - TestFixture.makeTransUnit(3) - ); - // @formatter:on + private List data = Lists.newArrayList( + TestFixture.makeTransUnit(1), + TestFixture.makeTransUnit(2), + TestFixture.makeTransUnit(3) + ); + // @formatter:on @BeforeMethod public void setUp() throws Exception { diff --git a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/ActivateWorkspaceHandlerTest.java b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/ActivateWorkspaceHandlerTest.java index 7e03805772..e1339c793d 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/ActivateWorkspaceHandlerTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/ActivateWorkspaceHandlerTest.java @@ -102,7 +102,7 @@ public class ActivateWorkspaceHandlerTest { public void setUp() throws Exception { MockitoAnnotations.initMocks(this); // @formatter:off - ActivateWorkspaceHandler activateWorkspaceHandler = SeamAutowire.instance() + ActivateWorkspaceHandler activateWorkspaceHandler = SeamAutowire.instance() .use("identity", identity) .use("translationWorkspaceManager", translationWorkspaceManager) .use("accountDAO", accountDAO) @@ -113,7 +113,7 @@ public void setUp() throws Exception { .use("webtrans.gwt.GetValidationRulesHandler", getValidationRulesHandler) .ignoreNonResolvable() .autowire(ActivateWorkspaceHandler.class); - // @formatter:on + // @formatter:on handler = spy(activateWorkspaceHandler); person = TestFixture.person(); doReturn(person).when(handler).retrievePerson(); diff --git a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetProjectTransUnitListsHandlerTest.java b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetProjectTransUnitListsHandlerTest.java index 7c06dc5b1e..29c5bbf31e 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetProjectTransUnitListsHandlerTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetProjectTransUnitListsHandlerTest.java @@ -63,13 +63,13 @@ public class GetProjectTransUnitListsHandlerTest { public void setUpData() { hLocale = TestFixture.setId(3L, new HLocale(LocaleId.DE)); // @formatter:off - textFlows = Lists.newArrayList( + textFlows = Lists.newArrayList( textFlow(1L, "File is removed", ""), textFlow(2L, "file", "open file"), textFlow(3L, " file ", null), textFlow(4L, " File", "FILE ") - ); - // @formatter:on + ); + // @formatter:on workspaceId = TestFixture.workspaceId(localeId); } diff --git a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetTransMemoryHandlerTest.java b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetTransMemoryHandlerTest.java index c88bbc05f9..c1c1e7c9f8 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetTransMemoryHandlerTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/GetTransMemoryHandlerTest.java @@ -82,9 +82,9 @@ public void setUp() throws Exception { .autowire(TranslationMemoryQueryServiceImpl.class); translationMemoryQueryService = spy(queryService); // @formatter:off - autoWireInstance.use("translationMemoryQueryService", translationMemoryQueryService); - handler = autoWireInstance.autowire(GetTransMemoryHandler.class); - // @formatter:on + autoWireInstance.use("translationMemoryQueryService", translationMemoryQueryService); + handler = autoWireInstance.autowire(GetTransMemoryHandler.class); + // @formatter:on when(localeService.getByLocaleId(targetLocaleId.getId())).thenReturn( getEm().find(HLocale.class, 3L)); } diff --git a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/LoadOptionsHandlerTest.java b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/LoadOptionsHandlerTest.java index 16f607da0c..15c5c8fe32 100644 --- a/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/LoadOptionsHandlerTest.java +++ b/zanata-war/src/test/java/org/zanata/webtrans/server/rpc/LoadOptionsHandlerTest.java @@ -47,16 +47,16 @@ public void setUp() throws Exception { AccountDAO accountDAO = new AccountDAO(getSession()); HAccount authenticatedAccount = getEm().find(HAccount.class, 1L); // @formatter:off - handler = SeamAutowire.instance() + handler = SeamAutowire.instance() .use(JpaIdentityStore.AUTHENTICATED_USER, authenticatedAccount) .use("accountDAO", accountDAO) .autowire(LoadOptionsHandler.class); - saveHandler = SeamAutowire.instance() + saveHandler = SeamAutowire.instance() .use(JpaIdentityStore.AUTHENTICATED_USER, authenticatedAccount) .use("accountDAO", accountDAO) .autowire(SaveOptionsHandler.class); - // @formatter:on + // @formatter:on } private HashMap generateConfigMap(