Potrzebuję dodać przycisk do paska tytułu okna modemu Wicket. Nie mogę znaleźć niczego przydatnego w API Wicket, które mi pomoże. Czy istnieje sposób na dostosowanie paska tytułu w ten sposób?Czy okno modemu Wicket można dostosować?
Odpowiedz
Zgodnie z /org/apache/wicket/extension/ajax/markup/html/modal/res/modal.js nie można modyfikować dekoratora okna modalnego przez apertę wicket, ponieważ modalny znacznik okna zdefiniowany jest całkowicie w javascript. Jak zwykle możesz wybrać prosty, ale zły sposób i zastąpić plik modal.js własnymi, lub nie możesz prawdziwie zmienić okna modalnego po pokazie używając js do zmodyfikowania span za pomocą klasy "w_captionText". Albo może być (nie testuję) możesz zdefiniować spersonalizowany kod we właściwości Podpis i nakazać, aby nie pominąć specjalnych znaków html w tym Podpisie. Może to pomaga.
Możesz osiągnąć tego rodzaju efekt przy pomocy CSS. Utwórz własne okno modalne (na wypadek gdybyś nie chciał stworzyć własnego stylu) i określ zasób css.
package org.ru5.test;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.CSSPackageResource;
import org.apache.wicket.markup.html.resources.CompressedResourceReference;
import org.apache.wicket.model.IModel;
public class CustomModalWindow extends ModalWindow {
private static final long serialVersionUID = 1L;
private static ResourceReference CSS = new CompressedResourceReference(
CustomModalWindow.class, "res/custom-modal.css");
/**
* Creates a new modal window component.
*
* @param id
* Id of component
*/
public CustomModalWindow(final String id) {
super(id);
init();
}
/**
* Creates a new modal window component.
*
* @param id
* Id of component
* @param model
* Model
*/
public CustomModalWindow(final String id, final IModel<?> model) {
super(id, model);
init();
}
private void init() {
add(CSSPackageResource.getHeaderContribution(CSS));
}
}
/org/ru5/test/CustomModalWindow.html
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<body><wicket:panel><div wicket:id="content"></div></wicket:panel></body>
</html>
Wszystko, czego potrzebujesz:
/org/ru5/test/res/custom-modal.css
.headBtn{position: absolute; z-index: 20001; top: 2px; left: 200px;}
/org/ru5/test/TestPanelForTestWindow.html
....
<div class="headBtn">
<input type="button" value="ok">
</div>
....
Możesz spróbować zastąpić funkcję modal.js lub po prostu zrobić lewę przy pomocy JS DOM. Mam nadzieję, że to pomoże.
bit hack, ale działa:
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.model.IModel;
public class FixedModalWindow extends ModalWindow {
private static final long serialVersionUID = 1L;
public FixedModalWindow(String id) {
super(id);
setResizable(false);
}
public FixedModalWindow(String id, IModel<?> model) {
super(id, model);
setResizable(false);
}
@Override
public FixedModalWindow setResizable(boolean resizable) {
// Cannot set resizable on the FixedModalWindow
return this;
}
@Override
public boolean isResizable() {
return false;
}
@Override
protected Object getShowJavascript()
{
// Hack in some JS to remove the onMove handlers
StringBuffer showJS = new StringBuffer();
showJS.append(" ");
showJS.append((String) super.getShowJavascript());
showJS.append("var popupWindow = Wicket.Window.get();\n");
showJS.append("var nullHandler = function() {};\n");
showJS.append("if(popupWindow != null) {\n");
showJS.append("popupWindow.bind(popupWindow.caption, nullHandler);\n");
showJS.append("popupWindow.bind(popupWindow.bottomRight, nullHandler);\n");
showJS.append("popupWindow.bind(popupWindow.bottomLeft, nullHandler);\n");
showJS.append("popupWindow.bind(popupWindow.bottom, nullHandler);\n");
showJS.append("popupWindow.bind(popupWindow.left, nullHandler);\n");
showJS.append("popupWindow.bind(popupWindow.right, nullHandler);\n");
showJS.append("popupWindow.bind(popupWindow.topLeft, nullHandler);\n");
showJS.append("popupWindow.bind(popupWindow.topRight, nullHandler);\n");
showJS.append("popupWindow.bind(popupWindow.top, nullHandler);\n");
showJS.append("}\n");
return showJS.toString();
}
}
Jak ukryć przycisk zamykania w modalnego okna furtki? Znaleźliśmy takiego rozwiązania:
ModalWindow yourModal = new ModalWindow("yourModalID") {
@Override
public void show(AjaxRequestTarget pTarget) {
super.show(pTarget);
pTarget.appendJavascript(""//
+ "var thisWindow = Wicket.Window.get();\n"//
+ "if (thisWindow) {\n"//
+ "$('.w_close').attr('style', 'display:none;');\n"//
+ "}"//
);
}
}
Faktycznie, można wstawić cokolwiek klasy z modalnego okna i zmienić go w jakiś sposób. Mam nadzieję, że to komuś pomaga :)
- 1. Okno modemu Bootstrap jest wyszarzone
- 2. Czy można dostosować znacznik UITabBarItem?
- 3. Jak ustawić fokus na okno modemu javascript?
- 4. HighCharts: Czy można dostosować kolory poszczególnych serii?
- 5. Czy można dostosować linię bazową w NSAttributedString?
- 6. Czy można dostosować znaki niewidoczne w xcode4?
- 7. Czy można dostosować schemat kolorów mapy Google?
- 8. Czy można dostosować znaczek ikony aplikacji: Xcode?
- 9. jak dostosować motyw chrome na okno
- 10. Okno dialogowe modemu jQuery nie przesyła mojego formularza
- 11. Storyboardy OSX - Otwórz okno modemu ze standardową segue
- 12. Zdalne okno dialogowe modemu zdalnego Bootstrapa nie działa
- 13. Jak otworzyć okno modemu Bootstrap za pomocą jQuery?
- 14. zmiana js potwierdź do modemu modemu na twitter
- 15. Sprawdź, czy okno dialogowe można bezpiecznie odrzucić.
- 16. Czy można dostosować kolory podświetlania składni zmiennej RockScroll?
- 17. Czy można dostosować wyświetlanie błędów w programie powershell?
- 18. Czy można dostosować pionowe skalowanie czcionki za pomocą CSS?
- 19. Odzyskiwanie danych z modemu Bootstrap
- 20. Jak mogę dostosować okno wyskakujące QCompleter w PyQt?
- 21. Wicket: ukryj komentarze w HTML
- 22. Dynamic markup in Wicket
- 23. Czy możemy dostosować Facebook Likebox?
- 24. Wicket Dynamic Image URL
- 25. SetResponsePage w Wicket
- 26. Zasoby Wicket & CSS
- 27. Zapisywanie sterownika modemu GSM?
- 28. Wicket: Powiadom, jeśli model strony został zmieniony
- 29. Nie można otworzyć okna modemu ładowania początkowego jako trasy
- 30. Kontroler widoku modemu iPad podobny do Mail.app?
Hmpf ... no cóż, dziękuję. – Yuval
Jeśli poszedłeś prostą drogą. Co dokładnie zrobiłbyś, aby zastąpić plik modal.js? –