Unload einsatzfähig. Alle bekannten Fehler behoben.

git-svn-id: https://svn.libreccm.org/ccm/trunk@3523 8810af33-2d31-482b-a856-94f89814c4df
master
tosmers 2015-07-13 11:58:04 +00:00
parent 43891e180c
commit c56db8ae78
3 changed files with 30 additions and 23 deletions

View File

@ -130,14 +130,16 @@ public class ExternalLinkPropertyForm extends BasicPageForm
description.setValue(state, extLink.getDescription());
url.setValue(state, extLink.getURL());
comment.setValue(state, extLink.getComment());
if (extLink.getShowComment()) {
if (extLink.getShowComment() != null
&& extLink.getShowComment()) {
showCommentCheckBox.setValue(
state, new String[]{ExternalLink.SHOW_COMMENT});
} else {
showCommentCheckBox.setValue(state, null);
}
if (extLink.getTargetNewWindow()) {
if (extLink.getTargetNewWindow() != null
&& extLink.getTargetNewWindow()) {
targetWindowCheckBox.setValue(
state, new String[]{ExternalLink.TARGET_WINDOW});
} else {

View File

@ -29,6 +29,7 @@ import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.Session;
import com.arsdigita.runtime.ScriptContext;
import com.arsdigita.xml.XML;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
@ -37,7 +38,7 @@ import org.apache.log4j.Logger;
*
*
* @author Tobias Osmers <tosmers@uni-bremen.de>
* @version $Revision: #1 $ $Date: 2015/05/18 $
* @version $Revision: #2 $ $Date: 2015/07/13 $
*/
public abstract class AbstractContentTypeUnloader extends PackageLoader {
/**
@ -84,13 +85,16 @@ public abstract class AbstractContentTypeUnloader extends PackageLoader {
*/
private void sweepTypes(ScriptContext ctx) {
XMLContentTypeHandler handler = new XMLContentTypeHandler(false);
// Retrieve the content type definition file(s)
ArrayList<ContentTypeHelper> deletableCTs = new ArrayList();
// Retrieve the content type definition file(s) and store all
// content-type-helper to delete all content types later
String[] contentTypes = getTypes();
for (String contentType : contentTypes) {
XML.parseResource(contentType, handler);
deletableCTs.add(handler.getContentTypeHelper());
}
List types = handler.getContentTypes();
List<ContentType> types = handler.getContentTypes();
Session ssn = ctx.getSession();
// Removes all contentitems/instances of the specified
@ -105,13 +109,17 @@ public abstract class AbstractContentTypeUnloader extends PackageLoader {
} catch (Exception ex) {
continue;
}
if (contentItem == null || !contentItem.isPublished()) {
if (contentItem == null) {
continue;
}
for (Iterator it = types.iterator(); it.hasNext(); ) {
final ContentType type = (ContentType) it.next();
if (contentItem.getContentType().equals(type)) {
contentItem.unpublish();
//for (Iterator it = types.iterator(); it.hasNext(); ) {
//final ContentType type = (ContentType) it.next();
for (ContentType type : types) {
ContentType ctype = contentItem.getContentType();
if (ctype != null && ctype.equals(type)) {
if (contentItem.isPublished()) {
contentItem.unpublish();
}
contentItem.delete();
}
}
@ -132,6 +140,11 @@ public abstract class AbstractContentTypeUnloader extends PackageLoader {
section.removeContentType(type);
}
}
// Delete content types
for (ContentTypeHelper deletableCT : deletableCTs) {
deletableCT.deleteType();
}
}
/**

View File

@ -60,11 +60,14 @@ public class XMLContentTypeHandler extends DefaultHandler {
public List getContentTypes() {
return m_types;
}
public ContentTypeHelper getContentTypeHelper() {
return m_type;
}
@Override
public void startElement(String uri, String name,
String qName, Attributes atts) {
boolean deletableType = false;
if (name.equals("content-types")) {
s_log.debug("matched content-types");
} else if (name.equals("content-type")) {
@ -103,9 +106,6 @@ public class XMLContentTypeHandler extends DefaultHandler {
m_contentType = m_type.createType();
m_types.add(m_contentType);
// m_type has been initialized
deletableType = true;
} else if (name.equals("authoring-kit")) {
if (!m_including) {
s_log.debug("matched authoring-kit");
@ -114,9 +114,6 @@ public class XMLContentTypeHandler extends DefaultHandler {
}
m_authoringKit = m_type.createAuthoringKit();
m_nextOrder = 1;
// only true if it has been initialized
deletableType &= true;
}
} else if (name.equals("authoring-step")) {
String label = atts.getValue("label");
@ -144,10 +141,5 @@ public class XMLContentTypeHandler extends DefaultHandler {
s_log.error("None of the elements match! name: " + name
+ " qName: " + qName + " URI: " + uri);
}
if (!create && deletableType) {
m_type.deleteType();
}
}
}