Index: urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.css
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.css	(revision )
+++ urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.css	(revision )
@@ -0,0 +1,18 @@
+/**
+ * Copyright (C) 2011 - 2012 Hippo
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+select.dropdown-plugin{
+    width: 99%;
+}
Index: urlrewriter-plugin-repository/src/main/resources/namespace/types/rulecondition.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-repository/src/main/resources/namespace/types/rulecondition.xml	(revision 275)
+++ urlrewriter-plugin-repository/src/main/resources/namespace/types/rulecondition.xml	(revision )
@@ -79,7 +79,7 @@
           <sv:value>false</sv:value>
         </sv:property>
         <sv:property sv:name="hipposysedit:type" sv:type="String">
-          <sv:value>String</sv:value>
+          <sv:value>AjaxAwareString</sv:value>
         </sv:property>
       </sv:node>
       <sv:node sv:name="conditiontype">
@@ -102,7 +102,7 @@
           <sv:value>false</sv:value>
         </sv:property>
         <sv:property sv:name="hipposysedit:type" sv:type="String">
-          <sv:value>StaticDropdown</sv:value>
+          <sv:value>BroadcastingStaticDropdown</sv:value>
         </sv:property>
       </sv:node>
       <sv:node sv:name="conditionor">
Index: urlrewriter-plugin-repository/src/main/resources/namespace/ajaxawarestring.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-repository/src/main/resources/namespace/ajaxawarestring.xml	(revision )
+++ urlrewriter-plugin-repository/src/main/resources/namespace/ajaxawarestring.xml	(revision )
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright (C) 2011 - 2012 Hippo
+
+    Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<sv:node sv:name="AjaxAwareString" xmlns:sv="http://www.jcp.org/jcr/sv/1.0">
+  <sv:property sv:name="jcr:primaryType" sv:type="Name">
+    <sv:value>hipposysedit:templatetype</sv:value>
+  </sv:property>
+  <sv:property sv:multiple="true" sv:name="jcr:mixinTypes" sv:type="Name">
+    <sv:value>mix:referenceable</sv:value>
+    <sv:value>editor:editable</sv:value>
+    <sv:value>hippo:translated</sv:value>
+  </sv:property>
+  <sv:property sv:name="jcr:uuid" sv:type="String">
+    <sv:value>6eaee911-3996-41f4-b550-c1e56ddd18be</sv:value>
+  </sv:property>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>nl</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>Korte tekst</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>en</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>String</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="hipposysedit:nodetype">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:handle</sv:value>
+    </sv:property>
+    <sv:property sv:multiple="true" sv:name="jcr:mixinTypes" sv:type="Name">
+      <sv:value>hippo:hardhandle</sv:value>
+    </sv:property>
+    <sv:property sv:name="jcr:uuid" sv:type="String">
+      <sv:value>b4bed651-8c38-41d1-8157-ffecbfb0b0b0</sv:value>
+    </sv:property>
+    <sv:node sv:name="hipposysedit:nodetype">
+      <sv:property sv:name="jcr:primaryType" sv:type="Name">
+        <sv:value>hipposysedit:nodetype</sv:value>
+      </sv:property>
+      <sv:property sv:multiple="true" sv:name="jcr:mixinTypes" sv:type="Name">
+        <sv:value>hipposysedit:remodel</sv:value>
+      </sv:property>
+      <sv:property sv:name="hipposysedit:node" sv:type="Boolean">
+        <sv:value>false</sv:value>
+      </sv:property>
+      <sv:property sv:name="hipposysedit:uri" sv:type="String">
+        <sv:value>internal</sv:value>
+      </sv:property>
+    </sv:node>
+  </sv:node>
+  <sv:node sv:name="editor:templates">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>editor:templateset</sv:value>
+    </sv:property>
+    <sv:node sv:name="_default_">
+      <sv:property sv:name="jcr:primaryType" sv:type="Name">
+        <sv:value>frontend:plugincluster</sv:value>
+      </sv:property>
+      <sv:property sv:multiple="true" sv:name="frontend:properties" sv:type="String">
+        <sv:value>mode</sv:value>
+        <sv:value>size</sv:value>
+      </sv:property>
+      <sv:property sv:multiple="true" sv:name="frontend:references" sv:type="String">
+        <sv:value>wicket.model</sv:value>
+        <sv:value>engine</sv:value>
+        <sv:value>model.compareTo</sv:value>
+      </sv:property>
+      <sv:property sv:multiple="true" sv:name="frontend:services" sv:type="String">
+        <sv:value>wicket.id</sv:value>
+      </sv:property>
+      <sv:node sv:name="root">
+        <sv:property sv:name="jcr:primaryType" sv:type="Name">
+          <sv:value>frontend:plugin</sv:value>
+        </sv:property>
+        <sv:property sv:name="engine" sv:type="String">
+          <sv:value>${engine}</sv:value>
+        </sv:property>
+        <sv:property sv:name="mode" sv:type="String">
+          <sv:value>${mode}</sv:value>
+        </sv:property>
+        <sv:property sv:name="model.compareTo" sv:type="String">
+          <sv:value>${model.compareTo}</sv:value>
+        </sv:property>
+        <sv:property sv:name="plugin.class" sv:type="String">
+          <sv:value>org.hippoecm.frontend.editor.plugins.AjaxAwareValueTemplatePlugin</sv:value>
+        </sv:property>
+        <sv:property sv:name="size" sv:type="String">
+          <sv:value>${size}</sv:value>
+        </sv:property>
+        <sv:property sv:name="wicket.id" sv:type="String">
+          <sv:value>${wicket.id}</sv:value>
+        </sv:property>
+        <sv:property sv:name="wicket.model" sv:type="String">
+          <sv:value>${wicket.model}</sv:value>
+        </sv:property>
+      </sv:node>
+    </sv:node>
+  </sv:node>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>fr</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>Texte court</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>it</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>Breve testo</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>de</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>String</sv:value>
+    </sv:property>
+  </sv:node>
+</sv:node>
Index: urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.java	(revision )
+++ urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.java	(revision )
@@ -0,0 +1,108 @@
+/**
+ * Copyright (C) 2011 - 2012 Hippo
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onehippo.forge.selection.frontend.plugin;
+
+import java.util.List;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
+import org.apache.wicket.markup.html.CSSPackageResource;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.panel.Fragment;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.util.string.StringList;
+import org.hippoecm.frontend.model.IModelReference;
+import org.hippoecm.frontend.plugin.IPluginContext;
+import org.hippoecm.frontend.plugin.config.IPluginConfig;
+import org.hippoecm.frontend.plugins.standards.diff.TextDiffModel;
+import org.hippoecm.frontend.service.render.RenderPlugin;
+import org.onehippo.forge.AjaxUpdatesAware;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+//TODO This could be extending StaticDropdownPlugin
+public class BroadcastingStaticDropdownPlugin extends RenderPlugin<String> {
+
+    private static final long serialVersionUID = 1L;
+
+    static final Logger log = LoggerFactory.getLogger(BroadcastingStaticDropdownPlugin.class);
+
+    private List<String> options;
+
+    public BroadcastingStaticDropdownPlugin(IPluginContext context, IPluginConfig config) {
+        super(context, config);
+
+        add(CSSPackageResource.getHeaderContribution(BroadcastingStaticDropdownPlugin.class, "BroadcastingStaticDropdownPlugin.css"));
+
+        String mode = config.getString("mode", "view");
+        Fragment fragment = new Fragment("fragment", mode, this);
+        add(fragment);
+
+        if ("edit".equals(mode)) {
+            options = StringList.tokenize(config.getString("selectable.options", ""), ",").toList();
+            DropDownChoice<String> choice = new DropDownChoice<String>("select", getModel(), options);
+
+            choice.add(new OnChangeAjaxBehavior() {
+                private static final long serialVersionUID = 1L;
+
+                @Override
+                protected void onUpdate(final AjaxRequestTarget target) {
+                    //TODO Using the RenderPlugin here is not very safe. It would be better if org.hippoecm.frontend.plugin.impl.PluginFactory$LayoutPlugin was used instead, but it is private
+                    BroadcastingStaticDropdownPlugin.this.findParent(RenderPlugin.class).visitChildren(new IVisitor<Component>() {
+                        @Override
+                        public Object component(final Component component) {
+                            if (component instanceof AjaxUpdatesAware) {
+                                ((AjaxUpdatesAware) component).onAjaxUpdate(target, BroadcastingStaticDropdownPlugin.this);
+                            }
+                            return null;
+                        }
+                    });
+                }
+            });
+
+            fragment.add(choice);
+        } else {
+            Label label = null;
+            if ("compare".equals(mode)) {
+                if (config.containsKey("model.compareTo")) {
+                    IModelReference<String> baseRef = context.getService(config.getString("model.compareTo"),
+                            IModelReference.class);
+                    if (baseRef != null) {
+                        IModel<String> baseModel = baseRef.getModel();
+                        if (baseModel == null) {
+                            log.info("base model service provides null model");
+                            baseModel = new Model<String>(null);
+                        }
+                        label = (Label) new Label("selectLabel", new TextDiffModel(baseModel, getModel()))
+                                .setEscapeModelStrings(false);
+                    } else {
+                        log.warn("opened in compare mode, but no base model service is available");
+                    }
+                } else {
+                    log.warn("opened in compare mode, but no base model was configured");
+                }
+            }
+            if (label == null) {
+                label = new Label("selectLabel", getModel());
+            }
+            fragment.add(label);
+        }
+    }
+
+}
Index: urlrewriter-plugin-repository/src/main/resources/namespace/broadcastingstaticdropdown.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-repository/src/main/resources/namespace/broadcastingstaticdropdown.xml	(revision )
+++ urlrewriter-plugin-repository/src/main/resources/namespace/broadcastingstaticdropdown.xml	(revision )
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright (C) 2011 - 2012 Hippo
+
+    Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<sv:node sv:name="BroadcastingStaticDropdown" xmlns:sv="http://www.jcp.org/jcr/sv/1.0">
+  <sv:property sv:name="jcr:primaryType" sv:type="Name">
+    <sv:value>hipposysedit:templatetype</sv:value>
+  </sv:property>
+  <sv:property sv:multiple="true" sv:name="jcr:mixinTypes" sv:type="Name">
+    <sv:value>mix:referenceable</sv:value>
+    <sv:value>editor:editable</sv:value>
+    <sv:value>hippo:translated</sv:value>
+  </sv:property>
+  <sv:property sv:name="jcr:uuid" sv:type="String">
+    <sv:value>aff8c9b6-68fa-4211-8562-ade1ec3bf04d</sv:value>
+  </sv:property>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>nl</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>Statische Dropdown</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>en</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>Static Dropdown</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>fr</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>Liste déroulante statique</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>it</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>Dropdown Statica</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="hipposysedit:nodetype">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:handle</sv:value>
+    </sv:property>
+    <sv:node sv:name="hipposysedit:nodetype">
+      <sv:property sv:name="jcr:primaryType" sv:type="Name">
+        <sv:value>hipposysedit:nodetype</sv:value>
+      </sv:property>
+      <sv:property sv:multiple="true" sv:name="jcr:mixinTypes" sv:type="Name">
+        <sv:value>hipposysedit:remodel</sv:value>
+      </sv:property>
+      <sv:property sv:name="hipposysedit:node" sv:type="Boolean">
+        <sv:value>false</sv:value>
+      </sv:property>
+      <sv:property sv:name="hipposysedit:type" sv:type="String">
+        <sv:value>String</sv:value>
+      </sv:property>
+      <sv:property sv:name="hipposysedit:uri" sv:type="String">
+        <sv:value>internal</sv:value>
+      </sv:property>
+    </sv:node>
+  </sv:node>
+  <sv:node sv:name="editor:templates">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>editor:templateset</sv:value>
+    </sv:property>
+    <sv:node sv:name="_default_">
+      <sv:property sv:name="jcr:primaryType" sv:type="Name">
+        <sv:value>frontend:plugincluster</sv:value>
+      </sv:property>
+      <sv:property sv:multiple="true" sv:name="frontend:properties" sv:type="String">
+        <sv:value>mode</sv:value>
+        <sv:value>selectable.options</sv:value>
+      </sv:property>
+      <sv:property sv:multiple="true" sv:name="frontend:references" sv:type="String">
+        <sv:value>wicket.model</sv:value>
+        <sv:value>model.compareTo</sv:value>
+        <sv:value>engine</sv:value>
+      </sv:property>
+      <sv:property sv:multiple="true" sv:name="frontend:services" sv:type="String">
+        <sv:value>wicket.id</sv:value>
+      </sv:property>
+      <sv:node sv:name="root">
+        <sv:property sv:name="jcr:primaryType" sv:type="Name">
+          <sv:value>frontend:plugin</sv:value>
+        </sv:property>
+        <sv:property sv:name="engine" sv:type="String">
+          <sv:value>${engine}</sv:value>
+        </sv:property>
+        <sv:property sv:name="mode" sv:type="String">
+          <sv:value>${mode}</sv:value>
+        </sv:property>
+        <sv:property sv:name="model.compareTo" sv:type="String">
+          <sv:value>${model.compareTo}</sv:value>
+        </sv:property>
+        <sv:property sv:name="plugin.class" sv:type="String">
+          <sv:value>org.onehippo.forge.selection.frontend.plugin.BroadcastingStaticDropdownPlugin</sv:value>
+        </sv:property>
+        <sv:property sv:name="selectable.options" sv:type="String">
+          <sv:value>${selectable.options}</sv:value>
+        </sv:property>
+        <sv:property sv:name="wicket.id" sv:type="String">
+          <sv:value>${wicket.id}</sv:value>
+        </sv:property>
+        <sv:property sv:name="wicket.model" sv:type="String">
+          <sv:value>${wicket.model}</sv:value>
+        </sv:property>
+      </sv:node>
+    </sv:node>
+  </sv:node>
+  <sv:node sv:name="hippo:translation">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:translation</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:language" sv:type="String">
+      <sv:value>de</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:message" sv:type="String">
+      <sv:value>Statisches Dropdown</sv:value>
+    </sv:property>
+  </sv:node>
+</sv:node>
Index: urlrewriter-plugin-cms/src/main/java/org/hippoecm/frontend/editor/plugins/AjaxAwareValueTemplatePlugin.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-cms/src/main/java/org/hippoecm/frontend/editor/plugins/AjaxAwareValueTemplatePlugin.java	(revision )
+++ urlrewriter-plugin-cms/src/main/java/org/hippoecm/frontend/editor/plugins/AjaxAwareValueTemplatePlugin.java	(revision )
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2011 - 2012 Hippo
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.hippoecm.frontend.editor.plugins;
+
+import java.util.Arrays;
+
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.model.Model;
+import org.hippoecm.frontend.plugin.IPluginContext;
+import org.hippoecm.frontend.plugin.config.IPluginConfig;
+import org.hippoecm.frontend.service.render.RenderPlugin;
+import org.onehippo.forge.AjaxUpdatesAware;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AjaxAwareValueTemplatePlugin extends ValueTemplatePlugin implements AjaxUpdatesAware {
+
+    private static final long serialVersionUID = 1L;
+    static final Logger log = LoggerFactory.getLogger(AjaxAwareValueTemplatePlugin.class);
+
+    @Override
+    public void onAjaxUpdate(AjaxRequestTarget target, RenderPlugin invoker) {
+
+        Object conditionType = invoker.getModelObject();
+        if(conditionType instanceof String){
+            //TODO List could be configurable
+            String color = Arrays.asList( "header", "attribute", "cookie", "parameter", "session-attribute").contains(conditionType) ?
+                    "green" : "red";
+
+            //TODO Field should be disabled/enabled (and any inserted value cleared)
+            this.add(new AttributeModifier("style", true, new Model<String>("background-color:" + color)));
+        }
+        target.addComponent(this);
+    }
+
+    public AjaxAwareValueTemplatePlugin(IPluginContext context, IPluginConfig config) {
+        super(context, config);
+        this.setOutputMarkupId(true);
+    }
+}
Index: pom.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- pom.xml	(revision 276)
+++ pom.xml	(revision )
@@ -109,6 +109,12 @@
         <version>${jackrabbit.version}</version>
         <scope>provided</scope>
       </dependency>
+      <dependency>
+        <groupId>org.onehippo.cms7</groupId>
+        <artifactId>hippo-cms-editor-frontend</artifactId>
+        <version>${hippo.cms.version}</version>
+        <scope>provided</scope>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 
Index: urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/AjaxUpdatesAware.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/AjaxUpdatesAware.java	(revision )
+++ urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/AjaxUpdatesAware.java	(revision )
@@ -0,0 +1,28 @@
+/**
+ * Copyright (C) 2011 - 2012 Hippo
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onehippo.forge;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.hippoecm.frontend.service.render.RenderPlugin;
+
+/**
+ * @version $Id$
+ */
+public interface AjaxUpdatesAware {
+
+    public void onAjaxUpdate(AjaxRequestTarget target, RenderPlugin invoker);
+
+}
Index: urlrewriter-plugin-cms/pom.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-cms/pom.xml	(revision 276)
+++ urlrewriter-plugin-cms/pom.xml	(revision )
@@ -41,6 +41,10 @@
       <groupId>org.apache.jackrabbit</groupId>
       <artifactId>jackrabbit-jcr-commons</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.onehippo.cms7</groupId>
+      <artifactId>hippo-cms-editor-frontend</artifactId>
+    </dependency>
   </dependencies>
 
   <distributionManagement>
Index: urlrewriter-plugin-repository/src/main/resources/hippoecm-extension.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-repository/src/main/resources/hippoecm-extension.xml	(revision 281)
+++ urlrewriter-plugin-repository/src/main/resources/hippoecm-extension.xml	(revision )
@@ -81,6 +81,9 @@
     <sv:property sv:name="hippo:contentroot" sv:type="String">
       <sv:value>/hippo:namespaces/urlrewriter</sv:value>
     </sv:property>
+    <sv:property sv:name="hippo:reloadonstartup" sv:type="Boolean">
+      <sv:value>true</sv:value>
+    </sv:property>
   </sv:node>
   <sv:node sv:name="urlrewriter-namespace-advancedrule">
     <sv:property sv:name="jcr:primaryType" sv:type="Name">
@@ -298,6 +301,34 @@
     </sv:property>
     <sv:property sv:name="hippo:contentroot" sv:type="String">
       <sv:value>/content</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="urlrewriter-broadcasting-static-dropdown">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:initializeitem</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:sequence" sv:type="Double">
+      <sv:value>420080</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:contentresource" sv:type="String">
+      <sv:value>namespace/broadcastingstaticdropdown.xml</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:contentroot" sv:type="String">
+      <sv:value>/hippo:namespaces/system</sv:value>
+    </sv:property>
+  </sv:node>
+  <sv:node sv:name="urlrewriter-ajax-aware-string">
+    <sv:property sv:name="jcr:primaryType" sv:type="Name">
+      <sv:value>hippo:initializeitem</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:sequence" sv:type="Double">
+      <sv:value>420080</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:contentresource" sv:type="String">
+      <sv:value>namespace/ajaxawarestring.xml</sv:value>
+    </sv:property>
+    <sv:property sv:name="hippo:contentroot" sv:type="String">
+      <sv:value>/hippo:namespaces/system</sv:value>
     </sv:property>
   </sv:node>
 </sv:node>
Index: urlrewriter-plugin-cms/src/main/java/org/hippoecm/frontend/editor/plugins/AjaxAwareValueTemplatePlugin.html
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-cms/src/main/java/org/hippoecm/frontend/editor/plugins/AjaxAwareValueTemplatePlugin.html	(revision )
+++ urlrewriter-plugin-cms/src/main/java/org/hippoecm/frontend/editor/plugins/AjaxAwareValueTemplatePlugin.html	(revision )
@@ -0,0 +1,24 @@
+<!--
+
+    Copyright (C) 2011 - 2012 Hippo
+
+    Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<html xmlns:wicket="http://wicket.apache.org/">
+  <wicket:panel>
+    <div class="hippo-editor-field-value">
+      <div wicket:id="value" class="hippo-editor-field-value-container">[ Field value ]</div>
+    </div>
+  </wicket:panel>
+</html>
\ No newline at end of file
Index: urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.html
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.html	(revision )
+++ urlrewriter-plugin-cms/src/main/java/org/onehippo/forge/selection/frontend/plugin/BroadcastingStaticDropdownPlugin.html	(revision )
@@ -0,0 +1,34 @@
+<!--
+
+    Copyright (C) 2011 - 2012 Hippo
+
+    Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<html xmlns:wicket="http://wicket.apache.org/">
+  <wicket:panel>
+    <wicket:container wicket:id="fragment" />
+  </wicket:panel>
+  <wicket:fragment wicket:id="edit">
+    <select wicket:id="select" class="dropdown-plugin">
+      <option>Ard</option>
+      <option>Arthur</option>
+    </select>
+  </wicket:fragment>
+  <wicket:fragment wicket:id="view">
+    <span wicket:id="selectLabel">developer</span>
+  </wicket:fragment>
+  <wicket:fragment wicket:id="compare">
+    <span wicket:id="selectLabel">developer</span>
+  </wicket:fragment>
+</html>
