mirror of
https://github.com/theonedev/onedev.git
synced 2025-12-08 18:26:30 +00:00
Refactor resource management.
This commit is contained in:
parent
6e70ce22d5
commit
a34f8ca977
@ -0,0 +1,11 @@
|
||||
package com.pmease.commons.wicket.asset;
|
||||
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
|
||||
public class CommonHeaderItem {
|
||||
|
||||
public static JavaScriptHeaderItem get() {
|
||||
return JavaScriptHeaderItem.forReference(CommonResourceReference.get());
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.pmease.commons.wicket.asset;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.behavior.Behavior;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class CommonResourceBehavior extends Behavior {
|
||||
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(CommonHeaderItem.get());
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,28 +1,38 @@
|
||||
package com.pmease.commons.wicket.asset;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.HeaderItem;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.request.resource.CssResourceReference;
|
||||
import org.apache.wicket.request.resource.JavaScriptResourceReference;
|
||||
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapResourceReference;
|
||||
import com.pmease.commons.util.EasyList;
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapHeaderItem;
|
||||
|
||||
/**
|
||||
* Common resource is intended to provide a common look&feel for all products using
|
||||
* commons.wicket
|
||||
*
|
||||
* @author robin
|
||||
*
|
||||
*/
|
||||
public class CommonResourceReference extends JavaScriptResourceReference {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public CommonResourceReference() {
|
||||
public static CommonResourceReference get() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static CommonResourceReference INSTANCE = new CommonResourceReference();
|
||||
|
||||
private CommonResourceReference() {
|
||||
super(CommonResourceReference.class, "common.js");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Iterable<? extends HeaderItem> getDependencies() {
|
||||
return Arrays.asList(
|
||||
JavaScriptHeaderItem.forReference(new BootstrapResourceReference()),
|
||||
return EasyList.of(
|
||||
BootstrapHeaderItem.get(),
|
||||
CssHeaderItem.forReference(new CssResourceReference(CommonResourceReference.class, "common.css")));
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
package com.pmease.commons.wicket.asset;
|
||||
|
||||
import org.apache.wicket.Application;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.request.resource.ResourceReference;
|
||||
import org.apache.wicket.resource.JQueryResourceReference;
|
||||
|
||||
public class JQueryHeaderItem {
|
||||
|
||||
public static JavaScriptHeaderItem get() {
|
||||
ResourceReference backingLibraryReference;
|
||||
if (Application.exists()) {
|
||||
backingLibraryReference = Application.get()
|
||||
.getJavaScriptLibrarySettings()
|
||||
.getJQueryReference();
|
||||
} else {
|
||||
backingLibraryReference = JQueryResourceReference.get();
|
||||
}
|
||||
return JavaScriptHeaderItem.forReference(backingLibraryReference);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.pmease.commons.wicket.asset;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.behavior.Behavior;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class JQueryResourceBehavior extends Behavior {
|
||||
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(JQueryHeaderItem.get());
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package com.pmease.commons.wicket.asset.bootstrap;
|
||||
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
|
||||
public class BootstrapHeaderItem {
|
||||
|
||||
public static JavaScriptHeaderItem get() {
|
||||
return JavaScriptHeaderItem.forReference(BootstrapResourceReference.get());
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.pmease.commons.wicket.asset.bootstrap;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.behavior.Behavior;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class BootstrapResourceBehavior extends Behavior {
|
||||
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(BootstrapHeaderItem.get());
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,30 +1,33 @@
|
||||
package com.pmease.commons.wicket.asset.bootstrap;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.apache.wicket.ajax.WicketEventJQueryResourceReference;
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.HeaderItem;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.request.resource.CssResourceReference;
|
||||
import org.apache.wicket.request.resource.JavaScriptResourceReference;
|
||||
|
||||
import com.pmease.commons.util.EasyList;
|
||||
import com.pmease.commons.wicket.asset.JQueryHeaderItem;
|
||||
|
||||
public class BootstrapResourceReference extends JavaScriptResourceReference {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public BootstrapResourceReference() {
|
||||
public static BootstrapResourceReference get() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static BootstrapResourceReference INSTANCE = new BootstrapResourceReference();
|
||||
|
||||
private BootstrapResourceReference() {
|
||||
super(BootstrapResourceReference.class, "js/bootstrap.js");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<? extends HeaderItem> getDependencies() {
|
||||
HeaderItem jquery = JavaScriptHeaderItem.forReference(WicketEventJQueryResourceReference.get());
|
||||
HeaderItem jquery = JQueryHeaderItem.get();
|
||||
HeaderItem stylesheet = CssHeaderItem.forReference(
|
||||
new CssResourceReference(BootstrapResourceReference.class, "css/bootstrap.css"));
|
||||
HeaderItem themeStylesheet = CssHeaderItem.forReference(
|
||||
new CssResourceReference(BootstrapResourceReference.class, "css/bootstrap-theme.css"));
|
||||
|
||||
return Arrays.asList(jquery, stylesheet, themeStylesheet);
|
||||
return EasyList.of(jquery, stylesheet);
|
||||
}
|
||||
}
|
||||
@ -40,7 +40,7 @@ public class ConfirmBehavior extends Behavior {
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(JavaScriptHeaderItem.forReference(new ModalResourceReference()));
|
||||
response.render(JavaScriptHeaderItem.forReference(ModalResourceReference.get()));
|
||||
response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(ConfirmBehavior.class, "confirm.js")));
|
||||
}
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ public class DropdownBehavior extends AbstractDefaultAjaxBehavior {
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(JavaScriptHeaderItem.forReference(new DropdownResourceReference()));
|
||||
response.render(JavaScriptHeaderItem.forReference(DropdownResourceReference.get()));
|
||||
String script = String.format(
|
||||
"setupDropdown('%s', '%s', %s, '%s', '%s', %s, %s, %s, %s, %d, %s)",
|
||||
getComponent().getMarkupId(), dropdownPanel.getMarkupId(), hoverDelay, alignment.getIndicatorMode().name(),
|
||||
|
||||
@ -8,21 +8,26 @@ import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.request.resource.CssResourceReference;
|
||||
import org.apache.wicket.request.resource.JavaScriptResourceReference;
|
||||
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapResourceReference;
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapHeaderItem;
|
||||
|
||||
public class DropdownResourceReference extends JavaScriptResourceReference {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public DropdownResourceReference() {
|
||||
public static DropdownResourceReference get() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static DropdownResourceReference INSTANCE = new DropdownResourceReference();
|
||||
|
||||
private DropdownResourceReference() {
|
||||
super(DropdownResourceReference.class, "dropdown.js");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Iterable<? extends HeaderItem> getDependencies() {
|
||||
return Arrays.asList(
|
||||
JavaScriptHeaderItem.forReference(new BootstrapResourceReference()),
|
||||
BootstrapHeaderItem.get(),
|
||||
JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(
|
||||
DropdownResourceReference.class, "alignment.js")),
|
||||
CssHeaderItem.forReference(new CssResourceReference(
|
||||
|
||||
@ -34,7 +34,7 @@ public class ModalBehavior extends AbstractDefaultAjaxBehavior {
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(JavaScriptHeaderItem.forReference(new ModalResourceReference()));
|
||||
response.render(JavaScriptHeaderItem.forReference(ModalResourceReference.get()));
|
||||
String script = String.format(
|
||||
"setupModal('%s', '%s', '%s', %s)",
|
||||
getComponent().getMarkupId(), modalPanel.getMarkupId(),
|
||||
|
||||
@ -4,25 +4,29 @@ import java.util.Arrays;
|
||||
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.HeaderItem;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.request.resource.CssResourceReference;
|
||||
import org.apache.wicket.request.resource.JavaScriptResourceReference;
|
||||
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapResourceReference;
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapHeaderItem;
|
||||
|
||||
public class ModalResourceReference extends JavaScriptResourceReference {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public ModalResourceReference() {
|
||||
public static ModalResourceReference get() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static ModalResourceReference INSTANCE = new ModalResourceReference();
|
||||
|
||||
private ModalResourceReference() {
|
||||
super(ModalBehavior.class, "modal.js");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Iterable<? extends HeaderItem> getDependencies() {
|
||||
return Arrays.asList(
|
||||
JavaScriptHeaderItem.forReference(new BootstrapResourceReference()),
|
||||
BootstrapHeaderItem.get(),
|
||||
CssHeaderItem.forReference(new CssResourceReference(ModalBehavior.class, "modal.css")));
|
||||
}
|
||||
|
||||
|
||||
@ -53,7 +53,7 @@ public class TooltipBehavior extends Behavior {
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(JavaScriptHeaderItem.forReference(new DropdownResourceReference()));
|
||||
response.render(JavaScriptHeaderItem.forReference(DropdownResourceReference.get()));
|
||||
|
||||
String escapedContent = StringEscapeUtils.escapeEcmaScript(StringEscapeUtils.escapeHtml4(contentModel.getObject()));
|
||||
String script = String.format(
|
||||
|
||||
@ -11,12 +11,11 @@ import org.apache.wicket.ajax.attributes.IAjaxCallListener;
|
||||
import org.apache.wicket.ajax.json.JSONArray;
|
||||
import org.apache.wicket.ajax.json.JsonFunction;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
|
||||
import org.apache.wicket.request.cycle.RequestCycle;
|
||||
import org.apache.wicket.request.handler.TextRequestHandler;
|
||||
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapResourceReference;
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapHeaderItem;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public abstract class TypeAheadBehavior extends AbstractDefaultAjaxBehavior {
|
||||
@ -47,7 +46,7 @@ public abstract class TypeAheadBehavior extends AbstractDefaultAjaxBehavior {
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
|
||||
response.render(JavaScriptHeaderItem.forReference(new BootstrapResourceReference()));
|
||||
response.render(BootstrapHeaderItem.get());
|
||||
|
||||
String template =
|
||||
"$('#%s').typeahead({\n" +
|
||||
|
||||
@ -7,12 +7,11 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.NoRecordsToolbar;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.markup.repeater.Item;
|
||||
import org.apache.wicket.markup.repeater.OddEvenItem;
|
||||
import org.apache.wicket.model.IModel;
|
||||
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapResourceReference;
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapHeaderItem;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class CustomDataTable<T, S> extends DataTable<T, S> {
|
||||
@ -35,7 +34,7 @@ public class CustomDataTable<T, S> extends DataTable<T, S> {
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
|
||||
response.render(JavaScriptHeaderItem.forReference(new BootstrapResourceReference()));
|
||||
response.render(BootstrapHeaderItem.get());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@ import org.apache.wicket.markup.ComponentTag;
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.HeaderItem;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.form.SubmitLink;
|
||||
@ -25,7 +24,7 @@ import org.apache.wicket.model.AbstractReadOnlyModel;
|
||||
import org.apache.wicket.request.resource.CssResourceReference;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapResourceReference;
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapHeaderItem;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public abstract class Wizard extends Panel {
|
||||
@ -150,7 +149,7 @@ public abstract class Wizard extends Panel {
|
||||
|
||||
@Override
|
||||
public Iterable<? extends HeaderItem> getDependencies() {
|
||||
return Arrays.asList(JavaScriptHeaderItem.forReference(new BootstrapResourceReference()));
|
||||
return Arrays.asList(BootstrapHeaderItem.get());
|
||||
}
|
||||
|
||||
}));
|
||||
|
||||
@ -0,0 +1,11 @@
|
||||
package com.pmease.commons.wicket.editable;
|
||||
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
|
||||
public class EditableHeaderItem {
|
||||
|
||||
public static JavaScriptHeaderItem get() {
|
||||
return JavaScriptHeaderItem.forReference(EditableResourceReference.get());
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.pmease.commons.wicket.editable;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.behavior.Behavior;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class EditableResourceBehavior extends Behavior {
|
||||
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(EditableHeaderItem.get());
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,30 +1,32 @@
|
||||
package com.pmease.commons.wicket.editable;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.HeaderItem;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.request.resource.CssResourceReference;
|
||||
import org.apache.wicket.request.resource.JavaScriptResourceReference;
|
||||
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapResourceReference;
|
||||
import com.pmease.commons.util.EasyList;
|
||||
import com.pmease.commons.wicket.asset.bootstrap.BootstrapHeaderItem;
|
||||
|
||||
public class EditableResourceReference extends JavaScriptResourceReference {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public EditableResourceReference() {
|
||||
public static EditableResourceReference get() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private static EditableResourceReference INSTANCE = new EditableResourceReference();
|
||||
|
||||
private EditableResourceReference() {
|
||||
super(EditableResourceReference.class, "editable.js");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Iterable<? extends HeaderItem> getDependencies() {
|
||||
return Arrays.asList(
|
||||
JavaScriptHeaderItem.forReference(new BootstrapResourceReference()),
|
||||
CssHeaderItem.forReference(new CssResourceReference(
|
||||
EditableResourceReference.class, "editable.css")));
|
||||
return EasyList.of(
|
||||
BootstrapHeaderItem.get(),
|
||||
CssHeaderItem.forReference(new CssResourceReference(EditableResourceReference.class, "editable.css")));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import org.apache.wicket.model.IModel;
|
||||
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class BooleanPropertyEditContext extends PropertyEditContext {
|
||||
@ -46,7 +47,7 @@ public class BooleanPropertyEditContext extends PropertyEditContext {
|
||||
super.onComponentTag(tag);
|
||||
}
|
||||
|
||||
};
|
||||
}.add(new EditableResourceBehavior());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -11,6 +11,7 @@ import org.apache.wicket.model.IModel;
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.util.EasyList;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class NullableBooleanPropertyEditContext extends PropertyEditContext {
|
||||
@ -58,7 +59,7 @@ public class NullableBooleanPropertyEditContext extends PropertyEditContext {
|
||||
|
||||
};
|
||||
|
||||
dropDownChoice.setNullValid(true);
|
||||
dropDownChoice.setNullValid(true).add(new EditableResourceBehavior());
|
||||
|
||||
return dropDownChoice;
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ import com.pmease.commons.editable.BeanEditContext;
|
||||
import com.pmease.commons.editable.EditableUtils;
|
||||
import com.pmease.commons.editable.ValidationError;
|
||||
import com.pmease.commons.wicket.WicketUtils;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class PolymorphicListPropertyEditor extends Panel {
|
||||
@ -38,6 +39,8 @@ public class PolymorphicListPropertyEditor extends Panel {
|
||||
@Override
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
if (editContext.isPropertyRequired()) {
|
||||
add(new WebMarkupContainer("enable").setVisible(false));
|
||||
|
||||
@ -7,6 +7,7 @@ import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
import com.pmease.commons.editable.BeanEditContext;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class PolymorphicListPropertyViewer extends Panel {
|
||||
@ -22,6 +23,8 @@ public class PolymorphicListPropertyViewer extends Panel {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
add(new ListView<BeanEditContext>("elements", editContext.getElementContexts()) {
|
||||
|
||||
@Override
|
||||
|
||||
@ -26,6 +26,7 @@ import com.pmease.commons.editable.EditableUtils;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.editable.ValidationError;
|
||||
import com.pmease.commons.wicket.WicketUtils;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class TableListPropertyEditor extends Panel {
|
||||
@ -41,6 +42,8 @@ public class TableListPropertyEditor extends Panel {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
if (editContext.isPropertyRequired()) {
|
||||
add(new WebMarkupContainer("enable").setVisible(false));
|
||||
if (editContext.getPropertyValue() == null) {
|
||||
|
||||
@ -15,6 +15,7 @@ import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.editable.EditableUtils;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class TableListPropertyViewer extends Panel {
|
||||
@ -30,6 +31,8 @@ public class TableListPropertyViewer extends Panel {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
add(new ListView<Method>("headers", new LoadableDetachableModel<List<Method>>() {
|
||||
|
||||
@Override
|
||||
|
||||
@ -11,6 +11,7 @@ import org.apache.wicket.model.Model;
|
||||
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class NumericPropertyEditContext extends PropertyEditContext {
|
||||
@ -43,16 +44,17 @@ public class NumericPropertyEditContext extends PropertyEditContext {
|
||||
super.onComponentTag(tag);
|
||||
}
|
||||
|
||||
};
|
||||
}.add(new EditableResourceBehavior());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object renderForView(Object renderParam) {
|
||||
Object propertyValue = getPropertyValue();
|
||||
if (propertyValue != null)
|
||||
if (propertyValue != null) {
|
||||
return new Label((String) renderParam, propertyValue.toString());
|
||||
else
|
||||
} else {
|
||||
return new Label((String) renderParam, "<i>Not Defined</i>").setEscapeModelStrings(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -28,10 +28,11 @@ public class ConfirmativePasswordPropertyEditContext extends PropertyEditContext
|
||||
|
||||
@Override
|
||||
public Object renderForView(Object renderParam) {
|
||||
if (getPropertyValue() != null)
|
||||
if (getPropertyValue() != null) {
|
||||
return new Label((String) renderParam, "******");
|
||||
else
|
||||
} else {
|
||||
return new Label((String) renderParam, "<i>Not Defined</i>").setEscapeModelStrings(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -4,6 +4,8 @@ import org.apache.wicket.markup.html.form.PasswordTextField;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class ConfirmativePasswordPropertyEditor extends Panel {
|
||||
|
||||
@ -18,6 +20,8 @@ public class ConfirmativePasswordPropertyEditor extends Panel {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
add(new PasswordTextField("input", new IModel<String>() {
|
||||
|
||||
@Override
|
||||
|
||||
@ -10,6 +10,7 @@ import org.apache.wicket.model.IModel;
|
||||
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class PasswordPropertyEditContext extends PropertyEditContext {
|
||||
@ -50,15 +51,18 @@ public class PasswordPropertyEditContext extends PropertyEditContext {
|
||||
};
|
||||
editor.setRequired(false);
|
||||
editor.setResetPassword(false);
|
||||
editor.add(new EditableResourceBehavior());
|
||||
|
||||
return editor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object renderForView(Object renderParam) {
|
||||
if (getPropertyValue() != null)
|
||||
if (getPropertyValue() != null) {
|
||||
return new Label((String) renderParam, "******");
|
||||
else
|
||||
} else {
|
||||
return new Label((String) renderParam, "<i>Not Defined</i>").setEscapeModelStrings(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -14,6 +14,7 @@ import org.apache.wicket.model.IModel;
|
||||
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.editable.EditableUtils;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class PolymorphicPropertyEditor extends Panel {
|
||||
@ -31,6 +32,8 @@ public class PolymorphicPropertyEditor extends Panel {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
List<String> implementationNames = new ArrayList<String>();
|
||||
for (Class<?> each: editContext.getImplementations())
|
||||
implementationNames.add(EditableUtils.getName(each));
|
||||
|
||||
@ -6,8 +6,6 @@ import java.util.Map;
|
||||
|
||||
import org.apache.wicket.AttributeModifier;
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
@ -20,7 +18,7 @@ import com.pmease.commons.editable.EditableUtils;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.editable.ValidationError;
|
||||
import com.pmease.commons.editable.annotation.TableLayout;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceReference;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class ReflectionBeanEditor extends Panel {
|
||||
@ -37,6 +35,8 @@ public class ReflectionBeanEditor extends Panel {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
add(new ListView<ValidationError>("beanValidationErrors", new LoadableDetachableModel<List<ValidationError>>() {
|
||||
|
||||
@Override
|
||||
@ -119,10 +119,4 @@ public class ReflectionBeanEditor extends Panel {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
response.render(JavaScriptHeaderItem.forReference(new EditableResourceReference()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
package com.pmease.commons.wicket.editable.reflection;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
@ -10,7 +8,7 @@ import org.apache.wicket.markup.html.panel.Panel;
|
||||
|
||||
import com.pmease.commons.editable.EditableUtils;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceReference;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class ReflectionBeanViewer extends Panel {
|
||||
@ -27,6 +25,8 @@ public class ReflectionBeanViewer extends Panel {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
add(new ListView<PropertyEditContext>("properties", editContext.getPropertyContexts()) {
|
||||
|
||||
@Override
|
||||
@ -39,10 +39,4 @@ public class ReflectionBeanViewer extends Panel {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
response.render(JavaScriptHeaderItem.forReference(new EditableResourceReference()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class ReflectionPropertyEditor extends Panel {
|
||||
@ -26,6 +27,8 @@ public class ReflectionPropertyEditor extends Panel {
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
add(new EditableResourceBehavior());
|
||||
|
||||
if (editContext.isPropertyRequired()) {
|
||||
add(new WebMarkupContainer("enable").setVisible(false));
|
||||
if (editContext.getPropertyValue() == null) {
|
||||
|
||||
@ -10,6 +10,7 @@ import org.apache.wicket.model.IModel;
|
||||
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.editable.PropertyEditContext;
|
||||
import com.pmease.commons.wicket.editable.EditableResourceBehavior;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class StringPropertyEditContext extends PropertyEditContext {
|
||||
@ -47,7 +48,7 @@ public class StringPropertyEditContext extends PropertyEditContext {
|
||||
super.onComponentTag(tag);
|
||||
}
|
||||
|
||||
};
|
||||
}.add(new EditableResourceBehavior());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -272,12 +272,13 @@ public class User extends AbstractUser implements ProtectedObject {
|
||||
if (repositoryPermission.implies(objectPermission))
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
for (Repository each: Gitop.getInstance(RepositoryManager.class).findPublic()) {
|
||||
ObjectPermission repositoryPermission = new ObjectPermission(each, RepositoryOperation.READ);
|
||||
if (repositoryPermission.implies(objectPermission))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// check if is public access
|
||||
for (Repository each: Gitop.getInstance(RepositoryManager.class).findPublic()) {
|
||||
ObjectPermission repositoryPermission = new ObjectPermission(each, RepositoryOperation.READ);
|
||||
if (repositoryPermission.implies(objectPermission))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
@ -1,14 +1,6 @@
|
||||
package com.pmease.gitop.core.permission.operation;
|
||||
|
||||
public enum UserOperation implements PrivilegedOperation {
|
||||
NO_ACCESS {
|
||||
|
||||
@Override
|
||||
public boolean can(PrivilegedOperation operation) {
|
||||
return false;
|
||||
}
|
||||
|
||||
},
|
||||
READ {
|
||||
|
||||
@Override
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
<meta wicket:id="refresh" http-equiv="refresh"/>
|
||||
</head>
|
||||
<body>
|
||||
<wicket:container wicket:id="globalResourceBinder"></wicket:container>
|
||||
<wicket:child></wicket:child>
|
||||
</body>
|
||||
</html>
|
||||
@ -2,7 +2,9 @@ package com.pmease.gitop.web;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.RestartResponseAtInterceptPageException;
|
||||
import org.apache.wicket.behavior.Behavior;
|
||||
import org.apache.wicket.markup.ComponentTag;
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.HeaderItem;
|
||||
@ -14,7 +16,7 @@ import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.request.resource.CssResourceReference;
|
||||
import org.apache.wicket.request.resource.JavaScriptResourceReference;
|
||||
|
||||
import com.pmease.commons.wicket.asset.CommonResourceReference;
|
||||
import com.pmease.commons.wicket.asset.CommonHeaderItem;
|
||||
import com.pmease.gitop.core.Gitop;
|
||||
import com.pmease.gitop.web.asset.AssetLocator;
|
||||
|
||||
@ -47,27 +49,38 @@ public abstract class BasePage extends WebPage {
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
protected abstract String getTitle();
|
||||
|
||||
@Override
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
|
||||
response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(AssetLocator.class, "page.js") {
|
||||
/*
|
||||
* Bind global resources here so that they can appear in page header before
|
||||
* any other resources. Simply rendering the resource in renderHead method of
|
||||
* base page will not work as renderHead method of container will be called
|
||||
* after contained components, and this will cause components with resources
|
||||
* using global resources not working properly.
|
||||
*
|
||||
*/
|
||||
add(new WebMarkupContainer("globalResourceBinder").add(new Behavior() {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Iterable<? extends HeaderItem> getDependencies() {
|
||||
return Arrays.asList(
|
||||
JavaScriptHeaderItem.forReference(new CommonResourceReference()),
|
||||
CssHeaderItem.forReference(new CssResourceReference(AssetLocator.class, "page.css")));
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
|
||||
response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(AssetLocator.class, "page.js") {
|
||||
|
||||
@Override
|
||||
public Iterable<? extends HeaderItem> getDependencies() {
|
||||
return Arrays.asList(
|
||||
CommonHeaderItem.get(),
|
||||
CssHeaderItem.forReference(new CssResourceReference(AssetLocator.class, "page.css")));
|
||||
}
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
protected abstract String getTitle();
|
||||
|
||||
protected int getPageRefreshInterval() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1,8 +1,3 @@
|
||||
<wicket:extend>
|
||||
<div style="padding:100px;">
|
||||
<form wicket:id="form">
|
||||
<div wicket:id="editor"></div>
|
||||
<input type="submit" value="Submit" class="btn btn-primary"></input>
|
||||
</form>
|
||||
</div>
|
||||
<div wicket:id="test"></div>
|
||||
</wicket:extend>
|
||||
@ -1,38 +1,11 @@
|
||||
package com.pmease.gitop.web;
|
||||
|
||||
import org.apache.commons.lang3.SerializationUtils;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
|
||||
import com.pmease.commons.editable.EditContext;
|
||||
import com.pmease.commons.wicket.editable.EditHelper;
|
||||
import com.pmease.gitop.core.model.Repository;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class HomePage extends BasePage {
|
||||
|
||||
private static Repository repository = new Repository();
|
||||
|
||||
@Override
|
||||
protected void onInitialize() {
|
||||
super.onInitialize();
|
||||
|
||||
final Repository cloned = SerializationUtils.clone(repository);
|
||||
final EditContext editContext = EditHelper.getContext(cloned);
|
||||
|
||||
Form<?> form = new Form<Void>("form") {
|
||||
|
||||
@Override
|
||||
protected void onSubmit() {
|
||||
super.onSubmit();
|
||||
editContext.validate();
|
||||
if (!editContext.hasValidationError(true))
|
||||
repository = cloned;
|
||||
}
|
||||
|
||||
};
|
||||
form.add(EditHelper.renderForEdit(editContext, "editor"));
|
||||
|
||||
add(form);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user