Return-Path: X-Original-To: apmail-directory-commits-archive@www.apache.org Delivered-To: apmail-directory-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4AAE21733C for ; Tue, 11 Nov 2014 20:35:12 +0000 (UTC) Received: (qmail 20349 invoked by uid 500); 11 Nov 2014 20:35:12 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 20143 invoked by uid 500); 11 Nov 2014 20:35:12 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 19588 invoked by uid 99); 11 Nov 2014 20:35:11 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Nov 2014 20:35:11 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 6AEE6A0E074; Tue, 11 Nov 2014 20:35:11 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: smckinney@apache.org To: commits@directory.apache.org Date: Tue, 11 Nov 2014 20:35:23 -0000 Message-Id: <8acc501eb0ae48708859676830879abd@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [13/27] directory-fortress-commander git commit: change package structure and names, pom improvements, license http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/ConstraintBasePanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/ConstraintBasePanel.java b/src/main/java/org/openldap/commander/panel/ConstraintBasePanel.java deleted file mode 100644 index 9a63e92..0000000 --- a/src/main/java/org/openldap/commander/panel/ConstraintBasePanel.java +++ /dev/null @@ -1,439 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -import com.googlecode.wicket.jquery.ui.form.spinner.Spinner; - -import com.googlecode.wicket.kendo.ui.form.datetime.DatePicker; -import com.googlecode.wicket.kendo.ui.form.datetime.TimePicker; -import org.apache.log4j.Logger; -import org.apache.wicket.markup.html.form.CheckBox; -import org.apache.wicket.markup.html.form.FormComponentPanel; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.PropertyModel; -import org.openldap.fortress.util.time.Constraint; - -import java.util.Calendar; -import java.util.Date; - -/** - * @author Shawn McKinney - * @version $Rev$ - * Date: 5/24/13 - */ -public class ConstraintBasePanel extends FormComponentPanel -{ - private static final String CLS_NM = ConstraintPanel.class.getName(); - private static final Logger log = Logger.getLogger(CLS_NM); - - protected static final String TIMEOUT = "timeout"; - protected static final String SUNDAY = "sunday"; - protected static final String MONDAY = "monday"; - protected static final String TUESDAY = "tuesday"; - protected static final String WEDNESDAY = "wednesday"; - protected static final String THURSDAY = "thursday"; - protected static final String FRIDAY = "friday"; - protected static final String SATURDAY = "saturday"; - - protected static final String BEGIN_TIME = "beginTime"; - protected static final String END_TIME = "endTime"; - protected static final String BEGIN_DATE = "beginDate"; - protected static final String END_DATE = "endDate"; - protected static final String BEGIN_LOCK_DATE = "beginLockDate"; - protected static final String END_LOCK_DATE = "endLockDate"; - - protected static final String DAY1 = "1"; - protected static final String DAY2 = "2"; - protected static final String DAY3 = "3"; - protected static final String DAY4 = "4"; - protected static final String DAY5 = "5"; - protected static final String DAY6 = "6"; - protected static final String DAY7 = "7"; - // These are used by this panel component's PropertyModel objects: - - protected Date beginTime; - protected Date beginDate; - protected Date endTime; - protected Date endDate; - protected Date beginLockDate; - protected Date endLockDate; - - // These are the actual Wicket JQuery controls to process the input: - protected TimePicker beginTimeTP; - protected TimePicker endTimeTP; - protected DatePicker beginDateDP; - protected DatePicker endDateDP; - protected DatePicker beginLockDateDP; - protected DatePicker endLockDateDP; - - // The Wicket checkBoxes are used for constructing a {@link us.uts.fortress.rbac.User#dayMask} entity attribute into model model: - protected CheckBox sundayCB; - protected CheckBox mondayCB; - protected CheckBox tuesdayCB; - protected CheckBox wednesdayCB; - protected CheckBox thursdayCB; - protected CheckBox fridayCB; - protected CheckBox saturdayCB; - - // These are used by CheckBox control to store the dayMask fields until mapped to {@link us.uts.fortress.rbac.User#dayMask} into model object: - protected Boolean sunday = false; - protected Boolean monday = false; - protected Boolean tuesday = false; - protected Boolean wednesday = false; - protected Boolean thursday = false; - protected Boolean friday = false; - protected Boolean saturday = false; - - - public ConstraintBasePanel(String id, final IModel constraint) - { - super(id, constraint); - final Spinner timeout = new Spinner(TIMEOUT); - timeout.setRequired(false); - add(timeout); - - // Add the dayMask's day of week CheckBoxes: - sundayCB = new CheckBox(SUNDAY, new PropertyModel(this, SUNDAY)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - setSunday(isDayOfWeek(constraint, DAY1)); - } - } - }; - add(sundayCB); - mondayCB = new CheckBox("monday", new PropertyModel(this, MONDAY)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - setMonday(isDayOfWeek(constraint, DAY2)); - } - } - }; - add(mondayCB); - tuesdayCB = new CheckBox(TUESDAY, new PropertyModel(this, TUESDAY)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - setTuesday(isDayOfWeek(constraint, DAY3)); - } - } - }; - add(tuesdayCB); - wednesdayCB = new CheckBox(WEDNESDAY, new PropertyModel(this, WEDNESDAY)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - setWednesday(isDayOfWeek(constraint, DAY4)); - } - } - }; - add(wednesdayCB); - thursdayCB = new CheckBox(THURSDAY, new PropertyModel(this, THURSDAY)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - setThursday(isDayOfWeek(constraint, DAY5)); - } - } - }; - add(thursdayCB); - fridayCB = new CheckBox(FRIDAY, new PropertyModel(this, FRIDAY)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - setFriday(isDayOfWeek(constraint, DAY6)); - } - } - }; - add(fridayCB); - saturdayCB = new CheckBox(SATURDAY, new PropertyModel(this, SATURDAY)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - setSaturday(isDayOfWeek(constraint, DAY7)); - } - } - }; - add(saturdayCB); - } - - /** - * This method is used to convert from the panel component model to the domain model: - */ - @Override - protected void convertInput() - { - Constraint constraint = (Constraint) getDefaultModelObject(); - if(constraint != null) - { - constraint.setBeginTime(convertTime(beginTimeTP)); - constraint.setEndTime(convertTime(endTimeTP)); - constraint.setBeginDate(convertDate(beginDateDP)); - constraint.setEndDate(convertDate(endDateDP)); - constraint.setBeginLockDate(convertDate(beginLockDateDP)); - constraint.setEndLockDate(convertDate(endLockDateDP)); - - setSunday(sundayCB.getConvertedInput()); - setMonday(mondayCB.getConvertedInput()); - setTuesday(tuesdayCB.getConvertedInput()); - setWednesday(wednesdayCB.getConvertedInput()); - setThursday(thursdayCB.getConvertedInput()); - setFriday(fridayCB.getConvertedInput()); - setSaturday(saturdayCB.getConvertedInput()); - - String szDayMask = ""; - if(sunday) - szDayMask += DAY1; - if(monday) - szDayMask += DAY2; - if(tuesday) - szDayMask += DAY3; - if(wednesday) - szDayMask += DAY4; - if(thursday) - szDayMask += DAY5; - if(friday) - szDayMask += DAY6; - if(saturday) - szDayMask += DAY7; - - constraint.setDayMask(szDayMask); - setConvertedInput(constraint); - } - else - { - log.warn( "constraint was null" ); - } - } - - protected boolean isDayOfWeek(Constraint constraint, String szDay) - { - boolean isSet = false; - if(constraint != null && constraint.getDayMask() != null && (constraint.getDayMask().contains(szDay) || constraint.getDayMask().equals("all"))) - { - isSet = true; - } - return isSet; - } - - protected String convertTime(TimePicker time) - { - String szTime = null; - if (time != null) - { - Date localDate = time.getConvertedInput(); - if (localDate != null) - { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(localDate); - log.debug("localDate=" + localDate.toString()); - if (calendar.get(Calendar.HOUR_OF_DAY) < 10) - szTime = "0" + calendar.get(Calendar.HOUR_OF_DAY); - else - szTime = "" + calendar.get(Calendar.HOUR_OF_DAY); - if (calendar.get(Calendar.MINUTE) < 10) - szTime += "0" + calendar.get(Calendar.MINUTE); - else - szTime += "" + calendar.get(Calendar.MINUTE); - } - } - return szTime; - } - - protected String convertDate(DatePicker date) - { - String szDate = null; - if (date != null) - { - Date localDate = date.getConvertedInput(); - if (localDate != null) - { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(localDate); - log.debug("localDate=" + localDate.toString()); - szDate = "" + calendar.get(Calendar.YEAR); - - if ((calendar.get(Calendar.MONTH) + 1) < 10) - szDate += "0" + (calendar.get(Calendar.MONTH) + 1); - else - szDate += "" + (calendar.get(Calendar.MONTH) + 1); - if (calendar.get(Calendar.DAY_OF_MONTH) < 10) - szDate += "0" + calendar.get(Calendar.DAY_OF_MONTH); - else - szDate += "" + calendar.get(Calendar.DAY_OF_MONTH); - } - } - return szDate; - } - - protected Date renderTime(Date date, String szTime) - { - if (szTime != null && !szTime.equalsIgnoreCase("0000")) - { - Calendar calendar = Calendar.getInstance(); - try - { - int hours = new Integer(szTime.substring(0, 2)); - int minutes = new Integer(szTime.substring(2, 4)); - calendar.set(0, 0, 0, hours, minutes); - date = calendar.getTime(); - } - catch(StringIndexOutOfBoundsException e) - { - String warning = CLS_NM + ".renderTime bad time: " + szTime; - log.warn(warning); - //warn(warning); - } - } - else - { - date = null; - } - return date; - } - - protected Date renderDate(Date date, String szDate) - { - if (szDate != null && !szDate.equalsIgnoreCase("none")) - { - Calendar calendar = Calendar.getInstance(); - try - { - int years = new Integer(szDate.substring(0, 4)); - int months = new Integer(szDate.substring(4, 6)); - int days = new Integer(szDate.substring(6, 8)); - calendar.set(years, months, days, 0, 0); - date = calendar.getTime(); - } - catch(StringIndexOutOfBoundsException e) - { - String warning = CLS_NM + ".renderDate bad date: " + szDate; - log.warn(warning); - //warn(warning); - } - } - else - { - date = null; - } - return date; - } - protected Boolean getSunday() - { - return sunday; - } - - protected void setSunday(Boolean sunday) - { - this.sunday = sunday; - } - - protected Boolean getMonday() - { - return monday; - } - - protected void setMonday(Boolean monday) - { - this.monday = monday; - } - - protected Boolean getTuesday() - { - return tuesday; - } - - protected void setTuesday(Boolean tuesday) - { - this.tuesday = tuesday; - } - - protected Boolean getWednesday() - { - return wednesday; - } - - protected void setWednesday(Boolean wednesday) - { - this.wednesday = wednesday; - } - - protected Boolean getThursday() - { - return thursday; - } - - protected void setThursday(Boolean thursday) - { - this.thursday = thursday; - } - - protected Boolean getFriday() - { - return friday; - } - - protected void setFriday(Boolean friday) - { - this.friday = friday; - } - - protected Boolean getSaturday() - { - return saturday; - } - - protected void setSaturday(Boolean saturday) - { - this.saturday = saturday; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/ConstraintPanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/ConstraintPanel.java b/src/main/java/org/openldap/commander/panel/ConstraintPanel.java deleted file mode 100644 index 4cf4efd..0000000 --- a/src/main/java/org/openldap/commander/panel/ConstraintPanel.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -import com.googlecode.wicket.kendo.ui.form.datetime.DatePicker; -import com.googlecode.wicket.kendo.ui.form.datetime.TimePicker; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.PropertyModel; -import org.openldap.fortress.util.time.Constraint; - -import java.util.Date; - -/** - * @author Shawn McKinney - * @version $Rev$ - * Date: 5/24/13 - */ -public class ConstraintPanel extends ConstraintBasePanel -{ - private static final String BEGIN_TIME_P = "beginTimeP"; - private static final String END_TIME_P = "endTimeP"; - private static final String BEGIN_DATE_P = "beginDateP"; - private static final String END_DATE_P = "endDateP"; - private static final String BEGIN_LOCK_DATE_P = "beginLockDateP"; - private static final String END_LOCK_DATE_P = "endLockDateP"; - - /** - * Constructor requires model to be passed in. - * - * @param id - * @param constraint - */ - public ConstraintPanel(String id, final IModel constraint) - { - super(id, constraint); - beginTimeTP = new TimePicker(BEGIN_TIME_P, new PropertyModel(this, BEGIN_TIME)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - beginTime = renderTime(beginTime, constraint.getBeginTime()); - } - } - }; - add(beginTimeTP); - - endTimeTP = new TimePicker(END_TIME_P, new PropertyModel(this, END_TIME)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - endTime = renderTime(endTime, constraint.getEndTime()); - } - } - }; - add(endTimeTP); - endTimeTP.setRequired(false); - - beginDateDP = new DatePicker(BEGIN_DATE_P, new PropertyModel(this, BEGIN_DATE)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - beginDate = renderDate(beginDate, constraint.getBeginDate()); - } - } - }; - beginDateDP.setRequired(false); - add(beginDateDP); - - endDateDP = new DatePicker(END_DATE_P, new PropertyModel(this, END_DATE)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - endDate = renderDate(endDate, constraint.getEndDate()); - } - } - }; - endDateDP.setRequired(false); - add(endDateDP); - - beginLockDateDP = new DatePicker(BEGIN_LOCK_DATE_P, new PropertyModel(this, BEGIN_LOCK_DATE)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - beginLockDate = renderDate(beginLockDate, constraint.getBeginLockDate()); - } - } - }; - beginLockDateDP.setRequired(false); - add(beginLockDateDP); - - endLockDateDP = new DatePicker(END_LOCK_DATE_P, new PropertyModel(this, END_LOCK_DATE)) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - endLockDate = renderDate(endLockDate, constraint.getEndLockDate()); - } - } - }; - endLockDateDP.setRequired(false); - add(endLockDateDP); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/ConstraintRolePanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/ConstraintRolePanel.java b/src/main/java/org/openldap/commander/panel/ConstraintRolePanel.java deleted file mode 100644 index 408d64c..0000000 --- a/src/main/java/org/openldap/commander/panel/ConstraintRolePanel.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -import com.googlecode.wicket.kendo.ui.form.datetime.DatePicker; -import com.googlecode.wicket.kendo.ui.form.datetime.TimePicker; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.PropertyModel; -import org.openldap.fortress.util.time.Constraint; - -import java.util.Date; - -/** - * @author Shawn McKinney - * @version $Rev$ - * Date: 5/24/13 - */ -public class ConstraintRolePanel extends ConstraintBasePanel -{ - private static final String BEGIN_TIME_RC = "beginTimeRC"; - private static final String END_TIME_RC = "endTimeRC"; - private static final String BEGIN_DATE_RC = "beginDateRC"; - private static final String END_DATE_RC = "endDateRC"; - private static final String BEGIN_LOCK_DATE_RC = "beginLockDateRC"; - private static final String END_LOCK_DATE_RC = "endLockDateRC"; - - /** - * Constructor requires model to be passed in. - * - * @param id - * @param constraint - */ - public ConstraintRolePanel( String id, final IModel constraint ) - { - super(id, constraint); - beginTimeTP = new TimePicker( BEGIN_TIME_RC, new PropertyModel(this, BEGIN_TIME )) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - beginTime = renderTime(beginTime, constraint.getBeginTime()); - } - } - }; - add(beginTimeTP); - - endTimeTP = new TimePicker( END_TIME_RC, new PropertyModel(this, END_TIME )) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - endTime = renderTime(endTime, constraint.getEndTime()); - } - } - }; - add(endTimeTP); - endTimeTP.setRequired(false); - - beginDateDP = new DatePicker( BEGIN_DATE_RC, new PropertyModel(this, BEGIN_DATE )) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - beginDate = renderDate(beginDate, constraint.getBeginDate()); - } - } - }; - beginDateDP.setRequired(false); - add(beginDateDP); - - endDateDP = new DatePicker( END_DATE_RC, new PropertyModel(this, END_DATE )) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - endDate = renderDate(endDate, constraint.getEndDate()); - } - } - }; - endDateDP.setRequired(false); - add(endDateDP); - - beginLockDateDP = new DatePicker( BEGIN_LOCK_DATE_RC, new PropertyModel(this, BEGIN_LOCK_DATE )) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - beginLockDate = renderDate(beginLockDate, constraint.getBeginLockDate()); - } - } - }; - beginLockDateDP.setRequired(false); - add(beginLockDateDP); - - endLockDateDP = new DatePicker( END_LOCK_DATE_RC, new PropertyModel(this, END_LOCK_DATE )) - { - @Override - protected void onBeforeRender() - { - if (this.getParent().getDefaultModelObject() != null) - { - super.onBeforeRender(); - Constraint constraint = (Constraint) this.getParent().getDefaultModelObject(); - endLockDate = renderDate(endLockDate, constraint.getEndLockDate()); - } - } - }; - endLockDateDP.setRequired(false); - add(endLockDateDP); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/Controllable.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/Controllable.java b/src/main/java/org/openldap/commander/panel/Controllable.java deleted file mode 100644 index 98b70f5..0000000 --- a/src/main/java/org/openldap/commander/panel/Controllable.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -/** - * @author Shawn McKinney - * @version $Rev$ - * Date: 5/16/13 - */ -public interface Controllable -{ - public enum Operations - { - ADD, - UPDATE, - DELETE, - SEARCH, - EXPORT, - CANCEL - } - - public void setOperation(Operations operations); - public Operations getOperation(); -} http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/Displayable.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/Displayable.java b/src/main/java/org/openldap/commander/panel/Displayable.java deleted file mode 100644 index 5284b4c..0000000 --- a/src/main/java/org/openldap/commander/panel/Displayable.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -import org.apache.wicket.ajax.AjaxRequestTarget; - -/** - * @author Shawn McKinney - * @version $Rev$ - * Date: 5/20/13 - */ -public interface Displayable -{ - public void setMessage(String message); - public void display(AjaxRequestTarget target); - public void display(); -} http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/GroupDetailPanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/GroupDetailPanel.java b/src/main/java/org/openldap/commander/panel/GroupDetailPanel.java deleted file mode 100644 index 4ae5b32..0000000 --- a/src/main/java/org/openldap/commander/panel/GroupDetailPanel.java +++ /dev/null @@ -1,697 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -import com.googlecode.wicket.jquery.core.Options; -import com.googlecode.wicket.kendo.ui.datatable.ColumnButton; -import com.googlecode.wicket.kendo.ui.datatable.DataTable; -import com.googlecode.wicket.kendo.ui.datatable.column.CommandsColumn; -import com.googlecode.wicket.kendo.ui.datatable.column.IColumn; -import com.googlecode.wicket.kendo.ui.datatable.column.PropertyColumn; -import com.googlecode.wicket.kendo.ui.form.combobox.ComboBox; -import org.apache.log4j.Logger; -import org.apache.wicket.Component; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.attributes.AjaxCallListener; -import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; -import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink; -import org.apache.wicket.event.IEvent; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.FormComponentPanel; -import org.apache.wicket.markup.html.form.TextField; -import org.apache.wicket.markup.repeater.data.IDataProvider; -import org.apache.wicket.markup.repeater.data.ListDataProvider; -import org.apache.wicket.model.CompoundPropertyModel; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.PropertyModel; -import org.apache.wicket.spring.injection.annot.SpringBean; -import org.openldap.commander.GlobalIds; -import org.openldap.commander.GlobalUtils; -import org.openldap.commander.SaveModelEvent; -import org.openldap.commander.SecureIndicatingAjaxButton; -import org.openldap.commander.SelectModelEvent; -import org.openldap.fortress.ldap.group.Group; -import org.openldap.fortress.ldap.group.GroupMgr; -import org.openldap.fortress.rbac.User; -import org.openldap.fortress.util.attr.VUtil; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - - -/** - * @author Shawn McKinney - * @version $Rev$ - */ -public class GroupDetailPanel extends FormComponentPanel -{ - @SpringBean - private GroupMgr groupMgr; - private static final Logger log = Logger.getLogger( GroupDetailPanel.class.getName() ); - private Form editForm; - private Displayable display; - public static final int ROWS = 5; - - public Form getForm() - { - return this.editForm; - } - - public GroupDetailPanel( String id, Displayable display ) - { - super( id ); - - this.groupMgr.setAdmin( GlobalUtils.getRbacSession( this ) ); - this.editForm = new GroupDetailForm( GlobalIds.EDIT_FIELDS, new CompoundPropertyModel( new Group() ) ); - editForm.setOutputMarkupId( true ); - this.display = display; - add( editForm ); - } - - public class GroupDetailForm extends Form - { - private Component component; - private DataTable table; - private List columns; - private Options options; - private String memberAssign; - private TextField memberAssignTF; - private ComboBox memberPropsCB; - private String memberPropsSelection; - - public GroupDetailForm( String id, final IModel model ) - { - super( id, model ); - addGroupDetailFields(); - addGroupButtons(); - setOutputMarkupId( true ); - } - - private void addGroupDetailFields() - { - add( new Label( "groupAssignmentsLabel", "Group Detail" ) ); - TextField name = new TextField( "name" ); - add( name ); - name.setRequired( false ); - TextField protocol = new TextField( "protocol" ); - add( protocol ); - TextField description = new TextField( "description" ); - description.setRequired( false ); - add( description ); - protocol.setRequired( true ); - memberPropsCB = new ComboBox( "memberProps", new PropertyModel( this, "memberPropsSelection" ), new ArrayList() ); - memberPropsCB.setOutputMarkupId( true ); - add( memberPropsCB ); - - memberAssignTF = new TextField( "memberAssign", new PropertyModel( this, "memberAssign" ) ); - memberAssignTF.setOutputMarkupId( true ); - add( memberAssignTF ); - addUserSearchModal(); - - // DataTable // - columns = newColumnList(); - options = new Options(); - options.set("selectable", Options.asString("single")); - options.set("scrollable", "{ virtual: true }"); //infinite scroll - options.set( "height", 300 ); - options.set( "pageable", "{ pageSizes: [ 5, 10, 15, 20 ] }" ); - table = new DataTable( "memberstable", columns, createDataProvider( null ), ROWS, options ); - table.setOutputMarkupId( true ); - add( table ); - } - - private void addGroupButtons() - { - add( new SecureIndicatingAjaxButton( GlobalIds.ADD, GlobalIds.GROUP_MGR, "add" ) - { - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - log.debug( ".onSubmit Add" ); - Group group = ( Group ) form.getModel().getObject(); - String msg = null; - if(!VUtil.isNotNullOrEmpty( memberAssign ) && !VUtil.isNotNullOrEmpty( group.getMembers() )) - { - msg = "Group name: " + group.getName() + " cannot be added without a member"; - } - else - { - try - { - if(VUtil.isNotNullOrEmpty( memberAssign )) - { - group.setMember( memberAssign ); - } - group.setMemberDn( true ); - group = groupMgr.add( group ); - component = editForm; - SaveModelEvent.send( getPage(), this, group, target, SaveModelEvent.Operations.ADD ); - msg = "Group name: " + group.getName() + " has been added"; - } - catch ( org.openldap.fortress.SecurityException se ) - { - String error = ".onSubmit caught SecurityException=" + se; - log.error( error ); - display.setMessage( error ); - } - } - display.setMessage( msg ); - } - - @Override - public void onError( AjaxRequestTarget target, Form form ) - { - log.info( "GroupDetailPanel.add.onError caught" ); - target.add(); - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - add( new SecureIndicatingAjaxButton( GlobalIds.COMMIT, GlobalIds.GROUP_MGR, "update" ) - { - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - log.debug( ".onSubmit Commit" ); - Group group = ( Group ) form.getModel().getObject(); - try - { - group = groupMgr.update( group ); - String msg = "Group name: " + group.getName() + " has been updated"; - SaveModelEvent.send( getPage(), this, group, target, SaveModelEvent.Operations.UPDATE ); - component = editForm; - display.setMessage( msg ); - } - catch ( org.openldap.fortress.SecurityException se ) - { - String error = ".onSubmit caught SecurityException=" + se; - log.error( error ); - display.setMessage( error ); - } - } - - @Override - public void onError( AjaxRequestTarget target, Form form ) - { - log.warn( "GroupDetailPanel.commit.onError" ); - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - add( new SecureIndicatingAjaxButton( GlobalIds.DELETE, GlobalIds.GROUP_MGR, "delete" ) - { - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - log.debug( ".onSubmit Commit" ); - Group group = ( Group ) form.getModel().getObject(); - try - { - groupMgr.delete( group ); - clearDetailFields( "Group name: " + group.getName() + " has been deleted", target, form ); - SaveModelEvent.send( getPage(), this, group, target, SaveModelEvent.Operations.DELETE ); - } - catch ( org.openldap.fortress.SecurityException se ) - { - String error = ".onSubmit caught SecurityException=" + se; - log.error( error ); - display.setMessage( error ); - } - } - - @Override - public void onError( AjaxRequestTarget target, Form form ) - { - log.warn( "GroupDetailPanel.delete.onError" ); - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - add( new AjaxSubmitLink( GlobalIds.CANCEL ) - { - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - clearDetailFields( "Group cancelled input form", target, form ); - } - - @Override - public void onError( AjaxRequestTarget target, Form form ) - { - log.warn( "GroupDetailPanel.cancel.onError" ); - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - - add( new SecureIndicatingAjaxButton( "memberProps.add", GlobalIds.GROUP_MGR, "addProperty" ) - { - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - String msg = "clicked on memberProps.add"; - if ( VUtil.isNotNullOrEmpty( memberPropsSelection ) ) - { - msg += " selection:" + memberPropsSelection; - Group group = ( Group ) form.getModel().getObject(); - int idx = memberPropsSelection.indexOf( '=' ); - if ( idx != -1 ) - { - String key = memberPropsSelection.substring( 0, idx ); - String val = memberPropsSelection.substring( idx + 1); - try - { - Group newGroup = groupMgr.add( group, key, val ); - group.setProperties( newGroup.getProperties() ); - memberPropsCB = new ComboBox( "memberProps", new PropertyModel( form, "memberPropsSelection" ), group.getPropList() ); - form.addOrReplace( memberPropsCB ); - } - catch( org.openldap.fortress.SecurityException se) - { - String error = "Failed add property: " + memberPropsSelection + ", SecurityException=" + se; - log.warn( error ); - display.setMessage( error ); - } - } - memberPropsSelection = ""; - component = editForm; - msg += ", was added"; - } - else - { - msg += ", no action taken because property selection is empty"; - } - display.setMessage( msg ); - log.debug( msg ); - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - - add( new SecureIndicatingAjaxButton( "memberProps.delete", GlobalIds.GROUP_MGR, "deleteProperty" ) - { - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - String msg = "clicked on memberProps.delete"; - if ( VUtil.isNotNullOrEmpty( memberPropsSelection ) ) - { - msg += " selection:" + memberPropsSelection; - Group group = ( Group ) form.getModel().getObject(); - if ( group.getProperties() != null ) - { - int idx = memberPropsSelection.indexOf( '=' ); - if ( idx != -1 ) - { - String key = memberPropsSelection.substring( 0, idx ); - String val = memberPropsSelection.substring( idx + 1); - try - { - Group newGroup = groupMgr.delete( group, key, val ); - group.setProperties( newGroup.getProperties() ); - memberPropsCB = new ComboBox( "memberProps", new PropertyModel( form, "memberPropsSelection" ), group.getPropList() ); - form.addOrReplace( memberPropsCB ); - } - catch( org.openldap.fortress.SecurityException se) - { - String error = "Failed delete property: " + memberPropsSelection + ", SecurityException=" + se; - log.warn( error ); - display.setMessage( error ); - } - } - memberPropsSelection = ""; - component = editForm; - msg += ", was removed"; - } - else - { - msg += ", no action taken because group does not have properties set"; - } - } - else - { - msg += ", no action taken because property selection is empty"; - } - display.setMessage( msg ); - log.debug( msg ); - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - - add( new SecureIndicatingAjaxButton( "member.assign", GlobalIds.GROUP_MGR, "assign" ) - { - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - Group group = ( Group ) form.getModel().getObject(); - if( VUtil.isNotNullOrEmpty( memberAssign ) ) - { - try - { - // TODO: figure out how to get the table to refresh its values here: - String userId = GlobalUtils.getRdn( memberAssign ); - Group newGroup = groupMgr.assign( group, userId ); - group.setMembers( newGroup.getMembers() ); - - String msg = "Group: " + group.getName() + ", member: " + memberAssign + ", has been assigned"; - memberAssign = ""; - form.add( memberAssignTF ); - addMemberTable( group ); - display.setMessage( msg ); - log.debug( msg ); - } - catch( org.openldap.fortress.SecurityException se) - { - String error = "Failed assign user: " + memberAssign + ", SecurityException=" + se; - log.warn( error ); - display.setMessage( error ); - } - } - else - { - String msg = "Group: " + group.getName() + ", assign op ignored, no value entered for assignment"; - display.setMessage( msg ); - log.debug( msg ); - } - component = editForm; - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - } - - private void clearDetailFields( String msg, AjaxRequestTarget target, Form form ) - { - setModelObject( new Group() ); - memberPropsCB = new ComboBox( "memberProps", new PropertyModel( form, "memberPropsSelection" ), new ArrayList() ); - editForm.addOrReplace( memberPropsCB ); - table.refresh( target ); - table = new DataTable( "memberstable", columns, createDataProvider( null ), ROWS, options ); - editForm.addOrReplace( table ); - modelChanged(); - component = editForm; - display.setMessage( msg ); - } - - private List newColumnList() - { - List columns = new ArrayList(); - columns.add( new PropertyColumn( "#", "index", 30 ) ); - columns.add( new PropertyColumn( "User DN", "userDn", 150 ) ); - columns.add(new CommandsColumn("", 100) { - - private static final long serialVersionUID = 1L; - - @Override - public List newButtons() - { - return Arrays.asList( new ColumnButton( "remove", "userDn" ) ); - } - }); - - return columns; - } - - private IDataProvider createDataProvider( List members ) - { - ListDataProvider results; - if ( VUtil.isNotNullOrEmpty( members ) ) - { - int ctr = 0; - List tableMembers = new ArrayList(); - for(String member : members) - { - Member tableMember = new Member(); - tableMember.setUserDn( member ); - tableMember.setIndex( ++ctr ); - tableMembers.add( tableMember ); - } - results = new ListDataProvider( tableMembers ); - } - else - { - results = new ListDataProvider( new ArrayList() ); - } - return results; - } - - private void addUserSearchModal() - { - final ModalWindow membersModalWindow; - add( membersModalWindow = new ModalWindow( "membersmodal" ) ); - final UserSearchModalPanel memberSearchModalPanel = new UserSearchModalPanel( membersModalWindow.getContentId(), membersModalWindow ); - membersModalWindow.setContent( memberSearchModalPanel ); - membersModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback() - { - @Override - public void onClose( AjaxRequestTarget target ) - { - User user = memberSearchModalPanel.getUserSelection(); - if ( user != null ) - { - setMemberAssign( user.getDn() ); - target.add( memberAssignTF ); - } - } - } ); - - add( new SecureIndicatingAjaxButton( "members.search", GlobalIds.REVIEW_MGR, "findUsers" ) - { - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - String msg = "clicked on members search"; - msg += memberAssign != null ? ": " + memberAssign : ""; - display.setMessage( msg ); - log.debug( msg ); - if(VUtil.isNotNullOrEmpty( memberAssign )) - { - memberSearchModalPanel.setSearchVal(memberAssign); - } - target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE ); - membersModalWindow.show( target ); - } - - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - - membersModalWindow.setTitle( "Members Selection Modal" ); - membersModalWindow.setInitialWidth( 450 ); - membersModalWindow.setInitialHeight( 450 ); - membersModalWindow.setCookieName( "members-modal" ); - } - - @Override - public void onEvent( final IEvent event ) - { - if ( event.getPayload() instanceof SelectModelEvent ) - { - SelectModelEvent modelEvent = ( SelectModelEvent ) event.getPayload(); - final Group group = ( Group ) modelEvent.getEntity(); - this.setModelObject(group); - memberPropsSelection = ""; - if(VUtil.isNotNullOrEmpty(group.getProperties())) - { - memberPropsCB = new ComboBox( "memberProps", new PropertyModel( this, "memberPropsSelection" ), group.getPropList() ); - editForm.addOrReplace(memberPropsCB); - } - addMemberTable( group ); - String msg = "Group Name: " + group.getName() + " has been selected"; - display.setMessage( msg ); - log.debug( msg ); - component = editForm; - } - else if ( event.getPayload() instanceof AjaxRequestTarget ) - { - if ( component != null ) - { - AjaxRequestTarget target = ( ( AjaxRequestTarget ) event.getPayload() ); - log.debug( ".onEvent AjaxRequestTarget: " + target.toString() ); - target.add( component ); - component = null; - } - - display.display( ( AjaxRequestTarget ) event.getPayload() ); - } - } - - private void addMemberTable( final Group group ) - { - table = new DataTable( "memberstable", columns, createDataProvider( group.getMembers() ), ROWS, - options ) - { - /** - * Triggered when a column button is clicked. - */ - @Override - public void onClick(AjaxRequestTarget target, ColumnButton button, String value) - { - if( VUtil.isNotNullOrEmpty( value ) ) - { - try - { - // TODO: figure out how to get the table to refresh its values here: - String userId = GlobalUtils.getRdn( value ); - Group newGroup = groupMgr.deassign( group, userId ); - group.setMembers( newGroup.getMembers() ); - table.refresh( target ); - String msg = "User: " + userId + ", deassigned from group: " + group.getName(); - display.setMessage( msg ); - log.debug( msg ); - } - catch( org.openldap.fortress.SecurityException se) - { - String error = "Failed deassign user: " + value + ", SecurityException=" + se; - log.warn( error ); - display.setMessage( error ); - } - } - } - }; - - addOrReplace( table ); - } - - public String getMemberAssign() - { - return memberAssign; - } - - public void setMemberAssign( String memberAssign ) - { - this.memberAssign = memberAssign; - } - - public String getMemberPropsSelection() - { - return memberPropsSelection; - } - - public void setMemberPropsSelection( String memberPropsSelection ) - { - this.memberPropsSelection = memberPropsSelection; - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/GroupListPanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/GroupListPanel.java b/src/main/java/org/openldap/commander/panel/GroupListPanel.java deleted file mode 100644 index 537f5e9..0000000 --- a/src/main/java/org/openldap/commander/panel/GroupListPanel.java +++ /dev/null @@ -1,355 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -import com.inmethod.grid.IGridColumn; -import com.inmethod.grid.SizeUnit; -import com.inmethod.grid.column.PropertyColumn; -import com.inmethod.grid.treegrid.TreeGrid; -import org.apache.log4j.Logger; -import org.apache.wicket.Component; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.attributes.AjaxCallListener; -import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; -import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; -import org.apache.wicket.event.IEvent; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; -import org.apache.wicket.markup.html.form.FormComponentPanel; -import org.apache.wicket.markup.html.form.Radio; -import org.apache.wicket.markup.html.form.RadioGroup; -import org.apache.wicket.markup.html.form.TextField; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.PropertyModel; -import org.openldap.commander.GlobalIds; -import org.openldap.commander.GlobalUtils; -import org.openldap.commander.GroupListModel; -import org.openldap.commander.SaveModelEvent; -import org.openldap.commander.SecureIndicatingAjaxButton; -import org.openldap.commander.SecureIndicatingAjaxLink; -import org.openldap.commander.SelectModelEvent; -import org.openldap.fortress.ldap.group.Group; -import org.openldap.fortress.rbac.FortEntity; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.Model; -import org.openldap.fortress.rbac.User; -import org.openldap.fortress.util.attr.VUtil; - -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeModel; -import javax.swing.tree.TreeNode; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * - * @author Shawn McKinney - * @version $Rev$ - */ -public class GroupListPanel extends FormComponentPanel -{ - private static final Logger log = Logger.getLogger(GroupListPanel.class.getName()); - private Form listForm; - private DefaultTreeModel treeModel; - private DefaultMutableTreeNode node; - private TreeGrid grid; - private DefaultMutableTreeNode rootNode; - private TextField searchValFld; - private RadioGroup radioGroup; - private String searchVal; - private char selectedRadioButton; - private static final char NAMES = 'N'; - private static final char MEMBERS = 'M'; - - public GroupListPanel(String id) - { - super( id ); - GroupListModel groupListModel = new GroupListModel( new Group( "" ), GlobalUtils.getRbacSession( this ) ); - setDefaultModel(groupListModel); - addGrid(); - radioGroup = new RadioGroup("searchOptions", new PropertyModel(this, "selectedRadioButton")); - add( radioGroup ); - Radio groupRb = new Radio("groupRb", new Model(new Character(NAMES))); - radioGroup.add(groupRb); - Radio memberRb = new Radio("memberRb", new Model(new Character(MEMBERS))); - radioGroup.add(memberRb); - addMemberSearchModal( memberRb ); - radioGroup.setOutputMarkupId( true ); - radioGroup.setRenderBodyOnly( false ); - searchValFld = new TextField(GlobalIds.SEARCH_VAL, new PropertyModel(this, GlobalIds.SEARCH_VAL)); - searchValFld.setOutputMarkupId( true ); - AjaxFormComponentUpdatingBehavior ajaxUpdater = new AjaxFormComponentUpdatingBehavior(GlobalIds.ONBLUR) - { - @Override - protected void onUpdate(final AjaxRequestTarget target) - { - target.add( searchValFld ); - } - }; - searchValFld.add(ajaxUpdater); - radioGroup.add( searchValFld ); - - this.listForm.add(radioGroup); - selectedRadioButton = NAMES; - - this.listForm.add( new SecureIndicatingAjaxButton( GlobalIds.SEARCH, GlobalIds.GROUP_MGR, "find" ) - { - @Override - protected void onSubmit( AjaxRequestTarget target, Form form ) - { - log.debug( ".search.onSubmit selected radio button: " + selectedRadioButton ); - info( "Searching Group Objects..." ); - if ( !VUtil.isNotNullOrEmpty( searchVal ) ) - { - searchVal = ""; - } - Group srchObject = new Group(); - switch ( selectedRadioButton ) - { - case NAMES: - log.debug( ".onSubmit GROUP RB selected" ); - srchObject.setName( searchVal ); - break; - case MEMBERS: - log.debug( ".onSubmit MEMBERS RB selected" ); - srchObject.setMember( searchVal ); - break; - } - setDefaultModel( new GroupListModel( srchObject, GlobalUtils.getRbacSession( this ) ) ); - treeModel.reload(); - rootNode.removeAllChildren(); - List groups = ( List ) getDefaultModelObject(); - if ( VUtil.isNotNullOrEmpty( groups ) ) - { - for ( Group group : groups ) - rootNode.add( new DefaultMutableTreeNode( group ) ); - info( "Search returned " + groups.size() + " matching objects" ); - } - else - { - info( "No matching objects found" ); - } - target.add( grid ); - } - - @Override - public void onError( AjaxRequestTarget target, Form form ) - { - log.warn( ".search.onError" ); - target.add(); - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - } ); - } - - @Override - public void onEvent(IEvent event) - { - if (event.getPayload() instanceof SaveModelEvent) - { - SaveModelEvent modelEvent = (SaveModelEvent) event.getPayload(); - switch (modelEvent.getOperation()) - { - case ADD: - add(modelEvent.getEntity()); - break; - case UPDATE: - //modelEvent. - modelChanged(); - break; - case DELETE: - prune(); - break; - default: - log.error( "onEvent caught invalid operation" ); - break; - } - AjaxRequestTarget target = ((SaveModelEvent) event.getPayload()).getAjaxRequestTarget(); - log.debug(".onEvent AJAX - GroupListPanel - SaveModelEvent: " + target.toString()); - } - } - - private void removeSelectedItems(TreeGrid grid) - { - Collection> selected = grid.getSelectedItems(); - for (IModel model : selected) - { - DefaultMutableTreeNode node = model.getObject(); - treeModel.removeNodeFromParent(node); - Group group = (Group) node.getUserObject(); - log.debug(".removeSelectedItems user node: " + group.getName()); - //List groups = ((List) getDefaultModel().getObject()); - //groups.remove(group.getName()); - } - } - - private DefaultTreeModel createTreeModel(List groups) - { - DefaultTreeModel model; - Group rootObject = new Group( ); - rootNode = new DefaultMutableTreeNode(rootObject); - model = new DefaultTreeModel(rootNode); - if (groups == null) - log.debug("no Groups found"); - else - { - log.debug(".createTreeModel Groups found:" + groups.size()); - for (Group group : groups) - rootNode.add(new DefaultMutableTreeNode(group)); - } - return model; - } - - private void addGrid() - { - List> columns = - new ArrayList>(); - - - PropertyColumn groupName = new PropertyColumn( - Model.of("Group Name"), "userObject.Name"); - groupName.setInitialSize( 400 ); - columns.add(groupName); - - PropertyColumn description = new PropertyColumn( - Model.of("Description"), "userObject.Description"); - description.setInitialSize( 400 ); - columns.add(description); - - PropertyColumn protocol = new PropertyColumn(new Model("Protocol"), "userObject.Protocol"); - protocol.setInitialSize( 400 ); - columns.add(protocol); - - List groups = (List) getDefaultModel().getObject(); - treeModel = createTreeModel(groups); - grid = new TreeGrid("grouptreegrid", treeModel, columns) - { - @Override - public void selectItem(IModel itemModel, boolean selected) - { - node = (DefaultMutableTreeNode) itemModel.getObject(); - if(!node.isRoot()) - { - Group group = (Group) node.getUserObject(); - log.debug("TreeGrid.addGrid.selectItem selected group =" + group.getName()); - if (super.isItemSelected(itemModel)) - { - log.debug("TreeGrid.addGrid.selectItem item is selected"); - super.selectItem(itemModel, false); - } - else - { - super.selectItem(itemModel, true); - SelectModelEvent.send(getPage(), this, group); - } - } - } - }; - grid.setContentHeight(50, SizeUnit.EM); - grid.setAllowSelectMultiple(false); - grid.setClickRowToSelect(true); - grid.setClickRowToDeselect(false); - grid.setSelectToEdit(false); - // expand the root node - grid.getTreeState().expandNode((TreeNode) treeModel.getRoot()); - this.listForm = new Form("grouplistform"); - this.listForm.add(grid); - add(this.listForm); - grid.setOutputMarkupId(true); - } - - private void addMemberSearchModal( Radio memberRb ) - { - final ModalWindow memberModalWindow; - listForm.add( memberModalWindow = new ModalWindow( "membersearchmodal" ) ); - final UserSearchModalPanel userSearchModalPanel = new UserSearchModalPanel( memberModalWindow.getContentId(), memberModalWindow ); - memberModalWindow.setContent( userSearchModalPanel ); - memberModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback() - { - @Override - public void onClose( AjaxRequestTarget target ) - { - User user = userSearchModalPanel.getUserSelection(); - if ( user != null ) - { - searchVal = user.getUserId(); - selectedRadioButton = MEMBERS; - target.add( radioGroup ); - } - } - } ); - - memberRb.add( new SecureIndicatingAjaxLink( "memberAssignLinkLbl", GlobalIds.REVIEW_MGR, "findUsers" ) - { - public void onClick(AjaxRequestTarget target) - { - String msg = "clicked on ou search"; - msg += "memberSelection: " + searchVal; - userSearchModalPanel.setSearchVal( searchVal ); - log.debug( msg ); - target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE ); - memberModalWindow.show( target ); - } - @Override - protected void updateAjaxAttributes( AjaxRequestAttributes attributes ) - { - super.updateAjaxAttributes( attributes ); - AjaxCallListener ajaxCallListener = new AjaxCallListener() - { - @Override - public CharSequence getFailureHandler( Component component ) - { - return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML; - } - }; - attributes.getAjaxCallListeners().add( ajaxCallListener ); - } - }); - - memberModalWindow.setTitle( "Member Search Modal" ); - memberModalWindow.setInitialWidth( 450 ); - memberModalWindow.setInitialHeight( 450 ); - memberModalWindow.setCookieName( "member-modal" ); - } - - public void add(FortEntity entity) - { - if (getDefaultModelObject() != null) - { - //List groups = ((List) getDefaultModelObject()); - //groups.add( ( Group ) entity ); - treeModel.insertNodeInto(new DefaultMutableTreeNode(entity), rootNode, 0); - } - } - - public void prune() - { - removeSelectedItems(grid); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/InfoPanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/InfoPanel.java b/src/main/java/org/openldap/commander/panel/InfoPanel.java deleted file mode 100644 index f219db4..0000000 --- a/src/main/java/org/openldap/commander/panel/InfoPanel.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -import org.apache.log4j.Logger; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.FormComponentPanel; -import org.apache.wicket.markup.html.panel.FeedbackPanel; -import org.apache.wicket.model.PropertyModel; -import org.apache.wicket.markup.html.basic.Label; - - -/** - * @author Shawn McKinney - * @version $Rev$ - * Date: 5/20/13 - */ -public class InfoPanel extends FormComponentPanel -{ - private static final String CLS_NM = InfoPanel.class.getName(); - private static final Logger log = Logger.getLogger( CLS_NM ); - private Form infoForm; - - public Displayable getDisplay() - { - return ( Displayable ) this.infoForm; - } - - public InfoPanel( String id ) - { - super( id ); - init( "ready to accept input" ); - } - - public InfoPanel( String id, String msg ) - { - super( id ); - init( msg ); - } - - private void init( String msg ) - { - this.infoForm = new InfoForm( "infoFields", msg ); - this.infoForm.setOutputMarkupId( true ); - add( infoForm ); - } - - public class InfoForm extends Form implements Displayable - { - private Label infoTextField; - private FeedbackPanel feedbackPanel; - private String infoField; - - @Override - public void onError() - { - log.debug( "InfoPanel.onError" ); - } - - @Override - public void onSubmit() - { - log.debug( "InfoPanel.onSubmit message: " + infoField ); - } - - public InfoForm( String id, final String message ) - { - super( id ); - setModel( new PropertyModel( this, "infoField" ) ); - infoField = message; - infoTextField = new Label( "infoField", new PropertyModel( this, "infoField" ) ); - add( infoTextField ); - infoTextField.setOutputMarkupId( true ); - feedbackPanel = new FeedbackPanel( "feedback" ); - feedbackPanel.setOutputMarkupId( true ); - add( feedbackPanel ); - } - - @Override - public void setMessage( String message ) - { - infoField = message; - } - - @Override - public void display() - { - log.debug( ".display message (no AJAX): " + infoField ); - add( infoTextField ); - add( feedbackPanel ); - } - - @Override - public void display( AjaxRequestTarget target ) - { - log.debug( ".display message (AJAX): " + infoField ); - target.add( infoTextField ); - target.add( feedbackPanel ); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/JpegImage.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/JpegImage.java b/src/main/java/org/openldap/commander/panel/JpegImage.java deleted file mode 100644 index cb8a58f..0000000 --- a/src/main/java/org/openldap/commander/panel/JpegImage.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * This work is part of OpenLDAP Software . - * - * Copyright 1998-2014 The OpenLDAP Foundation. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted only as authorized by the OpenLDAP - * Public License. - * - * A copy of this license is available in the file LICENSE in the - * top-level directory of the distribution or, alternatively, at - * . - */ - -package org.openldap.commander.panel; - -import org.apache.wicket.markup.html.image.Image; -import org.apache.wicket.request.resource.DynamicImageResource; -import org.apache.wicket.request.resource.IResource; - -/** - * - * @author Shawn McKinney - * @version $Rev$ - */ -public abstract class JpegImage extends Image -{ - public JpegImage(String id) - { - super(id); - setImageResource(new DynamicImageResource() - { - protected byte[] getImageData(IResource.Attributes attributes) - { - return getPhoto(); - } - }); - } - protected abstract byte[] getPhoto(); -} http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/Member.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/openldap/commander/panel/Member.java b/src/main/java/org/openldap/commander/panel/Member.java deleted file mode 100644 index 5885621..0000000 --- a/src/main/java/org/openldap/commander/panel/Member.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.openldap.commander.panel; - -import java.io.Serializable; - -/** - * Created with IntelliJ IDEA. - * User: smckinn - * Date: 26/05/14 - * Time: 22:05 - * To change this template use File | Settings | File Templates. - */ -public class Member implements Serializable -{ - private String userDn; - private int index; - - public String getUserDn() - { - return userDn; - } - - public void setUserDn( String userDn ) - { - this.userDn = userDn; - } - - public int getIndex() - { - return index; - } - - public void setIndex( int index ) - { - this.index = index; - } -}