Übersetzungsfehler in ContentTypes korrigiert.
siblings -> decendants geändert. Tabellenfeld umbenannt alle Methoden und Felder in den Java-Klassen umbenannt git-svn-id: https://svn.libreccm.org/ccm/trunk@708 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
0c25d0f051
commit
99d35d7607
|
|
@ -27,10 +27,10 @@ object type ContentType extends ACSObject {
|
|||
String[1..1] label = content_types.label VARCHAR(1000);
|
||||
String[0..1] description = content_types.description VARCHAR(4000);
|
||||
String[0..1] className = content_types.classname VARCHAR(200);
|
||||
// Quasimodo: Store the information about ancenstors and siblings, so we
|
||||
// Quasimodo: Store the information about ancenstors and decendants, so we
|
||||
// can make use of extending content types
|
||||
String[0..1] ancestors = content_types.ancestors VARCHAR(2000);
|
||||
String[0..1] siblings = content_types.siblings VARCHAR(2000);
|
||||
String[0..1] decendants = content_types.decendants VARCHAR(2000);
|
||||
|
||||
String[1..1] mode = content_types.mode CHAR(1);
|
||||
BigDecimal[0..1] itemFormID = content_types.item_form_id INTEGER;
|
||||
|
|
@ -64,7 +64,7 @@ association {
|
|||
do {
|
||||
select
|
||||
t.type_id, t.object_type, t.label, t.description, t.classname,
|
||||
t.ancestors, t.siblings, t.mode, t.item_form_id
|
||||
t.ancestors, t.decendats, t.mode, t.item_form_id
|
||||
from
|
||||
content_types t, content_section_type_map m, authoring_kits a
|
||||
where
|
||||
|
|
@ -79,7 +79,7 @@ association {
|
|||
creatableContentTypes.description = t.description;
|
||||
creatableContentTypes.className = t.classname;
|
||||
creatableContentTypes.ancestors = t.ancestors;
|
||||
creatableContentTypes.siblings = t.siblings;
|
||||
creatableContentTypes.decendats = t.decendats;
|
||||
creatableContentTypes.mode = t.mode;
|
||||
creatableContentTypes.itemFormID = t.item_form_id;
|
||||
}
|
||||
|
|
@ -112,7 +112,7 @@ association {
|
|||
do {
|
||||
select
|
||||
t.type_id, t.object_type, t.label, t.description, t.classname,
|
||||
t.ancestors, t.siblings, t.mode, t.item_form_id
|
||||
t.ancestors, t.decendats, t.mode, t.item_form_id
|
||||
from
|
||||
content_types t
|
||||
where
|
||||
|
|
@ -127,7 +127,7 @@ association {
|
|||
notAssociatedContentTypes.description = t.description;
|
||||
notAssociatedContentTypes.className = t.classname;
|
||||
notAssociatedContentTypes.ancestors = t.ancestors;
|
||||
notAssociatedContentTypes.siblings = t.siblings;
|
||||
notAssociatedContentTypes.decendats = t.decendats;
|
||||
notAssociatedContentTypes.mode = t.mode;
|
||||
notAssociatedContentTypes.itemFormID = t.item_form_id;
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@ query registeredContentTypes {
|
|||
do {
|
||||
select
|
||||
t.type_id, t.object_type, t.label,
|
||||
t.description, t.classname, t.ancestors, t.siblings,
|
||||
t.description, t.classname, t.ancestors, t.decendats,
|
||||
t.mode, t.item_form_id
|
||||
from content_types t
|
||||
where t.mode != 'I'
|
||||
|
|
@ -169,7 +169,7 @@ query registeredContentTypes {
|
|||
type.description = t.description;
|
||||
type.className = t.classname;
|
||||
type.ancestors = t.ancestors;
|
||||
type.siblings = t.siblings;
|
||||
type.decendats = t.decendats;
|
||||
type.mode = t.mode;
|
||||
type.itemFormID = t.item_form_id;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,10 +30,7 @@ create table content_types (
|
|||
description varchar(4000),
|
||||
classname varchar(200),
|
||||
ancestors varchar(2000),
|
||||
siblings varchar(2000),
|
||||
-- is_internal char(1) default '0' not null
|
||||
-- constraint content_types_is_internal_ck
|
||||
-- check ( is_internal in ('0', '1') ),
|
||||
decendats varchar(2000),
|
||||
mode char(1) default '' not null
|
||||
constraint content_types_mode_ck
|
||||
check ( mode in ('D', 'H', 'I') ),
|
||||
|
|
|
|||
|
|
@ -779,7 +779,7 @@ public class ContentSection extends Application {
|
|||
return types;
|
||||
}
|
||||
|
||||
public ContentTypeCollection getSiblingsOfContentType(ContentType ct) {
|
||||
public ContentTypeCollection getDecendantsOfContentType(ContentType ct) {
|
||||
ContentTypeCollection ctc = getContentTypes();
|
||||
|
||||
// The Filter Factory
|
||||
|
|
@ -791,9 +791,9 @@ public class ContentSection extends Application {
|
|||
// The content type must be either of the requested type
|
||||
or.addFilter(ff.equals(ContentType.ID, ct.ID));
|
||||
|
||||
// Or must be a sibling of the requested type
|
||||
// Or must be a decendant of the requested type
|
||||
try {
|
||||
StringTokenizer strTok = new StringTokenizer(ct.getSiblings(), "/");
|
||||
StringTokenizer strTok = new StringTokenizer(ct.getDecendants(), "/");
|
||||
while (strTok.hasMoreElements()) {
|
||||
or.addFilter(ff.equals(ContentType.ID, (String) strTok.nextElement()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class ContentType extends ACSObject {
|
|||
public static final String ITEM_FORM_ID = "itemFormID";
|
||||
public static final String ITEM_FORM = "itemForm";
|
||||
public static final String ANCESTORS = "ancestors";
|
||||
public static final String SIBLINGS = "siblings";
|
||||
public static final String DECENDANTS = "decendats";
|
||||
|
||||
/**
|
||||
* Default constructor. This creates a new folder.
|
||||
|
|
@ -343,14 +343,14 @@ public class ContentType extends ACSObject {
|
|||
}
|
||||
|
||||
/**
|
||||
* Add an ancestor to the list of siblings, if not already in the list
|
||||
* Add an ancestor to the list of decendats, if not already in the list
|
||||
* @param newAncestor ID of the ancestor to add
|
||||
*/
|
||||
public void addAncestor(BigDecimal newAncestor) {
|
||||
// Get the list of siblings from db
|
||||
// Get the list of decendats from db
|
||||
String ancestors = (String) get(ANCESTORS);
|
||||
|
||||
// Only add if the newSibling in not yet in the list
|
||||
// Only add if the newAncestor in not yet in the list
|
||||
if (ancestors == null) {
|
||||
ancestors = newAncestor.toString();
|
||||
} else if (!ancestors.contains(newAncestor.toString())) {
|
||||
|
|
@ -368,11 +368,11 @@ public class ContentType extends ACSObject {
|
|||
}
|
||||
|
||||
/**
|
||||
* Remove an ancestor id from the list of siblings
|
||||
* Remove an ancestor id from the list of decendats
|
||||
* @param ancestor ID to be removed
|
||||
*/
|
||||
public void delAncestor(BigDecimal ancestor) {
|
||||
// Get the list of siblings from db
|
||||
// Get the list of decendats from db
|
||||
String ancestors = (String) get(ANCESTORS);
|
||||
|
||||
// Only try to remove from a non-empty string
|
||||
|
|
@ -403,65 +403,65 @@ public class ContentType extends ACSObject {
|
|||
}
|
||||
|
||||
/**
|
||||
* Add a sibling to the list of siblings, if not already in list
|
||||
* @param newSibling ID of the sibling to add
|
||||
* Add a decendant to the list of decendats, if not already in list
|
||||
* @param newDecendant ID of the decendant to add
|
||||
*/
|
||||
public void addSiblings(BigDecimal newSibling) {
|
||||
public void addDecendants(BigDecimal newDecendant) {
|
||||
|
||||
// Get the list of siblings from db
|
||||
String siblings = (String) get(SIBLINGS);
|
||||
// Get the list of decendats from db
|
||||
String decendats = (String) get(DECENDANTS);
|
||||
|
||||
// Only add if the newSibling in not yet in the list
|
||||
if (siblings == null) {
|
||||
siblings = newSibling.toString();
|
||||
} else if (!siblings.contains(newSibling.toString())) {
|
||||
// Only add if the newDecendant in not yet in the list
|
||||
if (decendats == null) {
|
||||
decendats = newDecendant.toString();
|
||||
} else if (!decendats.contains(newDecendant.toString())) {
|
||||
|
||||
if (siblings.length() == 0) {
|
||||
if (decendats.length() == 0) {
|
||||
// First entry in list
|
||||
siblings = newSibling.toString();
|
||||
decendats = newDecendant.toString();
|
||||
} else {
|
||||
// Additional entry in the list
|
||||
siblings += "/" + newSibling.toString();
|
||||
decendats += "/" + newDecendant.toString();
|
||||
}
|
||||
}
|
||||
|
||||
// Write new data back to db
|
||||
set(SIBLINGS, siblings);
|
||||
set(DECENDANTS, decendats);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of siblings
|
||||
* Get the list of decendats
|
||||
* @return
|
||||
*/
|
||||
public String getSiblings() {
|
||||
return (String) get(SIBLINGS);
|
||||
public String getDecendants() {
|
||||
return (String) get(DECENDANTS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a sibling from the list of siblings
|
||||
* @param sibling ID to be removed
|
||||
* Remove a decendant from the list of decendats
|
||||
* @param decendant ID to be removed
|
||||
*/
|
||||
public void delSiblings(BigDecimal sibling) {
|
||||
// Get the list of siblings from db
|
||||
String siblings = (String) get(SIBLINGS);
|
||||
public void delDecendants(BigDecimal decendant) {
|
||||
// Get the list of decendats from db
|
||||
String decendats = (String) get(DECENDANTS);
|
||||
|
||||
// Only try to remove from a non-empty string
|
||||
if (siblings != null && siblings.length() > 0) {
|
||||
if (decendats != null && decendats.length() > 0) {
|
||||
|
||||
// Remove ancestor ID from list
|
||||
siblings.replace(sibling.toString(), "");
|
||||
decendats.replace(decendant.toString(), "");
|
||||
// Delete the additional slash
|
||||
siblings.replace("//", "/");
|
||||
decendats.replace("//", "/");
|
||||
|
||||
// If the list only contains a single slash,
|
||||
// we have just removed the last list entry, so the list is empty
|
||||
if (siblings.equals("/")) {
|
||||
siblings = "";
|
||||
if (decendats.equals("/")) {
|
||||
decendats = "";
|
||||
}
|
||||
}
|
||||
|
||||
// Write new data back to db
|
||||
set(SIBLINGS, siblings);
|
||||
set(DECENDANTS, decendats);
|
||||
}
|
||||
|
||||
//////////////////////////////////////
|
||||
|
|
@ -558,7 +558,7 @@ public class ContentType extends ACSObject {
|
|||
return new ContentTypeCollection(dc);
|
||||
}
|
||||
|
||||
public static ContentTypeCollection getSiblingsOf(ContentType ct) {
|
||||
public static ContentTypeCollection getDecendantsOf(ContentType ct) {
|
||||
ContentTypeCollection ctc = ContentType.getRegisteredContentTypes();
|
||||
|
||||
// The Filter Factory
|
||||
|
|
@ -570,9 +570,9 @@ public class ContentType extends ACSObject {
|
|||
// The content type must be either of the requested type
|
||||
or.addFilter(ff.equals(ContentType.ID, ct.ID));
|
||||
|
||||
// Or must be a sibling of the requested type
|
||||
// Or must be a decendant of the requested type
|
||||
try {
|
||||
StringTokenizer strTok = new StringTokenizer(ct.getSiblings(), "/");
|
||||
StringTokenizer strTok = new StringTokenizer(ct.getDecendants(), "/");
|
||||
while (strTok.hasMoreElements()) {
|
||||
or.addFilter(ff.equals(ContentType.ID, (String) strTok.nextElement()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -357,14 +357,14 @@ public class ContentTypeHelperImpl implements ContentTypeHelper {
|
|||
|
||||
// Add parent ancestors to this content types ancestor list
|
||||
// Also while we iterate through the list, we also need to add
|
||||
// this content type as sibling to all entries in the ancestor list
|
||||
// this content type as decendant to all entries in the ancestor list
|
||||
while (strTok.hasMoreElements()) {
|
||||
BigDecimal ctID = new BigDecimal(strTok.nextToken());
|
||||
|
||||
// Get the current content type
|
||||
try {
|
||||
ContentType ct = new ContentType(ctID);
|
||||
ct.addSiblings(ctID);
|
||||
ct.addDecendants(ctID);
|
||||
} catch (Exception ex) {
|
||||
// The db is broken. There is no content type for this ID
|
||||
}
|
||||
|
|
@ -377,8 +377,8 @@ public class ContentTypeHelperImpl implements ContentTypeHelper {
|
|||
// Add parent to ancestor list
|
||||
type.addAncestor(parent.getID());
|
||||
|
||||
// Add this to parent siblings
|
||||
parent.addSiblings(type.getID());
|
||||
// Add this to parent decendats
|
||||
parent.addDecendants(type.getID());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ public class ItemSearchFolderBrowser extends Table {
|
|||
try {
|
||||
ContentType ct = new ContentType(singleTypeID);
|
||||
|
||||
StringTokenizer strTok = new StringTokenizer(ct.getSiblings(), "/");
|
||||
StringTokenizer strTok = new StringTokenizer(ct.getDecendants(), "/");
|
||||
while (strTok.hasMoreElements()) {
|
||||
or.addFilter(ff.equals(ContentItem.CONTENT_TYPE + "." + ContentType.ID, (String) strTok.nextElement()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ public abstract class NewItemForm extends Form {
|
|||
if (parentType == null) {
|
||||
typesCollection = section.getCreatableContentTypes();
|
||||
} else {
|
||||
typesCollection = section.getSiblingsOfContentType(parentType);
|
||||
typesCollection = section.getDecendantsOfContentType(parentType);
|
||||
}
|
||||
|
||||
typesCollection.addOrder(ContentType.LABEL);
|
||||
|
|
|
|||
|
|
@ -56,13 +56,13 @@ public class ContentTypeFilterWidget extends FilterWidget {
|
|||
}
|
||||
|
||||
public ContentTypeFilterWidget(ContentSection section, ContentType parentType) {
|
||||
this(section.getSiblingsOfContentType(parentType));
|
||||
this(section.getDecendantsOfContentType(parentType));
|
||||
m_section = section;
|
||||
m_parentType = parentType;
|
||||
}
|
||||
|
||||
public ContentTypeFilterWidget(ContentType parentType) {
|
||||
this(ContentType.getSiblingsOf(parentType));
|
||||
this(ContentType.getDecendantsOf(parentType));
|
||||
m_parentType = parentType;
|
||||
}
|
||||
|
||||
|
|
@ -108,7 +108,7 @@ public class ContentTypeFilterWidget extends FilterWidget {
|
|||
if (parentType == null) {
|
||||
typesCollection = section.getContentTypes();
|
||||
} else {
|
||||
typesCollection = section.getSiblingsOfContentType(parentType);
|
||||
typesCollection = section.getDecendantsOfContentType(parentType);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
|
@ -116,7 +116,7 @@ public class ContentTypeFilterWidget extends FilterWidget {
|
|||
if (parentType == null) {
|
||||
typesCollection = ContentType.getRegisteredContentTypes();
|
||||
} else {
|
||||
typesCollection = ContentType.getSiblingsOf(parentType);
|
||||
typesCollection = ContentType.getDecendantsOf(parentType);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,118 +98,10 @@ public class CreateGenericContentTypes extends Program {
|
|||
|
||||
tc.commitTxn(); // save database additions for re-reading
|
||||
|
||||
// add the dependency hierarchie to any installed ct
|
||||
/* Das sollte ueberfluessig sein.
|
||||
tc.beginTxn();
|
||||
|
||||
ContentTypeCollection ctc = ContentType.getAllContentTypes();
|
||||
|
||||
s_log.debug("Starte content types update");
|
||||
|
||||
while (ctc.next()) {
|
||||
|
||||
ContentType ct = ctc.getContentType();
|
||||
|
||||
s_log.debug("Verarbeite " + ct.getClassName());
|
||||
|
||||
createPedigree(ct);
|
||||
|
||||
}
|
||||
tc.commitTxn();
|
||||
*/
|
||||
}
|
||||
}.run();
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the pedigree for new content types created during update.
|
||||
*
|
||||
* Copy 'nd pasted from AbstractContentType / Loader
|
||||
* @param type The new content type
|
||||
*/
|
||||
private void createPedigree(ContentType type) {
|
||||
|
||||
// The parent content type
|
||||
ContentType parent = null;
|
||||
|
||||
// Get all content types
|
||||
ContentTypeCollection cts = ContentType.getAllContentTypes();
|
||||
|
||||
// This is a brute force method, but I can't come up with something
|
||||
// better atm without changing either all Loader or the xml-files.
|
||||
|
||||
while (cts.next()) {
|
||||
ContentType ct = cts.getContentType();
|
||||
|
||||
try {
|
||||
Class.forName(type.getClassName()).asSubclass(Class.forName(ct.getClassName()));
|
||||
} catch (Exception ex) {
|
||||
// This cast is not valid so type is not a subclass of ct
|
||||
continue;
|
||||
}
|
||||
|
||||
s_log.debug("Possible Parent: " + ct.getClassName());
|
||||
|
||||
// Save the current ct as possible parent if we haven't found any parent yet
|
||||
// or if the current ancestor list is longer than that one from the possible
|
||||
// parent earlier found
|
||||
if (!type.getClassName().equals(ct.getClassName())
|
||||
&& (parent == null
|
||||
|| (parent.getAncestors() != null
|
||||
&& ct.getAncestors() != null
|
||||
&& parent.getAncestors().length() < ct.getAncestors().length()))) {
|
||||
parent = ct;
|
||||
}
|
||||
}
|
||||
|
||||
// If there is a valid parent content type create the pedigree
|
||||
if (parent != null && !parent.getClassName().equals(type.getClassName())) {
|
||||
s_log.debug(type.getClassName() + " is a subtype of "
|
||||
+ parent.getClassName());
|
||||
|
||||
if (parent.getAncestors() != null) {
|
||||
String parentAncestors = parent.getAncestors();
|
||||
|
||||
StringTokenizer strTok = new StringTokenizer(parentAncestors, "/");
|
||||
|
||||
// Add parent ancestors to this content types ancestor list
|
||||
// Also while we iterate through the list, we also need to add
|
||||
// this content type as sibling to all entries in the ancestor list
|
||||
|
||||
|
||||
while (strTok.hasMoreElements()) {
|
||||
|
||||
BigDecimal ctID = (BigDecimal) strTok.nextElement();
|
||||
|
||||
// Get the current content type
|
||||
|
||||
|
||||
try {
|
||||
ContentType ct = new ContentType(ctID);
|
||||
ct.addSiblings(ctID);
|
||||
|
||||
|
||||
} catch (Exception ex) {
|
||||
s_log.error("The db is broken.");
|
||||
// The db is broken. There is no content type for this ID
|
||||
}
|
||||
|
||||
// Add parent ancestor
|
||||
type.addAncestor(ctID);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Add parent to ancestor list
|
||||
type.addAncestor(parent.getID());
|
||||
|
||||
// Add this to parent siblings
|
||||
parent.addSiblings(type.getID());
|
||||
|
||||
}
|
||||
|
||||
s_log.debug("Method Pedigree finished");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,12 +73,14 @@ public class BaseQueryComponent extends QueryComponent {
|
|||
m_filters = new HashSet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(Page p) {
|
||||
super.register(p);
|
||||
|
||||
findFilters(m_filters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(Form form, FormModel model) {
|
||||
if (s_log.isDebugEnabled()) {
|
||||
s_log.debug("Adding " + m_terms.getName() + " to form model");
|
||||
|
|
@ -117,6 +119,7 @@ public class BaseQueryComponent extends QueryComponent {
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void generateXML(PageState state,
|
||||
Element parent) {
|
||||
Element content = generateParent(parent);
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ public class ResultsPane extends SimpleComponent {
|
|||
m_relative = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateXML(PageState state, Element parent) {
|
||||
if (!m_query.hasQuery(state)) {
|
||||
if (s_log.isDebugEnabled()) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue