You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2014/11/11 21:35:23 UTC
[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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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<Integer> timeout = new Spinner<Integer>(TIMEOUT);
- timeout.setRequired(false);
- add(timeout);
-
- // Add the dayMask's day of week CheckBoxes:
- sundayCB = new CheckBox(SUNDAY, new PropertyModel<Boolean>(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<Boolean>(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<Boolean>(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<Boolean>(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<Boolean>(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<Boolean>(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<Boolean>(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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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<Date>(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<Date>(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<Date>(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<Date>(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<Date>(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<Date>(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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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<Date>(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<Date>(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<Date>(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<Date>(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<Date>(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<Date>(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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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<Group>( new Group() ) );
- editForm.setOutputMarkupId( true );
- this.display = display;
- add( editForm );
- }
-
- public class GroupDetailForm extends Form
- {
- private Component component;
- private DataTable<Member> table;
- private List<IColumn> columns;
- private Options options;
- private String memberAssign;
- private TextField memberAssignTF;
- private ComboBox<String> memberPropsCB;
- private String memberPropsSelection;
-
- public GroupDetailForm( String id, final IModel<Group> 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<String>( "memberProps", new PropertyModel<String>( this, "memberPropsSelection" ), new ArrayList<String>() );
- 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<Member>( "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<String>( "memberProps", new PropertyModel<String>( 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<String>( "memberProps", new PropertyModel<String>( 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<String>( "memberProps", new PropertyModel<String>( form, "memberPropsSelection" ), new ArrayList<String>() );
- editForm.addOrReplace( memberPropsCB );
- table.refresh( target );
- table = new DataTable<Member>( "memberstable", columns, createDataProvider( null ), ROWS, options );
- editForm.addOrReplace( table );
- modelChanged();
- component = editForm;
- display.setMessage( msg );
- }
-
- private List<IColumn> newColumnList()
- {
- List<IColumn> columns = new ArrayList<IColumn>();
- 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<ColumnButton> newButtons()
- {
- return Arrays.asList( new ColumnButton( "remove", "userDn" ) );
- }
- });
-
- return columns;
- }
-
- private IDataProvider<Member> createDataProvider( List<String> members )
- {
- ListDataProvider<Member> results;
- if ( VUtil.isNotNullOrEmpty( members ) )
- {
- int ctr = 0;
- List<Member> tableMembers = new ArrayList<Member>();
- for(String member : members)
- {
- Member tableMember = new Member();
- tableMember.setUserDn( member );
- tableMember.setIndex( ++ctr );
- tableMembers.add( tableMember );
- }
- results = new ListDataProvider<Member>( tableMembers );
- }
- else
- {
- results = new ListDataProvider<Member>( new ArrayList<Member>() );
- }
- 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<String>( "memberProps", new PropertyModel<String>( 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<Member>( "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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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<DefaultTreeModel, DefaultMutableTreeNode, String> 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<String>(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<Group>( srchObject, GlobalUtils.getRbacSession( this ) ) );
- treeModel.reload();
- rootNode.removeAllChildren();
- List<Group> groups = ( List<Group> ) 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<DefaultTreeModel, DefaultMutableTreeNode, String> grid)
- {
- Collection<IModel<DefaultMutableTreeNode>> selected = grid.getSelectedItems();
- for (IModel<DefaultMutableTreeNode> model : selected)
- {
- DefaultMutableTreeNode node = model.getObject();
- treeModel.removeNodeFromParent(node);
- Group group = (Group) node.getUserObject();
- log.debug(".removeSelectedItems user node: " + group.getName());
- //List<Group> groups = ((List<Group>) getDefaultModel().getObject());
- //groups.remove(group.getName());
- }
- }
-
- private DefaultTreeModel createTreeModel(List<Group> 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<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>> columns =
- new ArrayList<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>>();
-
-
- PropertyColumn groupName = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Group Name"), "userObject.Name");
- groupName.setInitialSize( 400 );
- columns.add(groupName);
-
- PropertyColumn description = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- 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<Group> groups = (List<Group>) getDefaultModel().getObject();
- treeModel = createTreeModel(groups);
- grid = new TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String>("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<Group> groups = ((List<Group>) 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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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<String>( 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 <http://www.openldap.org/>.
- *
- * 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
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-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;
- }
-}