Skip to content

Commit

Permalink
modals and message dialogs #161
Browse files Browse the repository at this point in the history
  • Loading branch information
vegegoku committed Jan 6, 2019
1 parent 78da1c6 commit dc0995a
Show file tree
Hide file tree
Showing 12 changed files with 444 additions and 407 deletions.
10 changes: 5 additions & 5 deletions src/main/java/org/dominokit/domino/ui/dialogs/MessageDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,18 @@ public static MessageDialog createMessage(String title, Node content, CloseHandl

public static MessageDialog createMessage(Node content, CloseHandler closeHandler) {
MessageDialog messageDialog = new MessageDialog();
messageDialog.style.add(MessageDialogStyles.MESSAGE_DIALOG);

messageDialog.setSize(ModalSize.ALERT);
messageDialog.modal.getModalContent().style().setTextAlign("center");
messageDialog.modal.getModalFooter().style().setTextAlign("center");
messageDialog.modal.getModalHeader()
.insertBefore(messageDialog.iconContainer, messageDialog.modal.getModalHeader().firstChild());
messageDialog.hideHeader();
messageDialog.setAutoClose(true);
messageDialog.onClose(closeHandler::onClose);
messageDialog.appendChild(content);
okButton = Button.create("OK").linkify();
okButton.asElement().style.setProperty("min-width", "120px");
okButton = Button.create("OK")
.styler(style -> style.add(MessageDialogStyles.DIALOG_BUTTON))
.linkify();
messageDialog.appendFooterChild(okButton);
okButton.getClickableElement().addEventListener(EventType.click.getName(), evt -> messageDialog.close());

Expand Down Expand Up @@ -141,7 +141,7 @@ public MessageDialog warning() {

private static DominoElement<HTMLElement> createMessageIcon(HTMLElement element) {
return DominoElement.of(element)
.styler(style -> style.add("message-icon"));
.styler(style -> style.add(MessageDialogStyles.MESSAGE_ICON));
}

private void initIcon() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.dominokit.domino.ui.dialogs;

public class MessageDialogStyles {
public static final String MESSAGE_DIALOG = "message-dialog";
public static final String DIALOG_BUTTON = "dialog-button";
public static final String MESSAGE_ICON = "message-icon";
}
28 changes: 4 additions & 24 deletions src/main/java/org/dominokit/domino/ui/modals/BaseModal.java
Original file line number Diff line number Diff line change
Expand Up @@ -155,16 +155,6 @@ private void handleForwardTab(Event evt) {
}
}

/**
* @deprecated use {@link #appendChild(Node)}
*/
@Deprecated
@Override
public T appendContent(Node content) {
modal.modalBody.appendChild(content);
return (T) this;
}

@Override
public T appendChild(Node content) {
modal.modalBody.appendChild(content);
Expand All @@ -187,16 +177,6 @@ public T appendFooterChild(IsElement content) {
return appendFooterChild(content.asElement());
}

/**
* @deprecated use {@link #appendChild(Node)}
*/
@Deprecated
@Override
public T appendFooterContent(Node content) {
modal.modalFooter.appendChild(content);
return (T) this;
}

@Override
public T large() {
return setSize(ModalSize.LARGE);
Expand Down Expand Up @@ -257,7 +237,7 @@ public T open() {

activeElementBeforeOpen = DominoDom.document.activeElement;
addBackdrop();
style().add("in");
style().add(ModalStyles.IN);
style().setDisplay("block");
if (nonNull(firstFocusElement)) {
firstFocusElement.focus();
Expand All @@ -281,7 +261,7 @@ public T open() {
public void addBackdrop() {
if (opened_dialogs <= 0) {
document.body.appendChild(ModalBackDrop.INSTANCE);
DominoElement.of(document.body).style().add("modal-open");
DominoElement.of(document.body).style().add(ModalStyles.MODAL_OPEN);
} else {
Z_INDEX = Z_INDEX + 10;
ModalBackDrop.INSTANCE.style.setProperty("z-index", Z_INDEX + "");
Expand All @@ -292,7 +272,7 @@ public void addBackdrop() {
public void removeBackDrop() {
if (opened_dialogs <= 0) {
ModalBackDrop.INSTANCE.remove();
DominoElement.of(document.body).style().remove("modal-open");
DominoElement.of(document.body).style().remove(ModalStyles.MODAL_OPEN);
} else {
Z_INDEX = Z_INDEX - 10;
ModalBackDrop.INSTANCE.style.setProperty("z-index", Z_INDEX + "");
Expand All @@ -317,7 +297,7 @@ private void initFocusElements() {
public T close() {
opened_dialogs = opened_dialogs - 1;

asElement().classList.remove("in");
asElement().classList.remove(ModalStyles.IN);
asElement().style.display = "none";
if (nonNull(activeElementBeforeOpen))
activeElementBeforeOpen.focus();
Expand Down
25 changes: 7 additions & 18 deletions src/main/java/org/dominokit/domino/ui/modals/IsModalDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,11 @@
import org.jboss.gwt.elemento.core.IsElement;

public interface IsModalDialog<T> {
/**
* @deprecated use {@link #appendChild(Node)}
*/
@Deprecated
T appendContent(Node content);

T appendChild(Node content);

T appendChild(IsElement content);

/**
* @deprecated use {@link #appendFooterChild(Node)}
*/
@Deprecated
T appendFooterContent(Node content);

T appendFooterChild(Node content);

T appendFooterChild(IsElement content);
Expand Down Expand Up @@ -79,9 +68,9 @@ public interface IsModalDialog<T> {
T deCenterVertically();

enum ModalSize {
LARGE("modal-lg"),
ALERT("modal-alert"),
SMALL("modal-sm");
LARGE(ModalStyles.MODAL_LG),
ALERT(ModalStyles.MODAL_ALERT),
SMALL(ModalStyles.MODAL_SM);

String style;

Expand All @@ -91,10 +80,10 @@ enum ModalSize {
}

enum ModalType {
BOTTOM_SHEET("bottom-sheet"),
TOP_SHEET("top-sheet"),
LEFT_SHEET("left-sheet"),
RIGHT_SHEET("right-sheet");
BOTTOM_SHEET(ModalStyles.BOTTOM_SHEET),
TOP_SHEET(ModalStyles.TOP_SHEET),
LEFT_SHEET(ModalStyles.LEFT_SHEET),
RIGHT_SHEET(ModalStyles.RIGHT_SHEET);

String style;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@

public class ModalBackDrop {
public static Deque<BaseModal> openedModals = new LinkedList<>();
public static final HTMLDivElement INSTANCE = Elements.div().css("modal-backdrop fade in")
public static final HTMLDivElement INSTANCE = Elements.div()
.css(ModalStyles.MODAL_BACKDROP)
.css(ModalStyles.FADE)
.css(ModalStyles.IN)
.on(EventType.click, event -> {
if (ModalBackDrop.INSTANCE.isEqualNode(Js.uncheckedCast(event.target))) {
closeCurrentOpen();
Expand Down
14 changes: 2 additions & 12 deletions src/main/java/org/dominokit/domino/ui/modals/ModalDialog.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.dominokit.domino.ui.modals;

import elemental2.dom.Node;
import org.dominokit.domino.ui.style.ColorScheme;

public class ModalDialog extends BaseModal<ModalDialog> {

Expand All @@ -23,22 +22,13 @@ public static ModalDialog create() {
return new ModalDialog();
}

public static ModalDialog createPickerModal(String title, ColorScheme colorScheme, Node content) {
public static ModalDialog createPickerModal(String title, Node content) {
ModalDialog modal = ModalDialog.create(title)
.styler(style -> style
.add("picker-modal")
.setMinWidth("275px")
.setWidth("275px")
.setMarginLeft("calc(50% - 137.5px)"))
.add(ModalStyles.PICKER_MODAL))
.small()
.setAutoClose(true)
.appendChild(content);
modal.getHeaderContainerElement().style().setDisplay("none");
modal.getBodyElement().style().setPadding("0px", true);
modal.getContentElement().style().setWidth("275px");
modal.getDialogElement().style().setWidth("275px");
modal.getFooterElement().style().setPadding("0px", true);

return modal;
}

Expand Down
19 changes: 19 additions & 0 deletions src/main/java/org/dominokit/domino/ui/modals/ModalStyles.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.dominokit.domino.ui.modals;

public class ModalStyles {
public static final String MODAL_OPEN = "modal-open";

public static final String MODAL_LG = "modal-lg";
public static final String MODAL_ALERT = "modal-alert";
public static final String MODAL_SM = "modal-sm";

public static final String BOTTOM_SHEET = "bottom-sheet";
public static final String TOP_SHEET = "top-sheet";
public static final String LEFT_SHEET = "left-sheet";
public static final String RIGHT_SHEET = "right-sheet";

public static final String MODAL_BACKDROP = "modal-backdrop";
public static final String FADE = "fade";
public static final String IN = "in";
public static final String PICKER_MODAL = "picker-modal";
}
147 changes: 9 additions & 138 deletions src/main/java/org/dominokit/domino/ui/public/css/dialogs/dialogs.css
Original file line number Diff line number Diff line change
@@ -1,145 +1,16 @@
.message-dialog .modal-content,
.message-dialog .modal-footer {
text-align: center;
}

.message-dialog .dialog-button{
min-width: 120px;
}

.message-icon {
margin-bottom: 15px;
font-size: 72px;
border-radius: 50%;
height: 78px;
width: 78px;
}


.modal-open {
overflow: hidden;
}
.modal {
position: fixed;
/*top: 0;*/
/*right: 0;*/
/*bottom: 0;*/
/*left: 0;*/
z-index: 1050;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal.fade .modal-dialog {
-webkit-transition: -webkit-transform .3s ease-out;
-o-transition: -o-transform .3s ease-out;
transition: transform .3s ease-out;
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
}
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto;
}
.modal-dialog {
position: relative;
width: auto;
}
.modal-content {
position: relative;
background-color: #fff;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, .2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
filter: alpha(opacity=0);
opacity: 0;
}
.modal-backdrop.in {
filter: alpha(opacity=50);
opacity: .5;
}
.modal-header {
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
margin-top: -2px;
}
.modal-title {
margin: 0;
line-height: 1.42857143;
}
.modal-body {
position: relative;
padding: 15px;
}
.modal-footer {
padding: 15px;
text-align: right;
border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
margin-bottom: 0;
margin-left: 5px;
}
.modal-footer .btn-group .btn + .btn {
margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
margin-left: 0;
}
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll;
}
@media (min-width: 768px) {
.modal-dialog {
margin: 0px auto;
}
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
}
.modal-sm {
}

.modal-alert{
width: 500px;
}
}
@media (min-width: 992px) {
.modal-lg {
}
}

.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after {
display: table;
content: " ";
}

.modal-header:after,
.modal-footer:after {
clear: both;
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@
@import url(collapsible/collapsible.css);
@import url(datatable/datatable.css);
@import url(dialogs/dialogs.css);
@import url(modals/modals.css);
@import url(style.css);
@import url(colors.css);
Loading

0 comments on commit dc0995a

Please sign in to comment.