📄 stylesheet.java
字号:
fullStyleName = buffer.toString(); //#debug System.out.println("trying " + fullStyleName); style = (Style) stylesByName.get( fullStyleName ); if (style != null) { return style; } // 1. try: "screen item": String styleName = screenCssSelector + " " + itemCssSelector; //#debug System.out.println("trying " + styleName); style = (Style) stylesByName.get( styleName ); if (style == null) { // 2. try: "screen*item": styleName = screenCssSelector + "*" + itemCssSelector; //#debug System.out.println("trying " + styleName); style = (Style) stylesByName.get( styleName ); if (style == null) { // 3. try: "parent>item" styleName = parentCssSelector + ">" + itemCssSelector; //#debug System.out.println("trying " + styleName); style = (Style) stylesByName.get( styleName ); if (style == null) { // 4. try: "parent item" styleName = parentCssSelector + " " + itemCssSelector; //#debug System.out.println("trying " + styleName); style = (Style) stylesByName.get( styleName ); } } } //#debug System.out.println("found style: " + (style != null)); } else { //#debug System.out.println("so far unable to set style: complex item setup"); // this is a tiny bit more complicated.... fullStyleName = null; } if (style == null) { // try just the item: //#debug System.out.println("trying " + itemCssSelector); style = (Style) stylesByName.get( itemCssSelector ); if (style == null) { //#debug System.out.println("Using default style for item " + item.getClass().getName() ); style = defaultStyle; } //#ifdef polish.debug.debug else { //#debug System.out.println("Found style " + itemCssSelector ); } //#endif } if ( fullStyleName != null && style != null ) { stylesByName.put( fullStyleName, style ); } return style; } //#endif //#ifdef polish.useDynamicStyles /** * Retrieves a dynamic style for the given screen. * * @param screen the screen for which a style should be retrieved * @return the style for the given screen. */ public static Style getStyle(Screen screen) { Style style = (Style) stylesByName.get( screen.cssSelector ); if (style == null) { return defaultStyle; } return style; } //#endif //#if polish.css.screen-change-animation || polish.ScreenChangeAnimation.forward:defined /** * Includes an animation while changing the screen. * * @param display the display * @param nextDisplayable the new screen, animations are only included for de.enough.polish.ui.Screen classes */ public static void setCurrent( Display display, Displayable nextDisplayable ) { if ( nextDisplayable instanceof AccessibleCanvas ) { //#if polish.ScreenChangeAnimation.allowConfiguration == true if (!enableScreenChangeAnimations) { //#if polish.Bugs.displaySetCurrentFlickers MasterCanvas.setCurrent(display, nextDisplayable); //#else display.setCurrent( nextDisplayable ); //#endif return; } //#endif try { Screen nextScreen = null; if ( nextDisplayable instanceof Screen ) { nextScreen = (Screen) nextDisplayable; } ScreenChangeAnimation screenAnimation = null; Displayable lastDisplayable = null; //#if polish.Bugs.displaySetCurrentFlickers if ( MasterCanvas.instance != null ) { //# lastDisplayable = MasterCanvas.instance.currentDisplayable; } //#else lastDisplayable = display.getCurrent(); //#endif Screen lastScreen = null; Style screenstyle = null; //#if polish.ScreenChangeAnimation.forward:defined if (lastDisplayable != null && lastDisplayable instanceof Screen) { lastScreen = (Screen) lastDisplayable; Command lastCommand = lastScreen.lastTriggeredCommand; if (lastCommand != null && lastCommand.getCommandType() == Command.BACK ) { screenAnimation = backwardAnimation; screenstyle = lastScreen.style; } } if ( screenAnimation == null ) { screenAnimation = forwardAnimation; if (nextScreen != null) { screenstyle = nextScreen.style; } } //#else if (nextScreen != null && nextScreen.style != null) { screenstyle = nextScreen.style; screenAnimation = (ScreenChangeAnimation) screenstyle.getObjectProperty("screen-change-animation"); } if (lastDisplayable != null && lastDisplayable instanceof ScreenChangeAnimation ) { //#debug System.out.println("StyleSheet: last displayable is a ScreenChangeAnomation" ); lastDisplayable = ((ScreenChangeAnimation) lastDisplayable).nextDisplayable; } if (lastDisplayable != null && lastDisplayable instanceof Screen) { //#debug System.out.println("StyleSheet: last displayble is a Screen"); lastScreen = (Screen) lastDisplayable; if (screenAnimation == null && lastScreen.style != null) { screenstyle = lastScreen.style; screenAnimation = (ScreenChangeAnimation) screenstyle.getObjectProperty("screen-change-animation"); //#debug System.out.println("StyleSheet: Using screen animation of last screen"); } } //#if polish.Screen.showScreenChangeAnimationOnlyForScreen if ( nextScreen == null ) { screenAnimation = null; } //#endif if ( screenAnimation == null ) { //#debug System.out.println("StyleSheet: found no screen animation"); //#if polish.Bugs.displaySetCurrentFlickers MasterCanvas.setCurrent(display, nextDisplayable); //#else display.setCurrent( nextDisplayable ); //#endif return; } //#endif int width; int height; //#if polish.FullCanvasSize:defined //#= width = ${polish.FullCanvasWidth}; //#= height = ${polish.FullCanvasHeight}; //#else //#if polish.midp2 width = nextDisplayable.getWidth(); height = nextDisplayable.getHeight(); //#else if (nextScreen != null) { width = lastScreen.getWidth(); height = lastScreen.getHeight(); } else if (nextDisplayable instanceof Canvas) { width = ((Canvas) nextDisplayable).getWidth(); height = ((Canvas) nextDisplayable).getHeight(); } else { Canvas canvas = new Canvas() { public void paint( Graphics g) {} }; width = canvas.getWidth(); height = canvas.getHeight(); } //#endif //#endif Image lastScreenImage = Image.createImage(width, height); Graphics g = lastScreenImage.getGraphics(); if ( lastDisplayable != null && lastDisplayable instanceof AccessibleCanvas) { //#debug System.out.println("StyleSheet: last screen is painted"); ( (AccessibleCanvas)lastDisplayable).paint( g ); //#if polish.ScreenChangeAnimation.blankColor:defined } else { //#= g.setColor( ${polish.ScreenChangeAnimation.blankColor} ); g.fillRect( 0, 0, width, height ); //#endif } Image nextScreenImage = Image.createImage(width, height); g = nextScreenImage.getGraphics(); AccessibleCanvas nextCanvas = (AccessibleCanvas) nextDisplayable; nextCanvas.showNotify(); nextCanvas.paint( g ); //#debug System.out.println("StyleSheet: showing screen animation " + screenAnimation.getClass().getName() ); if ( screenstyle == null ) { screenstyle = defaultStyle; } screenAnimation.show( screenstyle, display, width, height, lastScreenImage, nextScreenImage, nextCanvas, nextDisplayable ); } catch (Exception e) { //#debug error System.out.println("Screen: unable to start screen change animation" + e ); //#if polish.Bugs.displaySetCurrentFlickers MasterCanvas.setCurrent(display, nextDisplayable); //#else display.setCurrent( nextDisplayable ); //#endif } } else { //#if polish.Bugs.displaySetCurrentFlickers MasterCanvas.setCurrent(display, nextDisplayable); //#else display.setCurrent( nextDisplayable ); //#endif } } //#endif /** * Releases all (memory intensive) resources such as images or RGB arrays of this style sheet. */ public static void releaseResources() { //#if polish.allowImageCaching != false if (imagesByName != null) { imagesByName.clear(); } //#endif //#ifdef polish.useDynamicStyles Enumeration enumeration = stylesByName.elements(); while (enumeration.hasMoreElements()) { Style style = (Style) enumeration.nextElement(); style.releaseResources(); } //#endif //#ifdef polish.StyleSheet.releaseResources:defined //#include ${polish.StyleSheet.releaseResources} //#endif } //#ifdef polish.StyleSheet.additionalMethods:defined //#include ${polish.StyleSheet.additionalMethods}//#endif}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -