All pastes #945452 Raw Edit

Someone

public java v1 · immutable
·published 2008-03-16 22:58 UTC
rendered paste body
/** *  */package com.ibg.dexter.plugin.node.tilepage.admin;import org.apache.wicket.Component;import org.apache.wicket.markup.html.form.Button;import org.apache.wicket.markup.html.form.CheckBox;import org.apache.wicket.markup.html.form.Form;import org.apache.wicket.markup.html.form.TextArea;import org.apache.wicket.markup.html.form.TextField;import org.apache.wicket.model.PropertyModel;import com.ibg.codepress.CodePressEnabler;import com.ibg.dexter.Path;import com.ibg.dexter.jcr.api.JcrNode;import com.ibg.dexter.jcr.model.NodeModel;import com.ibg.dexter.plugin.node.tilepage.TileContainerNode;import com.ibg.dexter.web.ContainerFeedbackPanel;import com.ibg.dexter.web.admin.NodeManagerPanel;import com.ibg.dexter.web.util.validators.NodePathValidator;import com.ibg.tinymce.TinyMceEnabler;class PropertiesPanel extends NodeManagerPanel {	private boolean codeEditorEnabled = true;	private boolean wysiwygEditorEnabled = false;	public PropertiesPanel(String id, final NodeModel nodeModel) {		super(id, nodeModel);		Form form = new Form("form");		add(form);				TileContainerNode tileContainer = getTileContainer();				this.requiresSSL = tileContainer.isRequiresSSL();		this.title = tileContainer.getTitle();		this.template = getTileTemplateFromContainer(tileContainer);		this.content = tileContainer.getDataAsString();				form.add(new TextField("title", new PropertyModel(this, "title")));		form.add(new TextField("template", new PropertyModel(this, "template")).add(new NodePathValidator(nodeModel)));		form.add(new CheckBox("requiresSSL", new PropertyModel(this, "requiresSSL")));		TextArea content = new TextArea("content", new PropertyModel(this, "content"));		form.add(content);		content.add(new CodePressEnabler("html", true) {			@Override			public boolean isEnabled(Component component) {				return codeEditorEnabled;			}		});		content.add(new TinyMceEnabler() {			@Override			public boolean isEnabled(Component component) {				return wysiwygEditorEnabled;			}		});		form.add(new ContainerFeedbackPanel("feedback", this));		form.add(new DisableEditorsButton("disable-editors"));		form.add(new EnableCodeEditorButton("enable-code-editor"));		form.add(new EnableWysiwygEditorButton("enable-wysiwig-editor"));				form.add(new Button("save") {			@Override			public void onSubmit() {				JcrNode node = nodeModel.getObject();				node.checkout();				TileContainerNode tileContainer = getTileContainer();				tileContainer.setRequiresSSL(requiresSSL);				tileContainer.setTitle(title != null ? title : "");				tileContainer.setData(PropertiesPanel.this.content != null ? PropertiesPanel.this.content : "");				setTileTemplateToContainer(template, tileContainer);				node.save();				node.checkin();			}		});	}	private TileContainerNode getTileContainer() {		return TileContainerNode.forNode(getNode());	}	private boolean requiresSSL;	private String title;	private String template;		private String getTileTemplateFromContainer(TileContainerNode container) {		JcrNode node = container.getTemplate();		return node != null ? node.getPath() : null;	}		private void setTileTemplateToContainer(String template, TileContainerNode container) {		if (template == null) {			container.setTemplate(null);		} else {			Path p = new Path((String)template);			if (p.isAbsolute() == false) {				p = new Path(container.getNode().getPath()).parent().append(p);			}			JcrNode node = (JcrNode) container.getNode().getSession().getItem(p.toString());			container.setTemplate(node);		}	}		private String content;		private class EnableCodeEditorButton extends Button {		public EnableCodeEditorButton(String id) {			super(id);			setDefaultFormProcessing(false);		}		@Override		public void onSubmit() {			codeEditorEnabled = true;			wysiwygEditorEnabled = false;		}		@Override		public boolean isEnabled() {			return codeEditorEnabled == false;		}	}	private class EnableWysiwygEditorButton extends Button {		public EnableWysiwygEditorButton(String id) {			super(id);			setDefaultFormProcessing(false);		}		@Override		public void onSubmit() {			codeEditorEnabled = false;			wysiwygEditorEnabled = true;		}		@Override		public boolean isEnabled() {			return wysiwygEditorEnabled == false;		}	}	private class DisableEditorsButton extends Button {		public DisableEditorsButton(String id) {			super(id);			setDefaultFormProcessing(false);		}		@Override		public void onSubmit() {			codeEditorEnabled = false;			wysiwygEditorEnabled = false;		}		@Override		public boolean isEnabled() {			return wysiwygEditorEnabled == true || codeEditorEnabled == true;		}	}}