GenericPerson
* Titel und Name wird nun synchron zu den Daten gehalten. * Ein paar kleine Fehlerkorrekturen git-svn-id: https://svn.libreccm.org/ccm/trunk@564 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
d539eae18c
commit
ec89055598
|
|
@ -521,10 +521,6 @@ public class ContentType extends ACSObject {
|
|||
}
|
||||
|
||||
public static ContentTypeCollection getSiblingsOf(ContentType ct) {
|
||||
// final String query = "com.arsdigita.cms.registeredContentTypes";
|
||||
// DataQuery dq = SessionManager.getSession().retrieveQuery(query);
|
||||
// DataCollection dc = new DataQueryDataCollectionAdapter(dq, "type");
|
||||
// return new ContentTypeCollection(dc);
|
||||
ContentTypeCollection ctc = ContentType.getRegisteredContentTypes();
|
||||
|
||||
// The Filter Factory
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class GenericPerson extends ContentPage implements RelationAttributeInter
|
|||
private static final String RELATION_ATTRIBUTES = "GenericContactType";
|
||||
/** Data object type for this domain object */
|
||||
public static final String BASE_DATA_OBJECT_TYPE =
|
||||
"com.arsdigita.cms.contenttypes.GenericPerson";
|
||||
"com.arsdigita.cms.contenttypes.GenericPerson";
|
||||
|
||||
/**
|
||||
* Default constructor. This creates a new (empty) GenericPerson.
|
||||
|
|
@ -90,6 +90,7 @@ public class GenericPerson extends ContentPage implements RelationAttributeInter
|
|||
|
||||
public void setSurname(String surname) {
|
||||
set(SURNAME, surname);
|
||||
updateNameAndTitle();
|
||||
}
|
||||
|
||||
public String getGivenName() {
|
||||
|
|
@ -98,6 +99,7 @@ public class GenericPerson extends ContentPage implements RelationAttributeInter
|
|||
|
||||
public void setGivenName(String givenName) {
|
||||
set(GIVENNAME, givenName);
|
||||
updateNameAndTitle();
|
||||
}
|
||||
|
||||
public String getTitlePre() {
|
||||
|
|
@ -106,6 +108,7 @@ public class GenericPerson extends ContentPage implements RelationAttributeInter
|
|||
|
||||
public void setTitlePre(String titlePre) {
|
||||
set(TITLEPRE, titlePre);
|
||||
updateNameAndTitle();
|
||||
}
|
||||
|
||||
public String getTitlePost() {
|
||||
|
|
@ -114,6 +117,7 @@ public class GenericPerson extends ContentPage implements RelationAttributeInter
|
|||
|
||||
public void setTitlePost(String titlePost) {
|
||||
set(TITLEPOST, titlePost);
|
||||
updateNameAndTitle();
|
||||
}
|
||||
|
||||
public Date getBirthdate() {
|
||||
|
|
@ -139,16 +143,10 @@ public class GenericPerson extends ContentPage implements RelationAttributeInter
|
|||
* @return {@code titlePre} {@code givenName) {@code surnameName} {@code titlePost}
|
||||
*/
|
||||
public String getFullName() {
|
||||
String titlePre;
|
||||
String titlePost;
|
||||
String givenName;
|
||||
String surname;
|
||||
String fullName = "";
|
||||
|
||||
titlePre = getTitlePre();
|
||||
titlePost = getTitlePost();
|
||||
givenName = getGivenName();
|
||||
surname = getSurname();
|
||||
String titlePre = getTitlePre();
|
||||
String givenName = getGivenName();
|
||||
String surname = getSurname();
|
||||
String titlePost = getTitlePost();
|
||||
|
||||
if (titlePre == null) {
|
||||
titlePre = "";
|
||||
|
|
@ -163,17 +161,14 @@ public class GenericPerson extends ContentPage implements RelationAttributeInter
|
|||
surname = "";
|
||||
}
|
||||
|
||||
if (0 == fullName.length()) {
|
||||
fullName = getTitle();
|
||||
}
|
||||
return String.format("%s %s %s %s", titlePre, givenName, surname, titlePost).trim();
|
||||
}
|
||||
|
||||
fullName = String.format("%s %s %s %s",
|
||||
titlePre,
|
||||
givenName,
|
||||
surname,
|
||||
titlePost).trim();
|
||||
private void updateNameAndTitle() {
|
||||
// Sync title and name with CI data
|
||||
setTitle(getFullName());
|
||||
setName(GenericPerson.urlSave(getTitle()));
|
||||
|
||||
return fullName;
|
||||
}
|
||||
|
||||
// Get all contacts for this person
|
||||
|
|
@ -211,4 +206,22 @@ public class GenericPerson extends ContentPage implements RelationAttributeInter
|
|||
public StringTokenizer getRelationAttributes() {
|
||||
return new StringTokenizer(RELATION_ATTRIBUTES, ";");
|
||||
}
|
||||
|
||||
// Create a ulr save version of the full name
|
||||
public static String urlSave(String in) {
|
||||
|
||||
// Replacement map
|
||||
String[][] replacements = {{"ä", "ae"}, {"Ä", "Ae"}, {"ö", "oe"}, {"Ö", "Oe"}, {"ü", "ue"}, {"Ü", "Ue"}, {"ß", "ss"}, {".", ""}};
|
||||
|
||||
// Replace all spaces with dash
|
||||
String out = in.replace(" ", "-");
|
||||
|
||||
// Replace all special chars defined in replacement map
|
||||
for (int i = 0; i < replacements.length; i++) {
|
||||
out = out.replace(replacements[i][0], replacements[i][1]);
|
||||
}
|
||||
|
||||
// Replace all special chars that are not yet replaced with a dash
|
||||
return out.replaceAll("[^A-Za-z0-9-]", "_");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ import org.apache.log4j.Logger;
|
|||
*
|
||||
* @version $Revision: #7 $ $Date: 2004/08/17 $
|
||||
* @author Nobuko Asakai (nasakai@redhat.com)
|
||||
* @author Sören Bernstein (Quasimodo)
|
||||
*/
|
||||
public class Link extends ACSObject {
|
||||
private static final Logger s_log = Logger.getLogger(Link.class);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ import com.arsdigita.domain.DomainObject;
|
|||
*
|
||||
* This is a modified copy of ContentItemTraversalAdapter to make the
|
||||
* Link-Objects aware of multilingual items (ContentBundle)
|
||||
*
|
||||
* @author Sören Bernstein (Quasimodo)
|
||||
*/
|
||||
public class LinkTraversalAdapter
|
||||
extends ContentItemTraversalAdapter {
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public class GenericPersonCreate extends PageCreate {
|
|||
public void validate(FormSectionEvent e) throws FormProcessException {
|
||||
Folder f = m_parent.getFolder(e.getPageState());
|
||||
Assert.exists(f);
|
||||
validateNameUniqueness(f, e, urlSave(getFullname(e)));
|
||||
validateNameUniqueness(f, e, GenericPerson.urlSave(getFullname(e)));
|
||||
}
|
||||
|
||||
// Process: save fields to the database
|
||||
|
|
@ -89,7 +89,7 @@ public class GenericPersonCreate extends PageCreate {
|
|||
|
||||
final ContentPage item = createContentPage(state);
|
||||
item.setLanguage((String) data.get(LANGUAGE));
|
||||
item.setName(urlSave(fullName));
|
||||
item.setName(GenericPerson.urlSave(fullName));
|
||||
item.setTitle(fullName);
|
||||
if (!ContentSection.getConfig().getHideLaunchDate()) {
|
||||
item.setLaunchDate((Date) data.get(LAUNCH_DATE));
|
||||
|
|
@ -112,28 +112,28 @@ public class GenericPersonCreate extends PageCreate {
|
|||
m_parent.editItem(state, item);
|
||||
}
|
||||
|
||||
//
|
||||
// Generate full name
|
||||
private String getFullname(FormSectionEvent e) {
|
||||
final FormData data = e.getFormData();
|
||||
return data.getString(TITLEPRE) + " " + data.getString(GIVENNAME) + " " + data.getString(SURNAME) + " " + data.getString(TITLEPOST);
|
||||
String titlePre = data.getString(TITLEPRE);
|
||||
String givenName = data.getString(GIVENNAME);
|
||||
String surname = data.getString(SURNAME);
|
||||
String titlePost = data.getString(TITLEPOST);
|
||||
|
||||
}
|
||||
|
||||
// Create a ulr save version of the full name
|
||||
private String urlSave(String in) {
|
||||
|
||||
// Replacement map
|
||||
String[][] replacements = {{"ä", "ae"}, {"Ä", "Ae"}, {"ö", "oe"}, {"Ö", "Oe"}, {"ü", "ue"}, {"Ü", "Ue"}, {"ß", "ss"}, {".", ""}};
|
||||
|
||||
// Replace all spaces with dash
|
||||
String out = in.replace(" ", "-");
|
||||
|
||||
// Replace all special chars defined in replacement map
|
||||
for (int i = 0; i < replacements.length; i++) {
|
||||
out = out.replace(replacements[i][0], replacements[i][1]);
|
||||
if (titlePre == null) {
|
||||
titlePre = "";
|
||||
}
|
||||
if (titlePost == null) {
|
||||
titlePost = "";
|
||||
}
|
||||
if (givenName == null) {
|
||||
givenName = "";
|
||||
}
|
||||
if (surname == null) {
|
||||
surname = "";
|
||||
}
|
||||
|
||||
// Replace all special chars that are not yet replaced with a dash
|
||||
return out.replaceAll("[^A-Za-z0-9-]", "_");
|
||||
return String.format("%s %s %s %s", titlePre, givenName, surname, titlePost).trim();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue