@Name("spanTitle") public class SpanTitle { @Unwrap public String unwrap() { return "A Span title"; } }
public static String searchComponentName(Class<?> clazz) { while ( clazz!=null && !Object.class.equals(clazz) ) { Name name = clazz.getAnnotation(Name.class); if ( name!=null ) return name.value(); clazz = clazz.getSuperclass(); } return null; }
@Name("ageList") public class AgeList { @Factory("ages") public int[] getAges() { int[] ages = {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}; return ages; } }
@Name("notificationLabelMaker") public class NotificationLabelMaker implements Serializable { protected static final String LABEL_PREFIX = "label.subscriptions."; private static final long serialVersionUID = -276190387627136677L; public String getLabel(String notificationName) { String notificationNameId = notificationName.replace(" ", ""); return LABEL_PREFIX + notificationNameId; } }
@Name("factories") public class Factories { @Factory("honorifics") public Honorific[] getHonorifics() { return Honorific.values(); } @Factory("roles") public Role[] getRoles() { return Role.values(); } }
/** * An example of a Seam component used to do jBPM * assignments. (This is silly, for such a simple * case, we would not need a component.) * * @author Gavin King */ @Name("shipperAssignment") public class ShipperAssignment { public String[] getPooledActors() { return new String[] { "shippers", "admins" }; } }
@Name("todoList") public class TodoList { private String description; public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @CreateProcess(definition="todo") public void createTodo() {} @StartTask @EndTask public void done() {} }
@Name("animals") public class AnimalList { private List<Animal> animals; @Unwrap public List<Animal> unwrap() { if (animals == null) { animals = new ArrayList<Animal>(); animals.add(Animal.CAT); animals.add(Animal.DOG); animals.add(Animal.GOLDFISH); animals.add(Animal.PARROT); animals.add(Animal.RABBIT); animals.add(Animal.SNAKE); } return animals; } }
@Name("buttonLink") public class ButtonLinkBean { private String foo; public void simpleAction() { if (foo != null) { FacesMessages.instance().add("Foo = " + foo); } else { FacesMessages.instance().add("A simple action was performed"); } } public void setFoo(String foo) { this.foo = foo; } public String getFoo() { return foo; } }
@Name("fileUploadHolderCycle") @Scope(ScopeType.PAGE) public class UploadItemHolderCycleManager implements Serializable { private static final long serialVersionUID = 1L; @Destroy public void destroy() { Contexts.getConversationContext().remove("fileUploadHolder"); } }
@Name("oauthServerKeyActions") @Scope(ScopeType.EVENT) public class ServerKeyActionBean { public String getPublicCertificate() { OAuthServerKeyManager skm = Framework.getService(OAuthServerKeyManager.class); return skm.getPublicKeyCertificate(); } public String getKeyName() { OAuthServerKeyManager skm = Framework.getService(OAuthServerKeyManager.class); return skm.getKeyName(); } }
@Name("orderApproval") public class OrderApprovalDecision { private static BigDecimal CUTOFF = new BigDecimal(100); @In BigDecimal amount; public String getHowLargeIsOrder() { return (amount.compareTo(CUTOFF) >= 0) ? "large order" : "small order"; } }
/** * A component for direct rendering of * templates. Especially useful with * Seam Mail. * */ @Name("org.jboss.seam.faces.renderer") @Install(false) public abstract class Renderer { public abstract String render(String viewId); public static Renderer instance() { return (Renderer) Component.getInstance(Renderer.class); } }
@Name("oauthServiceProvidersActions") @Scope(ScopeType.CONVERSATION) public class OAuthServiceProvidersActionBean extends DirectoryBasedEditor { private static final long serialVersionUID = 1L; protected static final String DIRECTORY = OAuthServiceProviderRegistryImpl.DIRECTORY_NAME; protected static final String SCHEMA = NuxeoOAuthServiceProvider.SCHEMA; @Override protected String getDirectoryName() { return DIRECTORY; } @Override protected String getSchemaName() { return SCHEMA; } }
@Name("oauthConsumersActions") @Scope(ScopeType.CONVERSATION) public class OAuthConsumersActionBean extends DirectoryBasedEditor { private static final long serialVersionUID = 1L; protected static final String DIRECTORY = OAuthConsumerRegistryImpl.DIRECTORY_NAME; protected static final String SCHEMA = NuxeoOAuthConsumer.SCHEMA; @Override protected String getDirectoryName() { return DIRECTORY; } @Override protected String getSchemaName() { return SCHEMA; } }
@Name("login") public class Login { @In private Actor actor; private String user; public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String login() { actor.setId(user); return "/todo.jsp"; } }
@Name("oauthConsumersTokensActions") @Scope(ScopeType.CONVERSATION) public class OAuthConsumersTokensActionBean extends DirectoryBasedEditor { private static final long serialVersionUID = 1L; @Override protected Map<String, Serializable> getQueryFilter() { Map<String, Serializable> filter = new HashMap<String, Serializable>(); filter.put("clientToken", 0); return filter; } @Override protected String getDirectoryName() { return OAuthTokenStoreImpl.DIRECTORY_NAME; } @Override protected String getSchemaName() { return NuxeoOAuthToken.SCHEMA; } }
@Name("conversationTrashManager") @Scope(APPLICATION) public class ConversationTrashManager implements Serializable { private static final long serialVersionUID = 9876098763432L; private static final Log log = LogFactory.getLog(ConversationTrashManager.class); private static TrashManagementService trashService; public void initTrashManager() { log.debug("Initialize"); } public static boolean isTrashManagementEnabled() { return getService().isTrashManagementEnabled(); } protected static TrashManagementService getService() { if (trashService == null) { trashService = (TrashManagementService) Framework.getRuntime().getComponent(TrashManagementService.NAME); } return trashService; } }
@Name("org.jboss.seam.remoting.messaging.SubscriptionRegistry.userTokens") @Scope(ScopeType.SESSION) public class UserTokens implements Serializable { Set<String> tokens = Collections.synchronizedSet(new HashSet<String>()); public void add(String token) { tokens.add(token); } public boolean contains(String token) { return tokens.contains(token); } public void remove(String token) { tokens.remove(token); } @Destroy public void cleanUp() { SubscriptionRegistry.instance().cleanupTokens(tokens); } }
@Name("oauthProvidersTokensActions") @Scope(ScopeType.CONVERSATION) public class OAuthProvidersTokensActionBean extends DirectoryBasedEditor { private static final long serialVersionUID = 1L; @Override protected Map<String, Serializable> getQueryFilter() { Map<String, Serializable> filter = new HashMap<String, Serializable>(); filter.put("clientToken", 1); return filter; } @Override protected String getDirectoryName() { return OAuthTokenStoreImpl.DIRECTORY_NAME; } @Override protected String getSchemaName() { return NuxeoOAuthToken.SCHEMA; } }