public class RecentPostsComponent extends OrchidComponent { public PostsModel postsModel; @Option public String category; @Option public int limit; @Inject public RecentPostsComponent(OrchidContext context, PostsModel postsModel) { super(context, "recentPosts", 25); this.postsModel = postsModel; } public List<PostPage> getRecentPosts() { if(!EdenUtils.isEmpty(category)) { return postsModel.getRecentPosts(category, limit); } else { return postsModel.getRecentPosts(null, limit); } } }
public final class IndexMenuItem extends OrchidMenuItem { @Option public String title; @Option public String index; @Inject public IndexMenuItem(OrchidContext context) { super(context, "index", 100); } @Override public List<OrchidMenuItemImpl> getMenuItems() { List<OrchidMenuItemImpl> menuItems = new ArrayList<>(); if (!EdenUtils.isEmpty(title) && !EdenUtils.isEmpty(index)) { OrchidIndex foundIndex = context.getIndex().findIndex(index); menuItems.add(new OrchidMenuItemImpl(context, title, foundIndex)); } return menuItems; } }
public final class DividerMenuItem extends OrchidMenuItem { @Option public String title; @Inject public DividerMenuItem(OrchidContext context) { super(context, "separator", 100); } @Override public List<OrchidMenuItemImpl> getMenuItems() { List<OrchidMenuItemImpl> menuItems = new ArrayList<>(); if(!EdenUtils.isEmpty(title)) { menuItems.add(new OrchidMenuItemImpl(context, title)); } else { menuItems.add(new OrchidMenuItemImpl(context)); } return menuItems; } }
public class PageMenuType extends OrchidMenuItem { @Option("page") public String pageName; @Inject public PageMenuType(OrchidContext context) { super(context, "page", 100); } @Override public List<OrchidMenuItemImpl> getMenuItems() { List<OrchidMenuItemImpl> menuItems = new ArrayList<>(); List<OrchidPage> pages = context.getInternalIndex().getGeneratorPages("pages"); if(!EdenUtils.isEmpty(pageName)) { for (OrchidPage page : pages) { if(page.getTitle().equals(pageName)) { menuItems.add(new OrchidMenuItemImpl(context, page)); } } } return menuItems; } }
public abstract class Theme extends AbstractTheme { @Getter @Setter @Option protected OrchidMenu menu; @Inject public Theme(OrchidContext context, String key, int priority) { super(context, key, priority); } }
public final class TemplateComponent extends OrchidComponent { @Getter @Setter @Option public JSONObject data; @Inject public TemplateComponent(OrchidContext context) { super(context, "template", 100); } }
public class PostsPaginator implements OptionsHolder { @Option @IntDefault(100) public int pageSize; }
public static class MaterializeShades implements OptionsHolder { @Option @StringDefault("lighten-2") public String primary; @Option @StringDefault("lighten-1") public String secondary; @Option @StringDefault("base") public String success; @Option @StringDefault("base") public String error; @Option @StringDefault("darken-1") public String link; }
public static class MaterializeColors implements OptionsHolder { @Option @StringDefault("cyan") public String primary; @Option @StringDefault("orange") public String secondary; @Option @StringDefault("green") public String success; @Option @StringDefault("red") public String error; @Option @StringDefault("light-blue") public String link; }
@Getter protected final AssetHolder assetHolder; @Option @Description("Specify a list of templates to use when rendering this component. The first template that exists " + "will be chosen for this component.") protected String[] templates; @Option @Description("By default, components are rendered in the order in which they are declared, but the ordering can " + "be changed by setting the order on any individual component. A higher value for order will render that " + protected int order; @Getter @Setter @Option protected String[] extraCss; @Getter @Setter @Option protected String[] extraJs;