All pastes #945473 Raw Edit

Anonymous

public java v1 · immutable
·published 2008-03-16 23:13 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.IModel;import org.apache.wicket.model.LoadableDetachableModel;import org.apache.wicket.model.PropertyModel;import com.ibg.codepress.CodePressEnabler;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.model.ModelBuffer;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);				final ModelBuffer adapter = new ModelBuffer(new LoadableDetachableModel() {			@Override			protected Object load() {				return TileContainerNode.forNode(getNode());			}		}); 						form.add(new TextField("title", adapter.forProperty("title"))); 						form.add(new TextField("template", adapter.forProperty("templatePath")).add(new NodePathValidator(nodeModel)));		form.add(new CheckBox("requiresSSL", adapter.forProperty("requiresSSL")));		TextArea content = new TextArea("content", adapter.forProperty("dataAsString"));		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();				adapter.apply();				node.save();				node.checkin();			}		});	}	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;		}	}}