bugfix to display of community hide mode
This commit is contained in:
parent
1c245749f7
commit
1351306780
|
@ -652,11 +652,12 @@ the community's host, or via an invitation e-mail message. Please enter it in th
|
||||||
<choice id="1">Private</choice>
|
<choice id="1">Private</choice>
|
||||||
</list>
|
</list>
|
||||||
<text name="joinkey" capt="Join key" capt2="(for private communities)" size="32" maxlength="64"/>
|
<text name="joinkey" capt="Join key" capt2="(for private communities)" size="32" maxlength="64"/>
|
||||||
<list name="hidemode" capt="Community visibility" required="true">
|
<enumlist name="hidemode" capt="Community visibility" required="true"
|
||||||
<choice id="0">Show in both directory and search</choice>
|
enumClass="com.silverwrist.venice.core.CommunityHideMode">
|
||||||
<choice id="1">Hide in directory, but not in search</choice>
|
<choice id="NONE">Show in both directory and search</choice>
|
||||||
<choice id="2">Hide in both directory and search</choice>
|
<choice id="DIRECTORY">Hide in directory, but not in search</choice>
|
||||||
</list>
|
<choice id="BOTH">Hide in both directory and search</choice>
|
||||||
|
</enumlist>
|
||||||
<imagebutton id="create"/>
|
<imagebutton id="create"/>
|
||||||
<imagebutton id="cancel"/>
|
<imagebutton id="cancel"/>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
@ -688,11 +689,12 @@ the community's host, or via an invitation e-mail message. Please enter it in th
|
||||||
</list>
|
</list>
|
||||||
<text name="joinkey" capt="Join key" capt2="(for private communities)" size="32" maxlength="64"/>
|
<text name="joinkey" capt="Join key" capt2="(for private communities)" size="32" maxlength="64"/>
|
||||||
<checkbox name="membersonly" capt="Allow only members to access this community"/>
|
<checkbox name="membersonly" capt="Allow only members to access this community"/>
|
||||||
<list name="hidemode" capt="Community visibility" required="true">
|
<enumlist name="hidemode" capt="Community visibility" required="true"
|
||||||
<choice id="0">Show in both directory and search</choice>
|
enumClass="com.silverwrist.venice.core.CommunityHideMode">
|
||||||
<choice id="1">Hide in directory, but not in search</choice>
|
<choice id="NONE">Show in both directory and search</choice>
|
||||||
<choice id="2">Hide in both directory and search</choice>
|
<choice id="DIRECTORY">Hide in directory, but not in search</choice>
|
||||||
</list>
|
<choice id="BOTH">Hide in both directory and search</choice>
|
||||||
|
</enumlist>
|
||||||
<rolelist name="read_lvl" capt="Security level required to read contents" required="true"/>
|
<rolelist name="read_lvl" capt="Security level required to read contents" required="true"/>
|
||||||
<rolelist name="write_lvl" capt="Security level required to update profile" required="true"/>
|
<rolelist name="write_lvl" capt="Security level required to update profile" required="true"/>
|
||||||
<rolelist name="create_lvl" capt="Security level required to create new subobjects" required="true"/>
|
<rolelist name="create_lvl" capt="Security level required to create new subobjects" required="true"/>
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
//
|
//
|
||||||
// The Original Code is the Venice Web Communities System.
|
// The Original Code is the Venice Web Communities System.
|
||||||
//
|
//
|
||||||
// The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
// The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
|
||||||
// for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
// for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||||
// Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
// Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||||
//
|
//
|
||||||
// Contributor(s):
|
// Contributor(s):
|
||||||
|
|
||||||
|
@ -76,12 +76,10 @@ if (op=="create")
|
||||||
|
|
||||||
} // end if
|
} // end if
|
||||||
|
|
||||||
my_hidemode = parseInt(dlg.getValue("hidemode"),10); // get the hide mode
|
|
||||||
|
|
||||||
// Create the new community context.
|
// Create the new community context.
|
||||||
new_comm = rinput.user.createCommunity(dlg.getValue("name"),my_alias,dlg.getValue("language"),
|
new_comm = rinput.user.createCommunity(dlg.getValue("name"),my_alias,dlg.getValue("language"),
|
||||||
dlg.getValue("synopsis"),dlg.getValue("rules"),my_joinkey,
|
dlg.getValue("synopsis"),dlg.getValue("rules"),my_joinkey,
|
||||||
my_hidemode);
|
dlg.getValue("hidemode"));
|
||||||
|
|
||||||
// Get the new community's contact record and fill in the pieces of info we know.
|
// Get the new community's contact record and fill in the pieces of info we know.
|
||||||
ci = new_comm.getContactInfo();
|
ci = new_comm.getContactInfo();
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
//
|
//
|
||||||
// The Original Code is the Venice Web Communities System.
|
// The Original Code is the Venice Web Communities System.
|
||||||
//
|
//
|
||||||
// The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
// The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
|
||||||
// for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
// for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||||
// Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
// Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||||
//
|
//
|
||||||
// Contributor(s):
|
// Contributor(s):
|
||||||
|
|
||||||
|
@ -102,6 +102,7 @@ if ("GET"==rinput.verb)
|
||||||
|
|
||||||
if (comm.membersOnly)
|
if (comm.membersOnly)
|
||||||
dlg.setValue("membersonly",1);
|
dlg.setValue("membersonly",1);
|
||||||
|
logger.debug("Community's hidemode is " + comm.hideMode);
|
||||||
dlg.setValue("hidemode",comm.hideMode);
|
dlg.setValue("hidemode",comm.hideMode);
|
||||||
dlg.setValue("read_lvl",comm.readLevel);
|
dlg.setValue("read_lvl",comm.readLevel);
|
||||||
dlg.setValue("write_lvl",comm.writeLevel);
|
dlg.setValue("write_lvl",comm.writeLevel);
|
||||||
|
@ -193,7 +194,7 @@ if (op=="update")
|
||||||
comm.joinKey = null;
|
comm.joinKey = null;
|
||||||
|
|
||||||
comm.membersOnly = dlg.getValue("membersonly").booleanValue();
|
comm.membersOnly = dlg.getValue("membersonly").booleanValue();
|
||||||
comm.setHideMode(parseInt(dlg.getValue("hidemode"),10));
|
comm.setHideMode(dlg.getValue("hidemode"));
|
||||||
comm.setSecurityLevels(parseInt(dlg.getValue("read_lvl"),10),parseInt(dlg.getValue("write_lvl"),10),
|
comm.setSecurityLevels(parseInt(dlg.getValue("read_lvl"),10),parseInt(dlg.getValue("write_lvl"),10),
|
||||||
parseInt(dlg.getValue("create_lvl"),10),parseInt(dlg.getValue("delete_lvl"),10),
|
parseInt(dlg.getValue("create_lvl"),10),parseInt(dlg.getValue("delete_lvl"),10),
|
||||||
parseInt(dlg.getValue("join_lvl"),10));
|
parseInt(dlg.getValue("join_lvl"),10));
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
*
|
*
|
||||||
* The Original Code is the Venice Web Communities System.
|
* The Original Code is the Venice Web Communities System.
|
||||||
*
|
*
|
||||||
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
|
||||||
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||||
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
* Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Contributor(s):
|
* Contributor(s):
|
||||||
*/
|
*/
|
||||||
|
@ -27,167 +27,159 @@ import com.silverwrist.venice.except.EmailException;
|
||||||
|
|
||||||
public interface CommunityContext extends SearchMode
|
public interface CommunityContext extends SearchMode
|
||||||
{
|
{
|
||||||
public static final int HIDE_NONE = 0;
|
public int getCommunityID();
|
||||||
public static final int HIDE_DIRECTORY = 1;
|
|
||||||
public static final int HIDE_BOTH = 2;
|
|
||||||
|
|
||||||
public abstract int getCommunityID();
|
public String getName();
|
||||||
|
|
||||||
public abstract String getName();
|
public String getAlias();
|
||||||
|
|
||||||
public abstract String getAlias();
|
public boolean isMember();
|
||||||
|
|
||||||
public abstract boolean isMember();
|
public boolean isAdmin();
|
||||||
|
|
||||||
public abstract boolean isAdmin();
|
public boolean isPublicCommunity();
|
||||||
|
|
||||||
public abstract boolean isPublicCommunity();
|
public int getCategoryID();
|
||||||
|
|
||||||
public abstract int getCategoryID();
|
public CategoryDescriptor getCategory() throws DataException;
|
||||||
|
|
||||||
public abstract CategoryDescriptor getCategory() throws DataException;
|
public String getSynopsis();
|
||||||
|
|
||||||
public abstract String getSynopsis();
|
public int getHostUID();
|
||||||
|
|
||||||
public abstract int getHostUID();
|
public UserProfile getHostProfile() throws DataException;
|
||||||
|
|
||||||
public abstract UserProfile getHostProfile() throws DataException;
|
public String getLanguageCode();
|
||||||
|
|
||||||
public abstract String getLanguageCode();
|
public String getLanguageFullName();
|
||||||
|
|
||||||
public abstract String getLanguageFullName();
|
public String getRules();
|
||||||
|
|
||||||
public abstract String getRules();
|
public Date getCreationDate();
|
||||||
|
|
||||||
public abstract Date getCreationDate();
|
public Date getLastAccessDate();
|
||||||
|
|
||||||
public abstract Date getLastAccessDate();
|
public Date getLastUpdateDate();
|
||||||
|
|
||||||
public abstract Date getLastUpdateDate();
|
public ContactInfo getContactInfo() throws DataException;
|
||||||
|
|
||||||
public abstract ContactInfo getContactInfo() throws DataException;
|
public void putContactInfo(ContactInfo ci) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void putContactInfo(ContactInfo ci) throws DataException, AccessError;
|
public Set getServices();
|
||||||
|
|
||||||
public abstract Set getServices();
|
public Set getConfiguredServices();
|
||||||
|
|
||||||
public abstract Set getConfiguredServices();
|
public void setServiceEnable(ServiceToken token, boolean enable) throws AccessError, DataException;
|
||||||
|
|
||||||
public abstract void setServiceEnable(ServiceToken token, boolean enable) throws AccessError, DataException;
|
public void setName(String name) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setName(String name) throws DataException, AccessError;
|
public void setAlias(String alias) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setAlias(String alias) throws DataException, AccessError;
|
public void setCategoryID(int catid) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setCategoryID(int catid) throws DataException, AccessError;
|
public void setCategory(CategoryDescriptor cat) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setCategory(CategoryDescriptor cat) throws DataException, AccessError;
|
public void setSynopsis(String synopsis) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setSynopsis(String synopsis) throws DataException, AccessError;
|
public void setLanguage(String language) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setLanguage(String language) throws DataException, AccessError;
|
public void setRules(String rules) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setRules(String rules) throws DataException, AccessError;
|
public CommunityHideMode getHideMode();
|
||||||
|
|
||||||
public abstract int getHideMode();
|
public void setHideMode(CommunityHideMode mode) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setHideMode(int mode) throws DataException, AccessError;
|
public boolean getMembersOnly();
|
||||||
|
|
||||||
public abstract boolean getMembersOnly();
|
public void setMembersOnly(boolean flag) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setMembersOnly(boolean flag) throws DataException, AccessError;
|
public ServiceToken getDefaultService();
|
||||||
|
|
||||||
public abstract ServiceToken getDefaultService();
|
public void setDefaultService(ServiceToken token) throws AccessError, DataException;
|
||||||
|
|
||||||
public abstract void setDefaultService(ServiceToken token) throws AccessError, DataException;
|
public String getJoinKey() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract String getJoinKey() throws DataException, AccessError;
|
public void setJoinKey(String key) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setJoinKey(String key) throws DataException, AccessError;
|
public int getReadLevel() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract int getReadLevel() throws DataException, AccessError;
|
public int getWriteLevel() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract int getWriteLevel() throws DataException, AccessError;
|
public int getCreateLevel() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract int getCreateLevel() throws DataException, AccessError;
|
public int getDeleteLevel() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract int getDeleteLevel() throws DataException, AccessError;
|
public int getJoinLevel() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract int getJoinLevel() throws DataException, AccessError;
|
public void setSecurityLevels(int read, int write, int create, int delete, int join)
|
||||||
|
|
||||||
public abstract void setSecurityLevels(int read, int write, int create, int delete, int join)
|
|
||||||
throws DataException, AccessError;
|
throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract boolean canAdministerCommunity();
|
public boolean canAdministerCommunity();
|
||||||
|
|
||||||
public abstract boolean canModifyProfile();
|
public boolean canModifyProfile();
|
||||||
|
|
||||||
public abstract boolean isAdminCommunity();
|
public boolean isAdminCommunity();
|
||||||
|
|
||||||
public abstract void join(String joinkey) throws DataException, AccessError;
|
public void join(String joinkey) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void unjoin() throws DataException, AccessError;
|
public void unjoin() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract int getMemberCount() throws DataException;
|
public int getMemberCount() throws DataException;
|
||||||
|
|
||||||
public abstract boolean canUnjoin();
|
public boolean canUnjoin();
|
||||||
|
|
||||||
public abstract boolean canJoin();
|
public boolean canJoin();
|
||||||
|
|
||||||
public abstract List getConferences() throws DataException, AccessError;
|
public List getConferences() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract ConferenceContext getConferenceContext(int confid) throws DataException, AccessError;
|
public ConferenceContext getConferenceContext(int confid) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract ConferenceContext getConferenceContext(String alias) throws DataException, AccessError;
|
public ConferenceContext getConferenceContext(String alias) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract ConferenceContext createConference(String name, String alias, String description,
|
public ConferenceContext createConference(String name, String alias, String description,
|
||||||
boolean pvt, boolean hide_list)
|
boolean pvt, boolean hide_list) throws DataException, AccessError;
|
||||||
throws DataException, AccessError;
|
|
||||||
|
|
||||||
public abstract boolean canCreateConference();
|
public boolean canCreateConference();
|
||||||
|
|
||||||
public abstract List searchForMembers(int field, int mode, String term, int offset, int count)
|
public List searchForMembers(int field, int mode, String term, int offset, int count) throws DataException;
|
||||||
throws DataException;
|
|
||||||
|
|
||||||
public abstract int getSearchMemberCount(int field, int mode, String term) throws DataException;
|
public int getSearchMemberCount(int field, int mode, String term) throws DataException;
|
||||||
|
|
||||||
public abstract List getMemberList() throws DataException;
|
public List getMemberList() throws DataException;
|
||||||
|
|
||||||
public abstract boolean canManageConferences();
|
public boolean canManageConferences();
|
||||||
|
|
||||||
public abstract int getMemberLevel(int uid) throws DataException, AccessError;
|
public int getMemberLevel(int uid) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setMembership(int uid, int new_level)
|
public void setMembership(int uid, int new_level) throws DataException, AccessError;
|
||||||
throws DataException, AccessError;
|
|
||||||
|
|
||||||
public abstract boolean canDelete();
|
public boolean canDelete();
|
||||||
|
|
||||||
public abstract void delete() throws DataException, AccessError;
|
public void delete() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void deleteCommunity() throws DataException, AccessError;
|
public void deleteCommunity() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void sendInvitation(String address, String personal_message)
|
public void sendInvitation(String address, String personal_message)
|
||||||
throws AccessError, DataException, EmailException;
|
throws AccessError, DataException, EmailException;
|
||||||
|
|
||||||
public abstract boolean canSendInvitation();
|
public boolean canSendInvitation();
|
||||||
|
|
||||||
public abstract List getAuditRecords(int offset, int count) throws AccessError, DataException;
|
public List getAuditRecords(int offset, int count) throws AccessError, DataException;
|
||||||
|
|
||||||
public abstract int getAuditRecordCount() throws AccessError, DataException;
|
public int getAuditRecordCount() throws AccessError, DataException;
|
||||||
|
|
||||||
public abstract CommunityProperties getProperties() throws DataException, AccessError;
|
public CommunityProperties getProperties() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void setProperties(CommunityProperties props) throws DataException, AccessError;
|
public void setProperties(CommunityProperties props) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract SecurityInfo getSecurityInfo();
|
public SecurityInfo getSecurityInfo();
|
||||||
|
|
||||||
public abstract boolean canMassMail();
|
public boolean canMassMail();
|
||||||
|
|
||||||
public abstract void massMail(String subject, String text) throws AccessError, DataException;
|
public void massMail(String subject, String text) throws AccessError, DataException;
|
||||||
|
|
||||||
public abstract List searchPosts(String search_terms, int offset, int count)
|
public List searchPosts(String search_terms, int offset, int count) throws AccessError, DataException;
|
||||||
throws AccessError, DataException;
|
|
||||||
|
|
||||||
public abstract int getSearchPostCount(String search_terms) throws AccessError, DataException;
|
public int getSearchPostCount(String search_terms) throws AccessError, DataException;
|
||||||
|
|
||||||
} // end interface CommunityContext
|
} // end interface CommunityContext
|
||||||
|
|
165
src/com/silverwrist/venice/core/CommunityHideMode.java
Normal file
165
src/com/silverwrist/venice/core/CommunityHideMode.java
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
/*
|
||||||
|
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||||
|
* (the "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||||
|
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing rights and limitations under the License.
|
||||||
|
*
|
||||||
|
* The Original Code is the Venice Web Communities System.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
|
||||||
|
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||||
|
* Copyright (C) 2004 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
*/
|
||||||
|
package com.silverwrist.venice.core;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public final class CommunityHideMode implements Comparable
|
||||||
|
{
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Static data members
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static ArrayList s_order_list = null;
|
||||||
|
private static HashMap s_name_to_enum = null;
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Attributes
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
private String m_name;
|
||||||
|
private String m_to_string;
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Constructor
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
private CommunityHideMode(String name)
|
||||||
|
{
|
||||||
|
m_name = name;
|
||||||
|
if (s_order_list==null)
|
||||||
|
s_order_list = new ArrayList();
|
||||||
|
s_order_list.add(this);
|
||||||
|
if (s_name_to_enum==null)
|
||||||
|
s_name_to_enum = new HashMap();
|
||||||
|
s_name_to_enum.put(name,this);
|
||||||
|
m_to_string = "CommunityHideMode[" + name + "]";
|
||||||
|
|
||||||
|
} // end constructor
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Overrides from class Object
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return m_to_string;
|
||||||
|
|
||||||
|
} // end toString
|
||||||
|
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
return m_name.hashCode();
|
||||||
|
|
||||||
|
} // end hashCode
|
||||||
|
|
||||||
|
public boolean equals(Object other)
|
||||||
|
{
|
||||||
|
if (other==null)
|
||||||
|
return false;
|
||||||
|
if (other==this)
|
||||||
|
return true;
|
||||||
|
if (!(other instanceof CommunityHideMode))
|
||||||
|
return false;
|
||||||
|
return m_name.equals(((CommunityHideMode)other).m_name);
|
||||||
|
|
||||||
|
} // end equals
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Implementations from class Comparable
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public int compareTo(Object other)
|
||||||
|
{
|
||||||
|
if (other==null)
|
||||||
|
throw new NullPointerException();
|
||||||
|
if (!(other instanceof CommunityHideMode))
|
||||||
|
throw new ClassCastException();
|
||||||
|
return m_name.compareTo(((CommunityHideMode)other).m_name);
|
||||||
|
|
||||||
|
} // end compareTo
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* External operations
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public Class getEnumClass()
|
||||||
|
{
|
||||||
|
return CommunityHideMode.class;
|
||||||
|
|
||||||
|
} // end getEnumClass
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return m_name;
|
||||||
|
|
||||||
|
} // end getName
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* External static operations
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static CommunityHideMode getEnum(String name)
|
||||||
|
{
|
||||||
|
if (s_name_to_enum==null)
|
||||||
|
return null;
|
||||||
|
return (CommunityHideMode)(s_name_to_enum.get(name));
|
||||||
|
|
||||||
|
} // end getEnum
|
||||||
|
|
||||||
|
public static Map getEnumMap()
|
||||||
|
{
|
||||||
|
if (s_name_to_enum==null)
|
||||||
|
return Collections.EMPTY_MAP;
|
||||||
|
else
|
||||||
|
return Collections.unmodifiableMap(s_name_to_enum);
|
||||||
|
|
||||||
|
} // end getEnumMap
|
||||||
|
|
||||||
|
public static List getEnumList()
|
||||||
|
{
|
||||||
|
if (s_order_list==null)
|
||||||
|
return Collections.EMPTY_LIST;
|
||||||
|
else
|
||||||
|
return Collections.unmodifiableList(s_order_list);
|
||||||
|
|
||||||
|
} // end getEnumList
|
||||||
|
|
||||||
|
public static Iterator iterator()
|
||||||
|
{
|
||||||
|
return getEnumList().iterator();
|
||||||
|
|
||||||
|
} // end iterator
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Enumerated type values
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static final CommunityHideMode NONE = new CommunityHideMode("NONE");
|
||||||
|
public static final CommunityHideMode DIRECTORY = new CommunityHideMode("DIRECTORY");
|
||||||
|
public static final CommunityHideMode BOTH = new CommunityHideMode("BOTH");
|
||||||
|
|
||||||
|
} // end class CommunityHideMode
|
|
@ -85,7 +85,7 @@ public interface UserContext extends SearchMode
|
||||||
public int getSearchCategoryCount(int mode, String term) throws DataException;
|
public int getSearchCategoryCount(int mode, String term) throws DataException;
|
||||||
|
|
||||||
public CommunityContext createCommunity(String name, String alias, String language, String synopsis,
|
public CommunityContext createCommunity(String name, String alias, String language, String synopsis,
|
||||||
String rules, String joinkey, int hide_mode)
|
String rules, String joinkey, CommunityHideMode hide_mode)
|
||||||
throws DataException, AccessError;
|
throws DataException, AccessError;
|
||||||
|
|
||||||
public boolean canCreateCommunity();
|
public boolean canCreateCommunity();
|
||||||
|
|
|
@ -655,29 +655,28 @@ class CommunityUserContextImpl implements CommunityContext, CommunityBackend
|
||||||
|
|
||||||
} // end setRules
|
} // end setRules
|
||||||
|
|
||||||
public int getHideMode()
|
public CommunityHideMode getHideMode()
|
||||||
{
|
{
|
||||||
CommunityData d = getDataNE();
|
CommunityData d = getDataNE();
|
||||||
|
CommunityHideMode rc = null;
|
||||||
if (d==null)
|
if (d==null)
|
||||||
return HIDE_NONE;
|
rc = CommunityHideMode.NONE;
|
||||||
if (d.getHideSearch())
|
else if (d.getHideSearch())
|
||||||
return HIDE_BOTH;
|
rc = CommunityHideMode.BOTH;
|
||||||
else if (d.getHideDirectory())
|
else if (d.getHideDirectory())
|
||||||
return HIDE_DIRECTORY;
|
rc = CommunityHideMode.DIRECTORY;
|
||||||
else
|
else
|
||||||
return HIDE_NONE;
|
rc = CommunityHideMode.NONE;
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
logger.debug("getHideMode() => " + rc);
|
||||||
|
return rc;
|
||||||
|
|
||||||
} // end getHideMode
|
} // end getHideMode
|
||||||
|
|
||||||
public void setHideMode(int mode) throws DataException, AccessError
|
public void setHideMode(CommunityHideMode mode) throws DataException, AccessError
|
||||||
{
|
{
|
||||||
if ((mode!=HIDE_NONE) && (mode!=HIDE_DIRECTORY) && (mode!=HIDE_BOTH))
|
if (logger.isDebugEnabled())
|
||||||
{ // the mode is not valid
|
logger.debug("setHideMode(" + mode + ") entry");
|
||||||
logger.error("mode value " + mode + " is not valid");
|
|
||||||
throw new IllegalArgumentException("invalid hide mode value");
|
|
||||||
|
|
||||||
} // end if
|
|
||||||
|
|
||||||
getData().testMembership(level,is_member);
|
getData().testMembership(level,is_member);
|
||||||
if (!(getData().canModifyCommunityProfile(level)))
|
if (!(getData().canModifyCommunityProfile(level)))
|
||||||
{ // this user can't modify the community feature set
|
{ // this user can't modify the community feature set
|
||||||
|
@ -693,8 +692,8 @@ class CommunityUserContextImpl implements CommunityContext, CommunityBackend
|
||||||
|
|
||||||
} // end if
|
} // end if
|
||||||
|
|
||||||
boolean hide_dir = (mode!=HIDE_NONE);
|
boolean hide_dir = (CommunityHideMode.NONE.equals(mode) ? false : true);
|
||||||
boolean hide_search = (mode==HIDE_BOTH);
|
boolean hide_search = CommunityHideMode.BOTH.equals(mode);
|
||||||
getData().setHideFlags(env,hide_dir,hide_search);
|
getData().setHideFlags(env,hide_dir,hide_search);
|
||||||
|
|
||||||
} // end setHideMode
|
} // end setHideMode
|
||||||
|
|
|
@ -987,14 +987,14 @@ class UserContextImpl implements UserContext, ServiceProvider, PropertyProvider
|
||||||
} // end getSearchCategoryCount
|
} // end getSearchCategoryCount
|
||||||
|
|
||||||
public CommunityContext createCommunity(String name, String alias, String language, String synopsis,
|
public CommunityContext createCommunity(String name, String alias, String language, String synopsis,
|
||||||
String rules, String joinkey, int hide_mode)
|
String rules, String joinkey, CommunityHideMode hide_mode)
|
||||||
throws DataException, AccessError
|
throws DataException, AccessError
|
||||||
{
|
{
|
||||||
env.testPermission(EnvUser.PERM_CREATECOMMUNITY,"You are not authorized to create new communities.");
|
env.testPermission(EnvUser.PERM_CREATECOMMUNITY,"You are not authorized to create new communities.");
|
||||||
|
|
||||||
// Convert the "hide mode" value into the two hide flags.
|
// Convert the "hide mode" value into the two hide flags.
|
||||||
boolean hide_dir = (hide_mode!=CommunityContext.HIDE_NONE);
|
boolean hide_dir = (CommunityHideMode.NONE.equals(hide_mode) ? false : true);
|
||||||
boolean hide_search = (hide_mode==CommunityContext.HIDE_BOTH);
|
boolean hide_search = CommunityHideMode.BOTH.equals(hide_mode);
|
||||||
|
|
||||||
// Create the new community's database entries and internal data.
|
// Create the new community's database entries and internal data.
|
||||||
CommunityData new_comm = CommunityCoreData.createCommunity(globalsite,env,name,alias,uid,language,
|
CommunityData new_comm = CommunityCoreData.createCommunity(globalsite,env,name,alias,uid,language,
|
||||||
|
|
|
@ -37,10 +37,10 @@ public class DialogElementLoader
|
||||||
|
|
||||||
private static final Class[] init_classes = {
|
private static final Class[] init_classes = {
|
||||||
CategoryHeader.class, CheckBoxField.class, CommunityLogoField.class, CountryListField.class,
|
CategoryHeader.class, CheckBoxField.class, CommunityLogoField.class, CountryListField.class,
|
||||||
DateField.class, EMailAddressField.class, HiddenField.class, ImageButton.class, IntegerField.class,
|
DateField.class, EMailAddressField.class, EnumPickListField.class, HiddenField.class,
|
||||||
IPAddressField.class, LanguageListField.class, LocaleListField.class, PasswordField.class,
|
ImageButton.class, IntegerField.class, IPAddressField.class, LanguageListField.class,
|
||||||
RoleListField.class, StaticPickListField.class, TextField.class, TimeZoneListField.class,
|
LocaleListField.class, PasswordField.class, RoleListField.class, StaticPickListField.class,
|
||||||
UserPhotoField.class, VeniceIDField.class
|
TextField.class, TimeZoneListField.class, UserPhotoField.class, VeniceIDField.class
|
||||||
};
|
};
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------
|
||||||
|
|
363
src/com/silverwrist/venice/ui/dlg/EnumPickListField.java
Normal file
363
src/com/silverwrist/venice/ui/dlg/EnumPickListField.java
Normal file
|
@ -0,0 +1,363 @@
|
||||||
|
/*
|
||||||
|
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||||
|
* (the "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||||
|
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing rights and limitations under the License.
|
||||||
|
*
|
||||||
|
* The Original Code is the Venice Web Communities System.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
|
||||||
|
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||||
|
* Copyright (C) 2004 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
*/
|
||||||
|
package com.silverwrist.venice.ui.dlg;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.*;
|
||||||
|
import java.util.*;
|
||||||
|
import org.w3c.dom.*;
|
||||||
|
import com.silverwrist.util.*;
|
||||||
|
import com.silverwrist.venice.except.*;
|
||||||
|
import com.silverwrist.venice.ui.*;
|
||||||
|
import com.silverwrist.venice.util.XMLLoader;
|
||||||
|
|
||||||
|
public class EnumPickListField extends PickListField
|
||||||
|
{
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Internal class for translating between strings and enums
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
static class EnumExtractor
|
||||||
|
{
|
||||||
|
/*====================================================================
|
||||||
|
* Attributes
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
private Class m_klass;
|
||||||
|
private Method m_getname;
|
||||||
|
private Map m_valmap;
|
||||||
|
private List m_list;
|
||||||
|
|
||||||
|
/*====================================================================
|
||||||
|
* Constructor
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
EnumExtractor(String klassname)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ // load the class
|
||||||
|
m_klass = Class.forName(klassname);
|
||||||
|
|
||||||
|
// get the "getName" method
|
||||||
|
m_getname = m_klass.getMethod("getName",NO_PARAMS);
|
||||||
|
|
||||||
|
// get the "getEnumMap" method and call it to get the value map
|
||||||
|
Method m = m_klass.getMethod("getEnumMap",NO_PARAMS);
|
||||||
|
m_valmap = (Map)(m.invoke(null,NO_ARGS));
|
||||||
|
|
||||||
|
// get the "getEnumList" method and call it to get the value list
|
||||||
|
m = m_klass.getMethod("getEnumList",NO_PARAMS);
|
||||||
|
m_list = (List)(m.invoke(null,NO_ARGS));
|
||||||
|
|
||||||
|
} // end try
|
||||||
|
catch (ClassNotFoundException e)
|
||||||
|
{ // bounce me
|
||||||
|
throw new VeniceRuntimeException("class not found: " + klassname,e);
|
||||||
|
|
||||||
|
} // end catch
|
||||||
|
catch (NoSuchMethodException e)
|
||||||
|
{ // bounce me
|
||||||
|
throw new VeniceRuntimeException("method failure",e);
|
||||||
|
|
||||||
|
} // end catch
|
||||||
|
catch (IllegalAccessException e)
|
||||||
|
{ // bounce me
|
||||||
|
throw new VeniceRuntimeException("illegal access",e);
|
||||||
|
|
||||||
|
} // end catch
|
||||||
|
catch (IllegalArgumentException e)
|
||||||
|
{ // bounce me
|
||||||
|
throw new VeniceRuntimeException("illegal argument",e);
|
||||||
|
|
||||||
|
} // end catch
|
||||||
|
catch (InvocationTargetException e)
|
||||||
|
{ // an exception got thrown
|
||||||
|
throw new VeniceRuntimeException("target threw something",e);
|
||||||
|
|
||||||
|
} // end catch
|
||||||
|
|
||||||
|
} // end constructor
|
||||||
|
|
||||||
|
/*====================================================================
|
||||||
|
* External operations
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
final boolean isInstance(Object o)
|
||||||
|
{
|
||||||
|
return m_klass.isInstance(o);
|
||||||
|
|
||||||
|
} // end isInstance
|
||||||
|
|
||||||
|
final String getNameFromEnum(Object enum)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{ // invoke the method to return the name
|
||||||
|
return (String)(m_getname.invoke(enum,NO_ARGS));
|
||||||
|
|
||||||
|
} // end try
|
||||||
|
catch (IllegalAccessException e)
|
||||||
|
{ // bounce me
|
||||||
|
throw new VeniceRuntimeException("illegal access",e);
|
||||||
|
|
||||||
|
} // end catch
|
||||||
|
catch (IllegalArgumentException e)
|
||||||
|
{ // bounce me
|
||||||
|
throw new VeniceRuntimeException("illegal argument",e);
|
||||||
|
|
||||||
|
} // end catch
|
||||||
|
catch (InvocationTargetException e)
|
||||||
|
{ // an exception got thrown
|
||||||
|
throw new VeniceRuntimeException("target threw something",e);
|
||||||
|
|
||||||
|
} // end catch
|
||||||
|
|
||||||
|
} // end getNameFromEnum
|
||||||
|
|
||||||
|
final Object getEnumFromName(String name)
|
||||||
|
{
|
||||||
|
return m_valmap.get(name);
|
||||||
|
|
||||||
|
} // end getEnumFromName
|
||||||
|
|
||||||
|
} // end class EnumExtractor
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Internal class holding choices
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
static class PickListChoice
|
||||||
|
{
|
||||||
|
/*====================================================================
|
||||||
|
* Attributes
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
private String m_name;
|
||||||
|
private String m_value;
|
||||||
|
|
||||||
|
/*====================================================================
|
||||||
|
* Constructor
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
PickListChoice(String name, String value)
|
||||||
|
{
|
||||||
|
m_name = name;
|
||||||
|
m_value = value;
|
||||||
|
|
||||||
|
} // end constructor
|
||||||
|
|
||||||
|
/*====================================================================
|
||||||
|
* External operations
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
final String getName()
|
||||||
|
{
|
||||||
|
return m_name;
|
||||||
|
|
||||||
|
} // end getName
|
||||||
|
|
||||||
|
final String getValue()
|
||||||
|
{
|
||||||
|
return m_value;
|
||||||
|
|
||||||
|
} // end getValue
|
||||||
|
|
||||||
|
} // end class PickListChoice
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Static data members
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static final String TAGNAME = "enumlist";
|
||||||
|
|
||||||
|
private static final Class[] NO_PARAMS = new Class[0];
|
||||||
|
private static final Object[] NO_ARGS = new Object[0];
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Attributes
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
private EnumExtractor m_extractor;
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Constructors
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public EnumPickListField(String name, String caption, String caption2, boolean required, String classname,
|
||||||
|
String clist)
|
||||||
|
{
|
||||||
|
super(name,caption,caption2,required,Collections.EMPTY_LIST);
|
||||||
|
setChoicesList(createChoiceListFromString(classname,clist));
|
||||||
|
|
||||||
|
} // end constructor
|
||||||
|
|
||||||
|
public EnumPickListField(Element elt) throws ConfigException
|
||||||
|
{
|
||||||
|
super(elt,Collections.EMPTY_LIST);
|
||||||
|
setChoicesList(createChoiceListFromXML(elt));
|
||||||
|
|
||||||
|
} // end constructor
|
||||||
|
|
||||||
|
protected EnumPickListField(EnumPickListField other)
|
||||||
|
{
|
||||||
|
super(other);
|
||||||
|
m_extractor = other.m_extractor;
|
||||||
|
|
||||||
|
} // end constructor
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Internal operations
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
private final List createChoiceListFromString(String classname, String s)
|
||||||
|
{
|
||||||
|
m_extractor = new EnumExtractor(classname);
|
||||||
|
char separator = s.charAt(0);
|
||||||
|
String work = s.substring(1);
|
||||||
|
ArrayList tmp = new ArrayList();
|
||||||
|
while (work!=null)
|
||||||
|
{ // split up the "choice list" string into name/value pairs
|
||||||
|
int p = work.indexOf(separator);
|
||||||
|
if (p<0)
|
||||||
|
break;
|
||||||
|
String n1 = work.substring(0,p);
|
||||||
|
work = work.substring(p+1);
|
||||||
|
p = work.indexOf(separator);
|
||||||
|
String v1;
|
||||||
|
if (p<0)
|
||||||
|
{ // take the rest of the string
|
||||||
|
v1 = work;
|
||||||
|
work = null;
|
||||||
|
|
||||||
|
} // end if
|
||||||
|
else
|
||||||
|
{ // chop the string off the end
|
||||||
|
v1 = work.substring(0,p);
|
||||||
|
work = work.substring(p+1);
|
||||||
|
if (work.length()==0)
|
||||||
|
work = null;
|
||||||
|
|
||||||
|
} // end else
|
||||||
|
|
||||||
|
if (m_extractor.getEnumFromName(n1)!=null)
|
||||||
|
tmp.add(new PickListChoice(n1,v1));
|
||||||
|
|
||||||
|
} // end while
|
||||||
|
|
||||||
|
tmp.trimToSize();
|
||||||
|
if (tmp.isEmpty())
|
||||||
|
return Collections.EMPTY_LIST;
|
||||||
|
else
|
||||||
|
return Collections.unmodifiableList(tmp);
|
||||||
|
|
||||||
|
} // end createChoiceListFromString
|
||||||
|
|
||||||
|
private final List createChoiceListFromXML(Element elt) throws ConfigException
|
||||||
|
{
|
||||||
|
XMLLoader loader = XMLLoader.get();
|
||||||
|
m_extractor = new EnumExtractor(loader.configGetAttribute(elt,"enumClass"));
|
||||||
|
NodeList nl = elt.getChildNodes();
|
||||||
|
ArrayList tmp = new ArrayList();
|
||||||
|
for (int i=0; i<nl.getLength(); i++)
|
||||||
|
{ // look for associated elements
|
||||||
|
Node n = nl.item(i);
|
||||||
|
if (n.getNodeType()==Node.ELEMENT_NODE)
|
||||||
|
{ // make sure we have a <choice/> element here
|
||||||
|
loader.configVerifyNodeName(n,"choice",elt);
|
||||||
|
String n1 = loader.configGetAttribute((Element)n,"id");
|
||||||
|
String v1 = loader.configGetText((Element)n);
|
||||||
|
if (m_extractor.getEnumFromName(n1)!=null)
|
||||||
|
tmp.add(new PickListChoice(n1,v1));
|
||||||
|
|
||||||
|
} // end if
|
||||||
|
// else just ignore that
|
||||||
|
|
||||||
|
} // end for
|
||||||
|
|
||||||
|
tmp.trimToSize();
|
||||||
|
if (tmp.isEmpty())
|
||||||
|
return Collections.EMPTY_LIST;
|
||||||
|
else
|
||||||
|
return Collections.unmodifiableList(tmp);
|
||||||
|
|
||||||
|
} // end createChoiceListFromXML
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Overrides from class PickListField
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
protected String getChoiceName(Object o)
|
||||||
|
{
|
||||||
|
return ((PickListChoice)o).getName();
|
||||||
|
|
||||||
|
} // end getChoiceName
|
||||||
|
|
||||||
|
protected String getChoiceValue(Object o)
|
||||||
|
{
|
||||||
|
return ((PickListChoice)o).getValue();
|
||||||
|
|
||||||
|
} // end getChoiceValue
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Implementations from interface DialogField
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public Object getValue()
|
||||||
|
{
|
||||||
|
Object o = super.getValue();
|
||||||
|
if (o==null)
|
||||||
|
return null;
|
||||||
|
return m_extractor.getEnumFromName(o.toString());
|
||||||
|
|
||||||
|
} // end getValue
|
||||||
|
|
||||||
|
public void setValue(Object o)
|
||||||
|
{
|
||||||
|
if (o==null)
|
||||||
|
{ // null value
|
||||||
|
super.setValue(null);
|
||||||
|
return;
|
||||||
|
|
||||||
|
} // end if
|
||||||
|
|
||||||
|
if (!(m_extractor.isInstance(o)))
|
||||||
|
throw new IllegalArgumentException("not a valid enum instance");
|
||||||
|
super.setValue(m_extractor.getNameFromEnum(o));
|
||||||
|
|
||||||
|
} // end setValue
|
||||||
|
|
||||||
|
public DialogField duplicate()
|
||||||
|
{
|
||||||
|
return new EnumPickListField(this);
|
||||||
|
|
||||||
|
} // end duplicate
|
||||||
|
|
||||||
|
} // end class EnumPickListField
|
|
@ -19,6 +19,7 @@ package com.silverwrist.venice.ui.dlg;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import org.apache.log4j.*;
|
||||||
import org.w3c.dom.*;
|
import org.w3c.dom.*;
|
||||||
import com.silverwrist.util.*;
|
import com.silverwrist.util.*;
|
||||||
import com.silverwrist.venice.except.*;
|
import com.silverwrist.venice.except.*;
|
||||||
|
@ -26,12 +27,19 @@ import com.silverwrist.venice.ui.*;
|
||||||
|
|
||||||
public abstract class PickListField extends BaseDialogField
|
public abstract class PickListField extends BaseDialogField
|
||||||
{
|
{
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Static data members
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static Logger logger = Logger.getLogger(PickListField.class);
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------
|
||||||
* Attributes
|
* Attributes
|
||||||
*--------------------------------------------------------------------------------
|
*--------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private List choices;
|
private List m_choices;
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------
|
||||||
* Constructors
|
* Constructors
|
||||||
|
@ -41,21 +49,21 @@ public abstract class PickListField extends BaseDialogField
|
||||||
protected PickListField(String name, String caption, String caption2, boolean required, List choices)
|
protected PickListField(String name, String caption, String caption2, boolean required, List choices)
|
||||||
{
|
{
|
||||||
super(false,name,caption,caption2,required);
|
super(false,name,caption,caption2,required);
|
||||||
this.choices = choices;
|
m_choices = choices;
|
||||||
|
|
||||||
} // end constructor
|
} // end constructor
|
||||||
|
|
||||||
protected PickListField(Element elt, List choices) throws ConfigException
|
protected PickListField(Element elt, List choices) throws ConfigException
|
||||||
{
|
{
|
||||||
super(false,elt,true,true);
|
super(false,elt,true,true);
|
||||||
this.choices = choices;
|
m_choices = choices;
|
||||||
|
|
||||||
} // end constructor
|
} // end constructor
|
||||||
|
|
||||||
protected PickListField(PickListField other)
|
protected PickListField(PickListField other)
|
||||||
{
|
{
|
||||||
super(other);
|
super(other);
|
||||||
this.choices = other.choices;
|
m_choices = other.m_choices;
|
||||||
|
|
||||||
} // end constructor
|
} // end constructor
|
||||||
|
|
||||||
|
@ -79,18 +87,33 @@ public abstract class PickListField extends BaseDialogField
|
||||||
if (!isEnabled())
|
if (!isEnabled())
|
||||||
out.write(" disabled=\"disabled\"");
|
out.write(" disabled=\"disabled\"");
|
||||||
out.write(">\n");
|
out.write(">\n");
|
||||||
Iterator it = choices.iterator();
|
|
||||||
String val = getStringValue();
|
String val = getStringValue();
|
||||||
while (it.hasNext())
|
boolean not_selected = true;
|
||||||
|
for (Iterator it=m_choices.iterator(); it.hasNext(); )
|
||||||
{ // loop through the list and render the choices
|
{ // loop through the list and render the choices
|
||||||
Object ch = it.next();
|
Object ch = it.next();
|
||||||
String ch_name = getChoiceName(ch);
|
String ch_name = getChoiceName(ch);
|
||||||
out.write("<option value=\"" + ch_name + "\"");
|
out.write("<option value=\"" + ch_name + "\"");
|
||||||
if (ch_name.equals(val))
|
if (ch_name.equals(val))
|
||||||
|
{ // found the selected element
|
||||||
out.write(" selected=\"selected\"");
|
out.write(" selected=\"selected\"");
|
||||||
|
not_selected = false;
|
||||||
|
|
||||||
|
} // end if
|
||||||
|
|
||||||
out.write(">" + StringUtil.encodeHTML(getChoiceValue(ch)) + "</option>\n");
|
out.write(">" + StringUtil.encodeHTML(getChoiceValue(ch)) + "</option>\n");
|
||||||
|
|
||||||
} // end while
|
} // end for
|
||||||
|
|
||||||
|
if (not_selected && isEnabled())
|
||||||
|
{ // aw, shit! there's no selected item!
|
||||||
|
logger.warn("PickListField \"" + getName() + "\" did not find a match for selected value \"" + val + "\"");
|
||||||
|
ArrayList tmp = new ArrayList(m_choices.size());
|
||||||
|
for (Iterator it=m_choices.iterator(); it.hasNext(); )
|
||||||
|
tmp.add(getChoiceName(it.next()));
|
||||||
|
logger.warn("Possible choices were: " + tmp);
|
||||||
|
|
||||||
|
} // end if
|
||||||
|
|
||||||
out.write("</select>\n"); // all done
|
out.write("</select>\n"); // all done
|
||||||
|
|
||||||
|
@ -103,13 +126,13 @@ public abstract class PickListField extends BaseDialogField
|
||||||
|
|
||||||
public List getChoicesList()
|
public List getChoicesList()
|
||||||
{
|
{
|
||||||
return choices;
|
return m_choices;
|
||||||
|
|
||||||
} // end getChoicesList
|
} // end getChoicesList
|
||||||
|
|
||||||
public void setChoicesList(List list)
|
public void setChoicesList(List list)
|
||||||
{
|
{
|
||||||
this.choices = list;
|
m_choices = list;
|
||||||
|
|
||||||
} // end setChoicesList
|
} // end setChoicesList
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
*
|
*
|
||||||
* The Original Code is the Venice Web Communities System.
|
* The Original Code is the Venice Web Communities System.
|
||||||
*
|
*
|
||||||
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@ricochet.com>,
|
||||||
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||||
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
* Copyright (C) 2001-2004 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Contributor(s):
|
* Contributor(s):
|
||||||
*/
|
*/
|
||||||
|
@ -34,25 +34,40 @@ public class StaticPickListField extends PickListField
|
||||||
|
|
||||||
static class PickListChoice
|
static class PickListChoice
|
||||||
{
|
{
|
||||||
private String name;
|
/*====================================================================
|
||||||
private String value;
|
* Attributes
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
private String m_name;
|
||||||
|
private String m_value;
|
||||||
|
|
||||||
|
/*====================================================================
|
||||||
|
* Constructor
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
PickListChoice(String name, String value)
|
PickListChoice(String name, String value)
|
||||||
{
|
{
|
||||||
this.name = name;
|
m_name = name;
|
||||||
this.value = value;
|
m_value = value;
|
||||||
|
|
||||||
} // end constructor
|
} // end constructor
|
||||||
|
|
||||||
|
/*====================================================================
|
||||||
|
* External operations
|
||||||
|
*====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
final String getName()
|
final String getName()
|
||||||
{
|
{
|
||||||
return name;
|
return m_name;
|
||||||
|
|
||||||
} // end getName
|
} // end getName
|
||||||
|
|
||||||
final String getValue()
|
final String getValue()
|
||||||
{
|
{
|
||||||
return value;
|
return m_value;
|
||||||
|
|
||||||
} // end getValue
|
} // end getValue
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user