Skip to content

Commit

Permalink
Merge pull request #1215 from apromore/bug-AP-4496/ResetTime
Browse files Browse the repository at this point in the history
* Added changes to Calendar zone display
  • Loading branch information
dreamind committed Aug 17, 2021
2 parents fa90dba + 91fc5ea commit 9800d89
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public CalendarModelBuilder withWorkDay(DayOfWeek dayOfWeek, OffsetTime starOffs
public CalendarModelBuilder withAllDayAllTime() {
for (DayOfWeek dayOfWeek : DayOfWeek.values()) {
withWorkDay(dayOfWeek, OffsetTime.of(0, 0, 0, 0, ZoneOffset.of(model.getZoneId())),
OffsetTime.of(23, 59, 59, 0, ZoneOffset.of(model.getZoneId())), true);
OffsetTime.of(23, 59, 59, 999999999, ZoneOffset.of(model.getZoneId())), true);
}
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,21 @@

package org.apromore.plugin.portal.calendar;

import java.util.Objects;

import lombok.Getter;
import lombok.Setter;

public class Zone {
import lombok.ToString;
@ToString
public class Zone {
@Getter @Setter private String id;
@Getter @Setter private String displayName;
@Getter @Setter private String zoneDisplayName;


public Zone(String id, String displayName) {
this.id = id;
this.displayName = displayName;
this.zoneDisplayName = displayName;

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.TextStyle;
import java.time.zone.ZoneRules;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
Expand All @@ -37,6 +39,7 @@
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;

import org.apromore.calendar.exception.CalendarNotExistsException;
import org.apromore.calendar.model.CalendarModel;
Expand All @@ -53,6 +56,7 @@
import org.zkoss.json.JSONArray;
import org.zkoss.json.JSONObject;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.ClientInfoEvent;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.ForwardEvent;
Expand Down Expand Up @@ -98,7 +102,7 @@ public class Calendar extends SelectorComposer<Window> {
public int compare(Object o1, Object o2) {
String input = (String) o1;
Zone zone = (Zone) o2;
return zone.getDisplayName().toLowerCase().contains(input.toLowerCase()) ? 0 : 1;
return zone.getZoneDisplayName().toLowerCase().contains(input.toLowerCase()) ? 0 : 1;
}
};

Expand Down Expand Up @@ -154,7 +158,8 @@ public void doAfterCompose(Window win) throws Exception {
populateTimeZone();
initialize();
win.setTitle("Custom Calendar - " + calendarModel.getName());



actionBridge.addEventListener("onLoaded", new EventListener<Event>() {
@Override
public void onEvent(Event event) throws Exception {
Expand Down Expand Up @@ -228,8 +233,9 @@ public void onEvent(Event event) throws Exception {
endMin = 59;
}
}
dowItem.setStartTime(OffsetTime.from(OffsetTime.of(LocalTime.of(startHour, startMin), ZoneOffset.UTC)));
dowItem.setEndTime(OffsetTime.from(OffsetTime.of(LocalTime.of(endHour, endMin), ZoneOffset.UTC)));
OffsetTime previousStarTime=dowItem.getStartTime();
dowItem.setStartTime(OffsetTime.from(OffsetTime.of(LocalTime.of(startHour, startMin), previousStarTime.getOffset())));
dowItem.setEndTime(OffsetTime.from(OffsetTime.of(LocalTime.of(endHour, endMin), previousStarTime.getOffset())));
refresh(dowItem);
Clients.evalJavaScript("Ap.calendar.buildRow(" + dowIndex + ")");
}
Expand All @@ -238,25 +244,37 @@ public void onEvent(Event event) throws Exception {

public void populateTimeZone() {
zoneModel = new ListModelList<Zone>();

Set<String> zoneIds = ZoneId.getAvailableZoneIds();


Zone selectedZone = null;
for (String id : zoneIds) {
ZoneId zoneId = ZoneId.of(id);
Zone currentZone = new Zone(zoneId.getId(), zoneId.getDisplayName(TextStyle.FULL, Locale.US));
Zone currentZone = new Zone(zoneId.getId(), getZoneDisplayDescription(zoneId));

zoneModel.add(currentZone);
if (zoneId.equals(ZoneId.of(calendarModel.getZoneId()))
|| (selectedZone == null && zoneId.equals(ZoneId.systemDefault()))) {
selectedZone = currentZone;
}

}
zoneModel.addToSelection(selectedZone);
zoneModel.setMultiple(false);
ListModel listSubModel = ListModels.toListSubModel(zoneModel, zoneComparator, zoneIds.size());
zoneCombobox.setModel(listSubModel);
}



private String getZoneDisplayDescription(ZoneId zoneId) {
StringBuffer buffer=new StringBuffer();
buffer.append(zoneId.getId()).append(" ");
buffer.append("(GMT "+zoneId.getRules().getOffset(LocalDateTime.now())+")");

return buffer.toString();
}

public WorkDayModel getDayOfWeekItem(int dowIndex) {
return (WorkDayModel) dayOfWeekListbox.getModel().getElementAt(dowIndex - 1);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public void onClickPublishBtn() {
public void onClickAddNewCalendar() {
CalendarModel model;
try {
String calendarName = "Generic Calender 9 to 5 created on" + LocalDateTime.now();
String calendarName = "Generic Calender 9 to 5 created on " + LocalDateTime.now();
model = calendarService.createBusinessCalendar(calendarName, true, ZoneId.systemDefault().toString());
populateCalendarList();
Long calendarId = model.getId();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
<label style="padding-right: 5px">Time zone</label>
<combobox id="zoneCombobox" placeholder="Select a time zone" width="270px">
<template name="model">
<comboitem label="${each.displayName}" />
<comboitem label="${each.zoneDisplayName}" />
</template>
</combobox>
</hbox>
Expand Down

0 comments on commit 9800d89

Please sign in to comment.