SciPublicPersonalProfile: Mock fertiggestellt.

git-svn-id: https://svn.libreccm.org/ccm/trunk@1004 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-07-14 11:41:26 +00:00
parent 80addc1256
commit 2e5d6ef588
12 changed files with 87 additions and 187 deletions

View File

@ -15,7 +15,7 @@
<table class="globalAdminHeader"> <table class="globalAdminHeader">
<tr> <tr>
<!-- Shadow man logo by default --> <!-- Shadow man logo by default -->
<a href="http://www.redhat.com"><td class="globalLogo"></td></a> <!--<a href="http://www.redhat.com"><td class="globalLogo"></td></a>-->
<td><xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text></td> <td><xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text></td>
<td style="margin: 0; border: 0; padding: 0;"> <td style="margin: 0; border: 0; padding: 0;">
<table align="center" style="margin: 0; border: 0; padding: 0;"> <table align="center" style="margin: 0; border: 0; padding: 0;">
@ -87,7 +87,7 @@
<table class="globalAdminHeader"> <table class="globalAdminHeader">
<tr> <tr>
<!-- Shadow man logo by default --> <!-- Shadow man logo by default -->
<a href="http://www.redhat.com"><td class="globalLogo"></td></a> <!--<a href="http://www.redhat.com"><td class="globalLogo"></td></a>-->
<td><xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text></td> <td><xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text></td>
<td style="margin: 0; border: 0; padding: 0;"> <td style="margin: 0; border: 0; padding: 0;">
<table align="center" style="margin: 0; border: 0; padding: 0;"> <table align="center" style="margin: 0; border: 0; padding: 0;">

View File

@ -87,7 +87,7 @@
<table class="globalAdminHeader"> <table class="globalAdminHeader">
<tr> <tr>
<!-- Shadow man logo by default --> <!-- Shadow man logo by default -->
<a href="http://www.redhat.com"><td class="globalLogo"></td></a> <!--<a href="http://www.redhat.com"><td class="globalLogo"></td></a>-->
<td><xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text></td> <td><xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text></td>
<td style="margin: 0; border: 0; padding: 0;"> <td style="margin: 0; border: 0; padding: 0;">
<table align="center" style="margin: 0; border: 0; padding: 0;"> <table align="center" style="margin: 0; border: 0; padding: 0;">

View File

@ -1,143 +0,0 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.ColumnPanel;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.parameters.DateParameter;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.util.GlobalizationUtil;
import com.arsdigita.cms.ContentBundle;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.ui.ItemSearchWidget;
import com.arsdigita.cms.ui.authoring.CreationSelector;
import com.arsdigita.cms.ui.authoring.PageCreate;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.Folder;
import com.arsdigita.cms.ui.authoring.ApplyWorkflowFormSection;
import com.arsdigita.cms.ui.authoring.LanguageWidget;
import com.arsdigita.cms.contenttypes.SciMember;
import com.arsdigita.cms.contenttypes.SciPublicPersonalProfile;
import com.arsdigita.util.Assert;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciPublicPersonalProfileCreate extends PageCreate {
private ItemSearchWidget itemSearch;
private final String ITEM_SEARCH = "owner";
public SciPublicPersonalProfileCreate(final ItemSelectionModel itemModel,
final CreationSelector parent) {
super(itemModel, parent);
}
@Override
public void addWidgets() {
ContentType type = getItemSelectionModel().getContentType();
m_workflowSection = new ApplyWorkflowFormSection(type);
add(m_workflowSection, ColumnPanel.INSERT);
add(new Label(GlobalizationUtil.globalize(
"cms.ui.authoring.content_type")));
add(new Label(type.getLabel()));
add(new Label(GlobalizationUtil.globalize("cms.ui.language.field")));
add(new LanguageWidget(LANGUAGE));
itemSearch = new ItemSearchWidget(ITEM_SEARCH,
ContentType.findByAssociatedObjectType(
SciMember.class.getName()));
add(itemSearch);
if (!ContentSection.getConfig().getHideLaunchDate()) {
add(new Label(GlobalizationUtil.globalize(
"cms.ui.authoring.page_launch_date")));
ParameterModel launchDateParam = new DateParameter(LAUNCH_DATE);
com.arsdigita.bebop.form.Date launchDate =
new com.arsdigita.bebop.form.Date(
launchDateParam);
if (ContentSection.getConfig().getRequireLaunchDate()) {
launchDate.addValidationListener(
new LaunchDateValidationListener());
// if launch date is required, help user by suggesting today's date
launchDateParam.setDefaultValue(new Date());
}
add(launchDate);
}
}
@Override
public void validate(FormSectionEvent fse) throws FormProcessException {
final Folder folder = m_parent.getFolder(fse.getPageState());
Assert.exists(folder);
validateNameUniqueness(folder, fse, getProfileName(fse));
}
@Override
public void process(FormSectionEvent fse) throws FormProcessException {
final FormData data = fse.getFormData();
final PageState state = fse.getPageState();
final ContentSection section = m_parent.getContentSection(state);
final Folder folder = m_parent.getFolder(state);
final String profileName = getProfileName(fse);
final SciMember owner = (SciMember) data.get(ITEM_SEARCH);
Assert.exists(section, ContentSection.class);
final ContentPage item = createContentPage(state);
item.setLanguage((String) data.get(LANGUAGE));
item.setName(profileName);
item.setTitle(getProfileTitle(fse));
if (!ContentSection.getConfig().getHideLaunchDate()) {
item.setLaunchDate((Date) data.get(LAUNCH_DATE));
}
final ContentBundle bundle = new ContentBundle(item);
bundle.setParent(folder);
bundle.setContentSection(m_parent.getContentSection(state));
bundle.save();
m_workflowSection.applyWorkflow(state, item);
SciPublicPersonalProfile profile = new SciPublicPersonalProfile(item.getID());
profile.setOwner(owner);
profile.save();
m_parent.editItem(state, item);
}
private String getProfileName(FormSectionEvent fse) {
final FormData data = fse.getFormData();
SciMember owner = (SciMember) data.get(ITEM_SEARCH);
if (owner == null) {
return null;
} else {
return String.format("profile_%s_%s",
owner.getGivenName(),
owner.getSurname());
}
}
private String getProfileTitle(FormSectionEvent fse) {
final FormData data = fse.getFormData();
SciMember owner = (SciMember) data.get(ITEM_SEARCH);
if (owner == null) {
return null;
} else {
return String.format("Profile %s %s",
owner.getGivenName(),
owner.getSurname());
}
}
}

View File

@ -70,9 +70,7 @@ public class SciPublicPersonalProfileNavigationAddForm
add(new Label((String) SciPublicPersonalProfileGlobalizationUtil. add(new Label((String) SciPublicPersonalProfileGlobalizationUtil.
globalize("scipublicpersonalprofile.ui.nav.select_target"). globalize("scipublicpersonalprofile.ui.nav.select_target").
localize())); localize()));
itemSearch = new ItemSearchWidget(ITEM_SEARCH, ContentType. itemSearch = new ItemSearchWidget(ITEM_SEARCH);
findByAssociatedObjectType(
"com.arsdigita.cms.contenttypes.ContentItem"));
add(this.itemSearch); add(this.itemSearch);
} }

View File

@ -103,7 +103,7 @@ public class SciPublicPersonalProfileNavigationTable
@Override @Override
public boolean nextRow() { public boolean nextRow() {
if (index < mockNav.length) { if (index < (mockNav.length - 1)) {
index++; index++;
return true; return true;
} else { } else {

View File

@ -2,14 +2,18 @@ package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Component; import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.Label; import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SegmentedPanel; import com.arsdigita.bebop.SegmentedPanel;
import com.arsdigita.cms.ItemSelectionModel; import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciPublicPersonalProfile; import com.arsdigita.cms.contenttypes.SciPublicPersonalProfile;
import com.arsdigita.cms.ui.ItemSearchWidget;
import com.arsdigita.domain.DomainObject;
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet; import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard; import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicPageForm; import com.arsdigita.cms.ui.authoring.BasicPageForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep; import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess; import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
import com.arsdigita.cms.contenttypes.SciMember;
/** /**
* *
@ -62,9 +66,30 @@ public class SciPublicPersonalProfilePropertiesStep extends SimpleEditStep {
DomainObjectPropertySheet sheet = new DomainObjectPropertySheet( DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
itemModel); itemModel);
sheet.add(SciPublicPersonalProfileGlobalizationUtil.globalize("scipublicpersonalprofile.ui.profile_url"), sheet.add(SciPublicPersonalProfileGlobalizationUtil.globalize(
"scipublicpersonalprofile.ui.owner"),
SciPublicPersonalProfile.OWNER, new OwnerFormatter());
sheet.add(SciPublicPersonalProfileGlobalizationUtil.globalize(
"scipublicpersonalprofile.ui.profile_url"),
SciPublicPersonalProfile.PROFILE_URL); SciPublicPersonalProfile.PROFILE_URL);
return sheet; return sheet;
} }
private static class OwnerFormatter implements
DomainObjectPropertySheet.AttributeFormatter {
public String format(DomainObject obj, String attribute, PageState state) {
SciPublicPersonalProfile profile = (SciPublicPersonalProfile) obj;
SciMember owner = profile.getOwner();
if (owner == null) {
return "";
} else {
return owner.getFullName();
}
}
}
} }

View File

@ -2,32 +2,20 @@ package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData; import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException; import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.FormSection;
import com.arsdigita.bebop.Label; import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormInitListener; import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener; import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent; import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.event.FormSubmissionListener;
import com.arsdigita.bebop.form.CheckboxGroup;
import com.arsdigita.bebop.form.Option;
import com.arsdigita.bebop.form.SingleSelect;
import com.arsdigita.bebop.form.TextArea;
import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.parameters.DateParameter;
import com.arsdigita.bebop.parameters.NotNullValidationListener;
import com.arsdigita.bebop.parameters.ParameterModel; import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter; import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ItemSelectionModel; import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.GenericPerson; import com.arsdigita.cms.contenttypes.SciMember;
import com.arsdigita.cms.contenttypes.SciPublicPersonalProfile; import com.arsdigita.cms.contenttypes.SciPublicPersonalProfile;
import com.arsdigita.cms.contenttypes.util.ContenttypesGlobalizationUtil; import com.arsdigita.cms.ui.ItemSearchWidget;
import com.arsdigita.cms.ui.authoring.BasicPageForm; import com.arsdigita.cms.ui.authoring.BasicPageForm;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.text.StyledEditorKit.BoldAction;
import org.apache.log4j.Logger;
/** /**
* *
@ -40,10 +28,8 @@ public class SciPublicPersonalProfilePropertyForm
FormInitListener { FormInitListener {
private SciPublicPersonalProfilePropertiesStep step; private SciPublicPersonalProfilePropertiesStep step;
private CheckboxGroup showPublicationList; private ItemSearchWidget itemSearch;
private CheckboxGroup showProjectList; private final String ITEM_SEARCH = "owner";
private String SHOW_PUBLICATION_LIST = "showPublicationList";
private String SHOW_PROJECT_LIST = "showProjectList";
public static final String ID = "SciPublicPersonalProfile_edit"; public static final String ID = "SciPublicPersonalProfile_edit";
public SciPublicPersonalProfilePropertyForm(ItemSelectionModel itemModel) { public SciPublicPersonalProfilePropertyForm(ItemSelectionModel itemModel) {
@ -61,6 +47,12 @@ public class SciPublicPersonalProfilePropertyForm
public void addWidgets() { public void addWidgets() {
super.addWidgets(); super.addWidgets();
add(new Label(SciPublicPersonalProfileGlobalizationUtil.globalize(
"scipublicpersonalprofile.ui.profile.owner")));
itemSearch = new ItemSearchWidget(ITEM_SEARCH, ContentType.
findByAssociatedObjectType(SciMember.class.getName()));
add(itemSearch);
add(new Label(SciPublicPersonalProfileGlobalizationUtil.globalize( add(new Label(SciPublicPersonalProfileGlobalizationUtil.globalize(
"scipublicpersonalprofile.ui.profile.url"))); "scipublicpersonalprofile.ui.profile.url")));
ParameterModel profileUrlParam = ParameterModel profileUrlParam =
@ -90,10 +82,24 @@ public class SciPublicPersonalProfilePropertyForm
if ((profile != null) if ((profile != null)
&& getSaveCancelSection().getSaveButton().isSelected(state)) { && getSaveCancelSection().getSaveButton().isSelected(state)) {
SciMember owner = (SciMember) data.get(ITEM_SEARCH);
profile.setOwner(owner);
profile.setProfileUrl((String) data.get( profile.setProfileUrl((String) data.get(
SciPublicPersonalProfile.PROFILE_URL)); SciPublicPersonalProfile.PROFILE_URL));
profile.save(); profile.save();
} }
} }
@Override
public void validate(FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
if (data.get(ITEM_SEARCH) == null) {
data.addError(SciPublicPersonalProfileGlobalizationUtil.globalize(
"scipublicpersonalprofile.ui.profile.missing_owner"));
}
}
} }

View File

@ -0,0 +1,9 @@
scipublicpersonalprofile.ui.profile.basic_properties=Basic properties
scipublicpersonalprofile.ui.profile.edit_basic_properties=Edit basic properties
scipublicpersonalprofile.ui.owner=Profile of
scipublicpersonalprofile.ui.profile_url=URL fragement
scipublicpersonalprofile.ui.nav.target=Navigation item
scipublicpersonalprofile.ui.nav.remove=Remove
scipublicpersonalprofile.ui.profile_properties.title=Basic properties
scipublicpersonalprofile.ui.profile_nav.title=Navigation
scipublicpersonalprofile.ui.profile.nav_add=Add item

View File

@ -0,0 +1,12 @@
# To change this template, choose Tools | Templates
# and open the template in the editor.
scipublicpersonalprofile.ui.profile.basic_properties=Basiseigenschaften
scipublicpersonalprofile.ui.profile.edit_basic_properties=Basiseigenschaften bearbeiten
scipublicpersonalprofile.ui.owner=Profil von
scipublicpersonalprofile.ui.profile_url=URL Fragment
scipublicpersonalprofile.ui.nav.target=Navigationspunkt
scipublicpersonalprofile.ui.nav.remove=Entfernen
scipublicpersonalprofile.ui.profile_properties.title=Basiseigenschaften
scipublicpersonalprofile.ui.profile_nav.title=Navigation
scipublicpersonalprofile.ui.profile.nav_add=Navigationspunkt hinzuf\u00fcgen

View File

@ -1,2 +0,0 @@
scipublicpersonalprofile.ui.profile.basic_properties=Basic properties
scipublicpersonalprofile.ui.profile.edit_basic_properties=Edit basic properties

View File

@ -1,5 +0,0 @@
# To change this template, choose Tools | Templates
# and open the template in the editor.
scipublicpersonalprofile.ui.profile.basic_properties=Basiseigenschaften
scipublicpersonalprofile.ui.profile.edit_basic_properties=Basiseigenschaften bearbeiten