diff options
| author | Oleh Prypin <oleh@pryp.in> | 2021-01-20 10:48:45 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-20 10:48:45 +0100 |
| commit | 6f4309217326430145564ae8b1bb393ea684f39f (patch) | |
| tree | bf4025a5e709426dc927c4afc4fd2286f8450ed9 /tests/examplefiles/java | |
| parent | f0445be718da83541ea3401aad882f3937147263 (diff) | |
| download | pygments-git-6f4309217326430145564ae8b1bb393ea684f39f.tar.gz | |
Also add auto-updatable output-based tests to examplefiles (#1689)
Co-authored-by: Georg Brandl <georg@python.org>
Diffstat (limited to 'tests/examplefiles/java')
| -rw-r--r-- | tests/examplefiles/java/Intro.java | 1660 | ||||
| -rw-r--r-- | tests/examplefiles/java/Intro.java.output | 20022 | ||||
| -rw-r--r-- | tests/examplefiles/java/badcase.java | 2 | ||||
| -rw-r--r-- | tests/examplefiles/java/badcase.java.output | 15 | ||||
| -rw-r--r-- | tests/examplefiles/java/example.java | 16 | ||||
| -rw-r--r-- | tests/examplefiles/java/example.java.output | 97 | ||||
| -rw-r--r-- | tests/examplefiles/java/test.java | 653 | ||||
| -rw-r--r-- | tests/examplefiles/java/test.java.output | 4634 |
8 files changed, 27099 insertions, 0 deletions
diff --git a/tests/examplefiles/java/Intro.java b/tests/examplefiles/java/Intro.java new file mode 100644 index 00000000..66d2fee2 --- /dev/null +++ b/tests/examplefiles/java/Intro.java @@ -0,0 +1,1660 @@ +/* + * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * -Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * -Redistribution in binary form must reproduct the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the distribution. + * + * Neither the name of Sun Microsystems, Inc. or the names of contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * This software is provided "AS IS," without a warranty of any kind. ALL + * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING + * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE + * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT + * BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT + * OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS + * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST + * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, + * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY + * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN + * IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + * + * You acknowledge that Software is not designed, licensed or intended for + * use in the design, construction, operation or maintenance of any nuclear + * facility. + */ + + +package java2d; + +import java.awt.*; +import java.awt.event.*; +import java.awt.geom.*; +import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; +import java.awt.font.*; +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.table.*; +import javax.swing.event.*; +import java.util.Vector; +import java.util.List; +import java.util.Arrays; + + + +/** + * Introduction to the Java2Demo. + * + * @version @(#)Intro.java 1.19 03/06/26 + * @author Brian Lichtenwalter + */ +public class Intro extends JPanel { + + static Color black = new Color(20, 20, 20); + static Color white = new Color(240, 240, 255); + static Color red = new Color(149, 43, 42); + static Color blue = new Color(94, 105, 176); + static Color yellow = new Color(255, 255, 140); + + static Surface surface; + private ScenesTable scenesTable; + private boolean doTable; + + + public Intro() { + EmptyBorder eb = new EmptyBorder(80,110,80,110); + BevelBorder bb = new BevelBorder(BevelBorder.LOWERED); + setBorder(new CompoundBorder(eb,bb)); + setLayout(new BorderLayout()); + setBackground(Color.gray); + setToolTipText("click for scene table"); + add(surface = new Surface()); + addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + removeAll(); + if ((doTable = !doTable)) { + setToolTipText("click for animation"); + surface.stop(); + if (scenesTable == null) { + scenesTable = new ScenesTable(); + } + add(scenesTable); + } else { + setToolTipText("click for scene table"); + surface.start(); + add(surface); + } + revalidate(); + repaint(); + } + }); + } + + + public void start() { + if (!doTable) { + surface.start(); + } + } + + + public void stop() { + if (!doTable) { + surface.stop(); + } + } + + + public static void main(String argv[]) { + final Intro intro = new Intro(); + WindowListener l = new WindowAdapter() { + public void windowClosing(WindowEvent e) {System.exit(0);} + public void windowDeiconified(WindowEvent e) { intro.start(); } + public void windowIconified(WindowEvent e) { intro.stop(); } + }; + JFrame f = new JFrame("Java2D Demo - Intro"); + f.addWindowListener(l); + f.getContentPane().add("Center", intro); + f.pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); + int w = 720; + int h = 510; + f.setLocation(screenSize.width/2 - w/2, screenSize.height/2 - h/2); + f.setSize(w, h); + f.setVisible(true); + intro.start(); + } + + + /** + * ScenesTable is the list of scenes known to the Director. + * Scene participation, scene name and scene pause amount columns. + * Global animation delay for scene's steps. + */ + static class ScenesTable extends JPanel implements ActionListener, ChangeListener { + + private JTable table; + private TableModel dataModel; + + public ScenesTable() { + setBackground(Color.white); + setLayout(new BorderLayout()); + final String[] names = { "", "Scenes", "Pause" }; + + dataModel = new AbstractTableModel() { + public int getColumnCount() { return names.length; } + public int getRowCount() { return surface.director.size();} + public Object getValueAt(int row, int col) { + Surface.Scene scene = (Surface.Scene) surface.director.get(row); + if (col == 0) { + return scene.participate; + } else if (col == 1) { + return scene.name; + } else { + return scene.pauseAmt; + } + } + public String getColumnName(int col) {return names[col]; } + public Class getColumnClass(int c) { + return getValueAt(0, c).getClass(); + } + public boolean isCellEditable(int row, int col) { + return col != 1 ? true : false; + } + public void setValueAt(Object aValue, int row, int col) { + Surface.Scene scene = (Surface.Scene) surface.director.get(row); + if (col == 0) { + scene.participate = aValue; + } else if (col == 1) { + scene.name = aValue; + } else { + scene.pauseAmt = aValue; + } + } + }; + + table = new JTable(dataModel); + TableColumn col = table.getColumn(""); + col.setWidth(16); + col.setMinWidth(16); + col.setMaxWidth(20); + col = table.getColumn("Pause"); + col.setWidth(60); + col.setMinWidth(60); + col.setMaxWidth(60); + table.sizeColumnsToFit(0); + + JScrollPane scrollpane = new JScrollPane(table); + add(scrollpane); + + JPanel panel = new JPanel(new BorderLayout()); + JButton b = new JButton("Unselect All"); + b.setHorizontalAlignment(JButton.LEFT); + Font font = new Font("serif", Font.PLAIN, 10); + b.setFont(font); + b.addActionListener(this); + panel.add("West", b); + + JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 200, (int) surface.sleepAmt); + slider.addChangeListener(this); + TitledBorder tb = new TitledBorder(new EtchedBorder()); + tb.setTitleFont(font); + tb.setTitle("Anim delay = " + String.valueOf(surface.sleepAmt) + " ms"); + slider.setBorder(tb); + slider.setPreferredSize(new Dimension(140,40)); + slider.setMinimumSize(new Dimension(100,40)); + slider.setMaximumSize(new Dimension(180,40)); + panel.add("East", slider); + + add("South", panel); + } + + + public void actionPerformed(ActionEvent e) { + JButton b = (JButton) e.getSource(); + b.setSelected(!b.isSelected()); + b.setText(b.isSelected() ? "Select All" : "Unselect All"); + for (int i = 0; i < surface.director.size(); i++) { + Surface.Scene scene = (Surface.Scene) surface.director.get(i); + scene.participate = new Boolean(!b.isSelected()); + } + table.tableChanged(new TableModelEvent(dataModel)); + } + + + public void stateChanged(ChangeEvent e) { + JSlider slider = (JSlider) e.getSource(); + int value = slider.getValue(); + TitledBorder tb = (TitledBorder) slider.getBorder(); + tb.setTitle("Anim delay = " + String.valueOf(value) + " ms"); + surface.sleepAmt = (long) value; + slider.repaint(); + } + } // End ScenesTable class + + + + /** + * Surface is the stage where the Director plays its scenes. + */ + static class Surface extends JPanel implements Runnable { + + static Surface surf; + static Image cupanim, java_logo; + static BufferedImage bimg; + public Director director; + public int index; + public long sleepAmt = 30; + private Thread thread; + + + public Surface() { + surf = this; + setBackground(black); + setLayout(new BorderLayout()); + addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + if (thread == null) start(); else stop(); + } + }); + cupanim = DemoImages.getImage("cupanim.gif", this); + java_logo = DemoImages.getImage("java_logo.png", this); + director = new Director(); + } + + + static FontMetrics getMetrics(Font font) { + return surf.getFontMetrics(font); + } + + + public void paint(Graphics g) { + Dimension d = getSize(); + if (d.width <= 0 || d.height <= 0) { + return; + } + if (bimg == null || bimg.getWidth() != d.width || bimg.getHeight() != d.height) { + bimg = getGraphicsConfiguration().createCompatibleImage(d.width, d.height); + // reset future scenes + for (int i = index+1; i < director.size(); i++) { + ((Scene) director.get(i)).reset(d.width, d.height); + } + } + + Scene scene = (Scene) director.get(index); + if (scene.index <= scene.length) { + if (thread != null) { + scene.step(d.width, d.height); + } + + Graphics2D g2 = bimg.createGraphics(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + g2.setBackground(getBackground()); + g2.clearRect(0, 0, d.width, d.height); + + scene.render(d.width, d.height, g2); + + if (thread != null) { + // increment scene.index after scene.render + scene.index++; + } + g2.dispose(); + } + g.drawImage(bimg, 0, 0, this); + } + + + + public void start() { + if (thread == null) { + thread = new Thread(this); + thread.setPriority(Thread.MIN_PRIORITY); + thread.setName("Intro"); + thread.start(); + } + } + + + public synchronized void stop() { + if (thread != null) { + thread.interrupt(); + } + thread = null; + notifyAll(); + } + + + public void reset() { + index = 0; + Dimension d = getSize(); + for (int i = 0; i < director.size(); i++) { + ((Scene) director.get(i)).reset(d.width, d.height); + } + } + + + public void run() { + + Thread me = Thread.currentThread(); + + while (thread == me && !isShowing() || getSize().width <= 0) { + try { + thread.sleep(500); + } catch (InterruptedException e) { return; } + } + + if (index == 0) { + reset(); + } + + while (thread == me) { + Scene scene = (Scene) director.get(index); + if (((Boolean) scene.participate).booleanValue()) { + repaint(); + try { + thread.sleep(sleepAmt); + } catch (InterruptedException e) { break; } + if (scene.index > scene.length) { + scene.pause(thread); + if (++index >= director.size()) { + reset(); + } + } + } else { + if (++index >= director.size()) { + reset(); + } + } + } + thread = null; + } + + + + /** + * Part is a piece of the scene. Classes must implement Part + * inorder to participate in a scene. + */ + interface Part { + public void reset(int newwidth, int newheight); + public void step(int w, int h); + public void render(int w, int h, Graphics2D g2); + public int getBegin(); + public int getEnd(); + } + + + + /** + * Director is the holder of the scenes, their names & pause amounts + * between scenes. + */ + static class Director extends Vector { + + GradientPaint gp = new GradientPaint(0,40,blue,38,2,black); + Font f1 = new Font("serif", Font.PLAIN, 200); + Font f2 = new Font("serif", Font.PLAIN, 120); + Font f3 = new Font("serif", Font.PLAIN, 72); + Object parts[][][] = { + { { "J - scale text on gradient", "0" }, + { new GpE(GpE.BURI, black, blue, 0, 20), + new TxE("J", f1, TxE.SCI, yellow, 2, 20) } }, + { { "2 - scale & rotate text on gradient" , "0" }, + { new GpE(GpE.BURI, blue, black, 0, 22), + new TxE("2", f1, TxE.RI | TxE.SCI, yellow, 2, 22) } }, + { { "D - scale text on gradient", "0" }, + { new GpE(GpE.BURI, black, blue, 0, 20), + new TxE("D", f1, TxE.SCI, yellow, 2, 20) } }, + { { "Java2D - scale & rotate text on gradient", "1000" }, + { new GpE(GpE.SIH, blue, black, 0, 40), + new TxE("Java2D", f2, TxE.RI | TxE.SCI, yellow, 0, 40) }}, + { { "Previous scene dither dissolve out", "0"}, + { new DdE(0, 20, 1) }}, + { { "Graphics Features", "999" }, + { new Temp(Temp.RECT, null, 0, 15), + new Temp(Temp.IMG, java_logo, 2, 15), + new Temp(Temp.RNA | Temp.INA, java_logo, 16, 130), + new Features(Features.GRAPHICS, 16, 130) }}, + { { "Java2D - texture text on gradient", "1000"}, + { new GpE(GpE.WI, blue, black, 0, 20), + new GpE(GpE.WD, blue, black, 21, 40), + new TpE(TpE.OI | TpE.NF, black, yellow, 4, 0, 10), + new TpE(TpE.OD | TpE.NF, black, yellow, 4, 11, 20), + new TpE(TpE.OI | TpE.NF | TpE.HAF, black, yellow,5,21,40), + new TxE("Java2D", f2, 0, null, 0, 40) }}, + { { "Previous scene random close out", "0"}, + { new CoE(CoE.RAND, 0, 20) } }, + { { "Text Features", "999" }, + { new Temp(Temp.RECT, null, 0, 15), + new Temp(Temp.IMG, java_logo, 2, 15), + new Temp(Temp.RNA | Temp.INA, java_logo, 16, 130), + new Features(Features.TEXT, 16, 130) }}, + { { "Java2D - composite text on texture", "1000"}, + { new TpE(TpE.RI, black, gp, 40, 0, 20), + new TpE(TpE.RD, black, gp, 40, 21, 40), + new TpE(TpE.RI, black, gp, 40, 41, 60), + new TxE("Java2D", f2, TxE.AC, yellow, 0, 60) }}, + { { "Previous scene dither dissolve out", "0"}, + { new DdE(0, 20, 4) }}, + { { "Imaging Features", "999" }, + { new Temp(Temp.RECT, null, 0, 15), + new Temp(Temp.IMG, java_logo, 2, 15), + new Temp(Temp.RNA | Temp.INA, java_logo, 16, 130), + new Features(Features.IMAGES, 16, 130) }}, + { { "Java2D - text on gradient", "1000" }, + { new GpE(GpE.SDH, blue, black, 0, 20), + new GpE(GpE.SIH, blue, black, 21, 40), + new GpE(GpE.SDH, blue, black, 41, 50), + new GpE(GpE.INC | GpE.NF, red, yellow, 0, 50), + new TxE("Java2D", f2, TxE.NOP, null, 0, 50) }}, + { { "Previous scene ellipse close out", "0"}, + { new CoE(CoE.OVAL, 0, 20) } }, + { { "Color Features", "999" }, + { new Temp(Temp.RECT, null, 0, 15), + new Temp(Temp.IMG, java_logo, 2, 15), + new Temp(Temp.RNA | Temp.INA, java_logo, 16, 99), + new Features(Features.COLOR, 16, 99) }}, + { { "Java2D - composite and rotate text on paints", "2000" }, + { new GpE(GpE.BURI, black, blue, 0, 20), + new GpE(GpE.BURD, black, blue, 21, 30), + new TpE(TpE.OI | TpE.HAF, black, blue, 10, 31, 40), + new TxE("Java2D", f2, TxE.AC | TxE.RI, yellow, 0, 40) }}, + { { "Previous scene subimage transform out", "0" }, + { new SiE(60, 60, 0, 40) }}, + { { "CREDITS - transform in", "1000" }, + { new LnE(LnE.ACI | LnE.ZOOMI | LnE.RI, 0, 60), + new TxE("CREDITS", f3, TxE.AC | TxE.SCI, Color.red,20,30), + new TxE("CREDITS", f3, TxE.SCXD, Color.red, 31, 38), + new TxE("CREDITS", f3, TxE.SCXI, Color.red, 39, 48), + new TxE("CREDITS", f3, TxE.SCXD, Color.red, 49, 54), + new TxE("CREDITS", f3, TxE.SCXI, Color.red, 55, 60) }}, + { { "CREDITS - transform out", "0" }, + { new LnE(LnE.ACD | LnE.ZOOMD | LnE.RD, 0, 45), + new TxE("CREDITS", f3, 0, Color.red, 0, 9), + new TxE("CREDITS", f3, TxE.SCD | TxE.RD, Color.red,10,30)}}, + { { "Contributors", "1000" }, + { new Temp(Temp.RECT, null, 0, 30), + new Temp(Temp.IMG, cupanim, 4, 30), + new Temp(Temp.RNA | Temp.INA, cupanim, 31, 200), + new Contributors(34, 200) } }, + }; + + + public Director() { + for (int i = 0; i < parts.length; i++) { + Vector v = new Vector(); + for (int j = 0; j < parts[i][1].length; j++) { + v.addElement(parts[i][1][j]); + } + addElement(new Scene(v, parts[i][0][0], parts[i][0][1])); + } + } + } + + + + /** + * Scene is the manager of the parts. + */ + static class Scene extends Object { + public Object name; + public Object participate = new Boolean(true); + public Object pauseAmt; + public Vector parts; + public int index; + public int length; + + public Scene(Vector parts, Object name, Object pauseAmt) { + this.name = name; + this.parts = parts; + this.pauseAmt = pauseAmt; + for (int i = 0; i < parts.size(); i++) { + if (((Part) parts.get(i)).getEnd() > length) { + length = ((Part) parts.get(i)).getEnd(); + } + } + } + + public void reset(int w, int h) { + index = 0; + for (int i = 0; i < parts.size(); i++) { + ((Part) parts.get(i)).reset(w, h); + } + } + + public void step(int w, int h) { + for (int i = 0; i < parts.size(); i++) { + Part part = (Part) parts.get(i); + if (index >= part.getBegin() && index <= part.getEnd()) { + part.step(w, h); + } + } + } + + public void render(int w, int h, Graphics2D g2) { + for (int i = 0; i < parts.size(); i++) { + Part part = (Part) parts.get(i); + if (index >= part.getBegin() && index <= part.getEnd()) { + part.render(w, h, g2); + } + } + } + + public void pause(Thread thread) { + try { + thread.sleep(Long.parseLong((String) pauseAmt)); + } catch (Exception e) { } + System.gc(); + } + } // End Scene class + + + + /** + * Text Effect. Transformation of characters. Clip or fill. + */ + static class TxE implements Part { + + static final int INC = 1; + static final int DEC = 2; + static final int R = 4; // rotate + static final int RI = R | INC; + static final int RD = R | DEC; + static final int SC = 8; // scale + static final int SCI = SC | INC; + static final int SCD = SC | DEC; + static final int SCX = 16; // scale invert x + static final int SCXI = SCX | SC | INC; + static final int SCXD = SCX | SC | DEC; + static final int SCY = 32; // scale invert y + static final int SCYI = SCY | SC | INC; + static final int SCYD = SCY | SC | DEC; + static final int AC = 64; // AlphaComposite + static final int CLIP = 128; // Clipping + static final int NOP = 512; // No Paint + private int beginning, ending; + private int type; + private double rIncr, sIncr; + private double sx, sy, rotate; + private Shape shapes[], txShapes[]; + private int sw; + private int numRev; + private Paint paint; + + + public TxE(String text, + Font font, + int type, + Paint paint, + int beg, + int end) { + this.type = type; + this.paint = paint; + this.beginning = beg; + this.ending = end; + + setIncrements(2); + + char[] chars = text.toCharArray(); + shapes = new Shape[chars.length]; + txShapes = new Shape[chars.length]; + FontRenderContext frc = new FontRenderContext(null,true,true); + TextLayout tl = new TextLayout(text, font, frc); + sw = (int) tl.getOutline(null).getBounds().getWidth(); + for (int j = 0; j < chars.length; j++) { + String s = String.valueOf(chars[j]); + shapes[j] = new TextLayout(s, font, frc).getOutline(null); + } + } + + + public void setIncrements(double numRevolutions) { + this.numRev = (int) numRevolutions; + rIncr = 360.0 / ((ending - beginning) / numRevolutions); + sIncr = 1.0 / (ending - beginning); + if ((type & SCX) != 0 || (type & SCY) != 0) { + sIncr *= 2; + } + if ((type & DEC) != 0) { + rIncr = -rIncr; + sIncr = -sIncr; + } + } + + + public void reset(int w, int h) { + if (type == SCXI) { + sx = -1.0; sy = 1.0; + } else if (type == SCYI) { + sx = 1.0; sy = -1.0; + } else { + sx = sy = (type & DEC) != 0 ? 1.0 : 0.0; + } + rotate = 0; + } + + + public void step(int w, int h) { + + float charWidth = w/2-sw/2; + + for (int i = 0; i < shapes.length; i++) { + AffineTransform at = new AffineTransform(); + Rectangle2D maxBounds = shapes[i].getBounds(); + at.translate(charWidth, h/2+maxBounds.getHeight()/2); + charWidth += (float) maxBounds.getWidth() + 1; + Shape shape = at.createTransformedShape(shapes[i]); + Rectangle2D b1 = shape.getBounds2D(); + + if ((type & R) != 0) { + at.rotate(Math.toRadians(rotate)); + } + if ((type & SC) != 0) { + at.scale(sx, sy); + } + shape = at.createTransformedShape(shapes[i]); + Rectangle2D b2 = shape.getBounds2D(); + + double xx = (b1.getX()+b1.getWidth()/2) + - (b2.getX()+b2.getWidth()/2); + double yy = (b1.getY()+b1.getHeight()/2) + - (b2.getY()+b2.getHeight()/2); + AffineTransform toCenterAT = new AffineTransform(); + toCenterAT.translate(xx, yy); + toCenterAT.concatenate(at); + txShapes[i] = toCenterAT.createTransformedShape(shapes[i]); + } + // avoid over rotation + if (Math.abs(rotate) <= numRev * 360) { + rotate += rIncr; + if ((type & SCX) != 0) { + sx += sIncr; + } else if ((type & SCY) != 0) { + sy += sIncr; + } else { + sx += sIncr; sy += sIncr; + } + } + } + + + public void render(int w, int h, Graphics2D g2) { + Composite saveAC = null; + if ((type & AC) != 0 && sx > 0 && sx < 1) { + saveAC = g2.getComposite(); + g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) sx)); + } + GeneralPath path = null; + if ((type & CLIP) != 0) { + path = new GeneralPath(); + } + if (paint != null) { + g2.setPaint(paint); + } + for (int i = 0; i < txShapes.length; i++) { + if ((type & CLIP) != 0) { + path.append(txShapes[i], false); + } else { + g2.fill(txShapes[i]); + } + } + if ((type & CLIP) != 0) { + g2.clip(path); + } + if (saveAC != null) { + g2.setComposite(saveAC); + } + } + + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End TxE class + + + + + /** + * GradientPaint Effect. Burst, split, horizontal and + * vertical gradient fill effects. + */ + static class GpE implements Part { + + static final int INC = 1; // increasing + static final int DEC = 2; // decreasing + static final int CNT = 4; // center + static final int WID = 8; // width + static final int WI = WID | INC; + static final int WD = WID | DEC; + static final int HEI = 16; // height + static final int HI = HEI | INC; + static final int HD = HEI | DEC; + static final int SPL = 32 | CNT; // split + static final int SIW = SPL | INC | WID; + static final int SDW = SPL | DEC | WID; + static final int SIH = SPL | INC | HEI; + static final int SDH = SPL | DEC | HEI; + static final int BUR = 64 | CNT; // burst + static final int BURI = BUR | INC; + static final int BURD = BUR | DEC; + static final int NF = 128; // no fill + private Color c1, c2; + private int beginning, ending; + private float incr, index; + private Vector rect = new Vector(); + private Vector grad = new Vector(); + private int type; + + + public GpE(int type, Color c1, Color c2, int beg, int end) { + this.type = type; + this.c1 = c1; + this.c2 = c2; + this.beginning = beg; + this.ending = end; + } + + + public void reset(int w, int h) { + incr = 1.0f / (ending - beginning); + if ((type & CNT) != 0) { + incr /= 2.3f; + } + if ((type & CNT) != 0 && (type & INC) != 0) { + index = 0.5f; + } else if ((type & DEC) != 0) { + index = 1.0f; + incr = -incr; + } else { + index = 0.0f; + } + index += incr; + } + + + public void step(int w, int h) { + rect.clear(); + grad.clear(); + + if ((type & WID) != 0) { + float w2 = 0, x1 = 0, x2 = 0; + if ((type & SPL) != 0) { + w2 = w * 0.5f; + x1 = w * (1.0f - index); + x2 = w * index; + } else { + w2 = w * index; + x1 = x2 = w2; + } + rect.addElement(new Rectangle2D.Float(0, 0, w2, h)); + rect.addElement(new Rectangle2D.Float(w2, 0, w-w2, h)); + grad.addElement(new GradientPaint(0,0,c1,x1,0,c2)); + grad.addElement(new GradientPaint(x2,0,c2,w,0,c1)); + } else if ((type & HEI) != 0) { + float h2 = 0, y1 = 0, y2 = 0; + if ((type & SPL) != 0) { + h2 = h * 0.5f; + y1 = h * (1.0f - index); + y2 = h * index; + } else { + h2 = h * index; + y1 = y2 = h2; + } + rect.addElement(new Rectangle2D.Float(0, 0, w, h2)); + rect.addElement(new Rectangle2D.Float(0, h2, w, h-h2)); + grad.addElement(new GradientPaint(0,0,c1,0,y1,c2)); + grad.addElement(new GradientPaint(0,y2,c2,0,h,c1)); + } else if ((type & BUR) != 0) { + + float w2 = w/2; + float h2 = h/2; + + rect.addElement(new Rectangle2D.Float(0, 0, w2, h2)); + rect.addElement(new Rectangle2D.Float(w2, 0, w2, h2)); + rect.addElement(new Rectangle2D.Float(0, h2, w2, h2)); + rect.addElement(new Rectangle2D.Float(w2, h2, w2, h2)); + + float x1 = w * (1.0f - index); + float x2 = w * index; + float y1 = h * (1.0f - index); + float y2 = h * index; + + grad.addElement(new GradientPaint(0,0,c1,x1,y1,c2)); + grad.addElement(new GradientPaint(w,0,c1,x2,y1,c2)); + grad.addElement(new GradientPaint(0,h,c1,x1,y2,c2)); + grad.addElement(new GradientPaint(w,h,c1,x2,y2,c2)); + } else if ((type & NF) != 0) { + float x = w * index; + float y = h * index; + grad.addElement(new GradientPaint(0,0,c1,0,y,c2)); + } + + if ((type & INC) != 0 || (type & DEC) != 0) { + index += incr; + } + } + + + public void render(int w, int h, Graphics2D g2) { + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_OFF); + for (int i = 0; i < grad.size(); i++) { + g2.setPaint((GradientPaint) grad.get(i)); + if ((type & NF) == 0) { + g2.fill((Rectangle2D) rect.get(i)); + } + } + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End GpE class + + + + /** + * TexturePaint Effect. Expand and collapse a texture. + */ + static class TpE implements Part { + + static final int INC = 1; // increasing + static final int DEC = 2; // decreasing + static final int OVAL = 4; // oval + static final int RECT = 8; // rectangle + static final int HAF = 16; // half oval or rect size + static final int OI = OVAL | INC; + static final int OD = OVAL | DEC; + static final int RI = RECT | INC; + static final int RD = RECT | DEC; + static final int NF = 32; // no fill + private Paint p1, p2; + private int beginning, ending; + private float incr, index; + private TexturePaint texture; + private int type; + private int size; + private BufferedImage bimg; + private Rectangle rect; + + + public TpE(int type, Paint p1, Paint p2, int size, + int beg, int end) { + this.type = type; + this.p1 = p1; + this.p2 = p2; + this.beginning = beg; + this.ending = end; + setTextureSize(size); + } + + + public void setTextureSize(int size) { + this.size = size; + bimg = new BufferedImage(size,size,BufferedImage.TYPE_INT_RGB); + rect = new Rectangle(0,0,size,size); + } + + + public void reset(int w, int h) { + incr = (float) (size) / (float) (ending - beginning); + if ((type & HAF) != 0) { + incr /= 2; + } + if ((type & DEC) != 0) { + index = size; + if ((type & HAF) != 0) { + index /= 2; + } + incr = -incr; + } else { + index = 0.0f; + } + index += incr; + } + + + public void step(int w, int h) { + Graphics2D g2 = bimg.createGraphics(); + g2.setPaint(p1); + g2.fillRect(0,0,size,size); + g2.setPaint(p2); + if ((type & OVAL) != 0) { + g2.fill(new Ellipse2D.Float(0,0,index,index)); + } else if ((type & RECT) != 0) { + g2.fill(new Rectangle2D.Float(0,0,index,index)); + } + texture = new TexturePaint(bimg, rect); + g2.dispose(); + index += incr; + } + + + public void render(int w, int h, Graphics2D g2) { + g2.setPaint(texture); + if ((type & NF) == 0) { + g2.fillRect(0, 0, w, h); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End TpE class + + + + /** + * Close out effect. Close out the buffered image with different + * geometry shapes. + */ + static class CoE implements Part { + + static final int WID = 1; + static final int HEI = 2; + static final int OVAL = 4; + static final int RECT = 8; + static final int RAND = 16; + static final int ARC = 32; + private int type; + private int beginning, ending; + private BufferedImage bimg; + private Shape shape; + private double zoom, extent; + private double zIncr, eIncr; + private boolean doRandom; + + + public CoE(int type, int beg, int end) { + this.type = type; + this.beginning = beg; + this.ending = end; + zIncr = -(2.0 / (ending - beginning)); + eIncr = 360.0 / (ending - beginning); + doRandom = (type & RAND) != 0; + } + + + public void reset(int w, int h) { + if (doRandom) { + int num = (int) (Math.random() * 5.0); + switch (num) { + case 0 : type = OVAL; break; + case 1 : type = RECT; break; + case 2 : type = RECT | WID; break; + case 3 : type = RECT | HEI; break; + case 4 : type = ARC; break; + default : type = OVAL; + } + } + shape = null; + bimg = null; + extent = 360.0; + zoom = 2.0; + } + + + public void step(int w, int h) { + if (bimg == null) { + int biw = Surface.bimg.getWidth(); + int bih = Surface.bimg.getHeight(); + bimg = new BufferedImage(biw, bih, BufferedImage.TYPE_INT_RGB); + Graphics2D big = bimg.createGraphics(); + big.drawImage(Surface.bimg, 0, 0, null); + } + double z = Math.min(w, h) * zoom; + if ((type & OVAL) != 0) { + shape = new Ellipse2D.Double(w/2-z/2,h/2-z/2,z,z); + } else if ((type & ARC) != 0) { + shape = new Arc2D.Double(-100,-100,w+200,h+200,90,extent,Arc2D.PIE); + extent -= eIncr; + } else if ((type & RECT) != 0) { + if ((type & WID) != 0) { + shape = new Rectangle2D.Double(w/2-z/2,0,z,h); + } else if ((type & HEI) != 0) { + shape = new Rectangle2D.Double(0,h/2-z/2,w,z); + } else { + shape = new Rectangle2D.Double(w/2-z/2,h/2-z/2,z,z); + } + } + zoom += zIncr; + } + + + public void render(int w, int h, Graphics2D g2) { + g2.clip(shape); + g2.drawImage(bimg, 0, 0, null); + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End CoE class + + + + /** + * Dither Dissolve Effect. For each successive step in the animation, + * a pseudo-random starting horizontal position is chosen using list, + * and then the corresponding points created from xlist and ylist are + * blacked out for the current "chunk". The x and y chunk starting + * positions are each incremented by the associated chunk size, and + * this process is repeated for the number of "steps" in the + * animation, causing an equal number of pseudo-randomly picked + * "blocks" to be blacked out during each step of the animation. + */ + static class DdE implements Part { + + private int beginning, ending; + private BufferedImage bimg; + private Graphics2D big; + private List list, xlist, ylist; + private int xeNum, yeNum; // element number + private int xcSize, ycSize; // chunk size + private int inc; + private int blocksize; + + + public DdE(int beg, int end, int blocksize) { + this.beginning = beg; + this.ending = end; + this.blocksize = blocksize; + } + + private void createShuffledLists() { + int width = bimg.getWidth(); + int height = bimg.getHeight(); + Integer xarray[] = new Integer[width]; + Integer yarray[] = new Integer[height]; + Integer array[] = new Integer[ending - beginning + 1]; + for (int i = 0; i < xarray.length; i++) { + xarray[i] = new Integer(i); + } + for (int j = 0; j < yarray.length; j++) { + yarray[j] = new Integer(j); + } + for (int k = 0; k < array.length; k++) { + array[k] = new Integer(k); + } + java.util.Collections.shuffle(xlist = Arrays.asList(xarray)); + java.util.Collections.shuffle(ylist = Arrays.asList(yarray)); + java.util.Collections.shuffle(list = Arrays.asList(array)); + } + + public void reset(int w, int h) { + bimg = null; + } + + public void step(int w, int h) { + if (bimg == null) { + int biw = Surface.bimg.getWidth(); + int bih = Surface.bimg.getHeight(); + bimg = new BufferedImage(biw, bih, BufferedImage.TYPE_INT_RGB); + createShuffledLists(); + big = bimg.createGraphics(); + big.drawImage(Surface.bimg, 0, 0, null); + xcSize = (xlist.size() / (ending - beginning)) + 1; + ycSize = (ylist.size() / (ending - beginning)) + 1; + xeNum = 0; + inc = 0; + } + xeNum = xcSize * ((Integer)list.get(inc)).intValue(); + yeNum = -ycSize; + inc++; + } + + + public void render(int w, int h, Graphics2D g2) { + big.setColor(black); + + for (int k = 0; k <= (ending - beginning); k++) { + if ((xeNum + xcSize) > xlist.size()) { + xeNum = 0; + } else { + xeNum += xcSize; + } + yeNum += ycSize; + + for (int i = xeNum; i < xeNum+xcSize && i < xlist.size(); i++) { + for (int j = yeNum; j < yeNum+ycSize && j < ylist.size(); j++) { + int xval = ((Integer)xlist.get(i)).intValue(); + int yval = ((Integer)ylist.get(j)).intValue(); + if (((xval % blocksize) == 0) && + ((yval % blocksize) == 0)) { + big.fillRect(xval, yval, blocksize, blocksize); + } + } + } + } + + g2.drawImage(bimg, 0, 0, null); + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End DdE class + + + /** + * Subimage effect. Subimage the scene's buffered + * image then rotate and scale down the subimages. + */ + static class SiE implements Part { + + private int beginning, ending; + private BufferedImage bimg; + private double rIncr, sIncr; + private double scale, rotate; + private int siw, sih; + private Vector subs = new Vector(20); + private Vector pts = new Vector(20); + + + public SiE(int siw, int sih, int beg, int end) { + this.siw = siw; + this.sih = sih; + this.beginning = beg; + this.ending = end; + rIncr = 360.0 / (ending - beginning); + sIncr = 1.0 / (ending - beginning); + } + + + public void reset(int w, int h) { + scale = 1.0; + rotate = 0.0; + bimg = null; + subs.clear(); + pts.clear(); + } + + + public void step(int w, int h) { + if (bimg == null) { + int biw = Surface.bimg.getWidth(); + int bih = Surface.bimg.getHeight(); + bimg = new BufferedImage(biw, bih, BufferedImage.TYPE_INT_RGB); + Graphics2D big = bimg.createGraphics(); + big.drawImage(Surface.bimg, 0, 0, null); + for (int x = 0; x < w && scale > 0.0; x+=siw) { + int ww = x+siw < w ? siw : w-x; + for (int y = 0; y < h; y+=sih) { + int hh = y+sih < h ? sih : h-y; + subs.addElement(bimg.getSubimage(x,y,ww,hh)); + pts.addElement(new Point(x, y)); + } + } + } + + rotate += rIncr; + scale -= sIncr; + } + + + public void render(int w, int h, Graphics2D g2) { + AffineTransform saveTx = g2.getTransform(); + g2.setColor(blue); + for (int i = 0; i < subs.size() && scale > 0.0; i++) { + BufferedImage bi = (BufferedImage) subs.get(i); + Point p = (Point) pts.get(i); + int ww = bi.getWidth(); + int hh = bi.getHeight(); + AffineTransform at = new AffineTransform(); + at.rotate(Math.toRadians(rotate), p.x+ww/2, p.y+hh/2); + at.translate(p.x, p.y); + at.scale(scale, scale); + + Rectangle b1 = new Rectangle(0, 0, ww, hh); + Shape shape = at.createTransformedShape(b1); + Rectangle2D b2 = shape.getBounds2D(); + double xx = (p.x+ww/2) - (b2.getX()+b2.getWidth()/2); + double yy = (p.y+hh/2) - (b2.getY()+b2.getHeight()/2); + AffineTransform toCenterAT = new AffineTransform(); + toCenterAT.translate(xx, yy); + toCenterAT.concatenate(at); + + g2.setTransform(toCenterAT); + g2.drawImage(bi, 0, 0, null); + g2.draw(b1); + } + g2.setTransform(saveTx); + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End SiE class + + + + + /** + * Line Effect. Flattened ellipse with lines from the center + * to the edge. Expand or collapse the ellipse. Fade in or out + * the lines. + */ + static class LnE implements Part { + + static final int INC = 1; + static final int DEC = 2; + static final int R = 4; // rotate + static final int RI = R | INC; + static final int RD = R | DEC; + static final int ZOOM = 8; // zoom + static final int ZOOMI = ZOOM | INC; + static final int ZOOMD = ZOOM | DEC; + static final int AC = 32; // AlphaComposite + static final int ACI = 32 | INC; + static final int ACD = 32 | DEC; + private int beginning, ending; + private double rIncr, rotate; + private double zIncr, zoom; + private Vector pts = new Vector(); + private float alpha, aIncr; + private int type; + + + public LnE(int type, int beg, int end) { + this.type = type; + this.beginning = beg; + this.ending = end; + rIncr = 360.0 / (ending - beginning); + aIncr = 0.9f / (ending - beginning); + zIncr = 2.0 / (ending - beginning); + if ((type & DEC) != 0) { + rIncr = -rIncr; + aIncr = -aIncr; + zIncr = -zIncr; + } + } + + + public void generatePts(int w, int h, double sizeF) { + pts.clear(); + double size = Math.min(w, h) * sizeF; + Ellipse2D ellipse = new Ellipse2D.Double(w/2-size/2,h/2-size/2,size,size); + PathIterator pi = ellipse.getPathIterator(null, 0.8); + while ( !pi.isDone() ) { + double[] pt = new double[6]; + switch ( pi.currentSegment(pt) ) { + case FlatteningPathIterator.SEG_MOVETO: + case FlatteningPathIterator.SEG_LINETO: + pts.addElement(new Point2D.Double(pt[0], pt[1])); + } + pi.next(); + } + } + + + public void reset(int w, int h) { + if ((type & DEC) != 0) { + rotate = 360; + alpha = 1.0f; + zoom = 2.0; + } else { + rotate = alpha = 0; + zoom = 0; + } + if ((type & ZOOM) == 0) { + generatePts(w, h, 0.5); + } + } + + + public void step(int w, int h) { + if ((type & ZOOM) != 0) { + generatePts(w, h, zoom += zIncr); + } + if ((type & RI) != 0 || (type & RI) != 0) { + rotate += rIncr; + } + if ((type & ACI) != 0 || (type & ACD) != 0) { + alpha += aIncr; + } + } + + + public void render(int w, int h, Graphics2D g2) { + Composite saveAC = null; + if ((type & AC) != 0 && alpha >= 0 && alpha <= 1) { + saveAC = g2.getComposite(); + g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); + } + AffineTransform saveTx = null; + if ((type & R) != 0) { + saveTx = g2.getTransform(); + AffineTransform at = new AffineTransform(); + at.rotate(Math.toRadians(rotate), w/2, h/2); + g2.setTransform(at); + } + Point2D p1 = new Point2D.Double(w/2, h/2); + g2.setColor(Color.yellow); + for (int i = 0; i < pts.size()-1; i++) { + g2.draw(new Line2D.Float(p1, (Point2D) pts.get(i))); + } + if (saveTx != null) { + g2.setTransform(saveTx); + } + if (saveAC != null) { + g2.setComposite(saveAC); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End LnE class + + + + /** + * Template for Features & Contributors consisting of translating + * blue and red rectangles and an image going from transparent to + * opaque. + */ + static class Temp implements Part { + static final int NOANIM = 1; + static final int RECT = 2; + static final int RNA = RECT | NOANIM; + static final int IMG = 4; + static final int INA = IMG | NOANIM; + private int beginning, ending; + private float alpha, aIncr; + private int type; + private Rectangle rect1, rect2; + private int x, y, xIncr, yIncr; + private Image img; + + + public Temp(int type, Image img, int beg, int end) { + this.type = type; + this.img = img; + this.beginning = beg; + this.ending = end; + aIncr = 0.9f / (ending - beginning); + if ((type & NOANIM) != 0) { + alpha = 1.0f; + } + } + + + + public void reset(int w, int h) { + rect1 = new Rectangle(8, 20, w-20, 30); + rect2 = new Rectangle(20, 8, 30, h-20); + if ((type & NOANIM) == 0) { + alpha = 0.0f; + xIncr = w / (ending - beginning); + yIncr = h / (ending - beginning); + x = w+(int)(xIncr*1.4); + y = h+(int)(yIncr*1.4); + } + } + + + public void step(int w, int h) { + if ((type & NOANIM) != 0) { + return; + } + if ((type & RECT) != 0) { + rect1.setLocation(x-=xIncr, 20); + rect2.setLocation(20, y-=yIncr); + } + if ((type & IMG) != 0) { + alpha += aIncr; + } + } + + + public void render(int w, int h, Graphics2D g2) { + if ((type & RECT) != 0) { + g2.setColor(blue); + g2.fill(rect1); + g2.setColor(red); + g2.fill(rect2); + } + if ((type & IMG) != 0) { + Composite saveAC = g2.getComposite(); + if (alpha >= 0 && alpha <= 1) { + g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); + } + g2.drawImage(img, 30, 30, null); + g2.setComposite(saveAC); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End Temp class + + + + /** + * Features of Java2D. Single character advancement effect. + */ + static class Features implements Part { + + static final int GRAPHICS = 0; + static final int TEXT = 1; + static final int IMAGES = 2; + static final int COLOR = 3; + static Font font1 = new Font("serif", Font.BOLD, 38); + static Font font2 = new Font("serif", Font.PLAIN, 24); + static FontMetrics fm1 = Surface.getMetrics(font1); + static FontMetrics fm2 = Surface.getMetrics(font2); + static String table[][] = + {{ "Graphics", "Antialiased rendering", "Bezier paths", + "Transforms", "Compositing", "Stroking parameters" }, + { "Text", "Extended font support", + "Advanced text layout", "Dynamic font loading", + "AttributeSets for font customization" }, + { "Images", "Flexible image layouts", + "Extended imaging operations", + " Convolutions, Lookup Tables", + "RenderableImage interface"}, + { "Color", "ICC profile support", "Color conversion", + "Arbitrary color spaces"} }; + private String list[]; + private int beginning, ending; + private int strH; + private int endIndex, listIndex; + private Vector v = new Vector(); + + + public Features(int type, int beg, int end) { + list = table[type]; + this.beginning = beg; + this.ending = end; + } + + + public void reset(int w, int h) { + strH = (int) (fm2.getAscent()+fm2.getDescent()); + endIndex = 1; + listIndex = 0; + v.clear(); + v.addElement(list[listIndex].substring(0,endIndex)); + } + + + public void step(int w, int h) { + if (listIndex < list.length) { + if (++endIndex > list[listIndex].length()) { + if (++listIndex < list.length) { + endIndex = 1; + v.addElement(list[listIndex].substring(0,endIndex)); + } + } else { + v.set(listIndex, list[listIndex].substring(0,endIndex)); + } + } + } + + + public void render(int w, int h, Graphics2D g2) { + g2.setColor(white); + g2.setFont(font1); + g2.drawString((String) v.get(0), 90, 85); + g2.setFont(font2); + for (int i = 1, y = 90; i < v.size(); i++) { + g2.drawString((String) v.get(i), 120, y += strH); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End Features class + + + + /** + * Scrolling text of Java2D contributors. + */ + static class Contributors implements Part { + + static String members[] = + { + "Brian Lichtenwalter", "Jeannette Hung", + "Thanh Nguyen", "Jim Graham", "Jerry Evans", + "John Raley", "Michael Peirce", "Robert Kim", + "Jennifer Ball", "Deborah Adair", "Paul Charlton", + "Dmitry Feld", "Gregory Stone", "Richard Blanchard", + "Link Perry", "Phil Race", "Vincent Hardy", + "Parry Kejriwal", "Doug Felt", "Rekha Rangarajan", + "Paula Patel", "Michael Bundschuh", "Joe Warzecha", + "Joey Beheler", "Aastha Bhardwaj", "Daniel Rice", + "Chris Campbell", "Shinsuke Fukuda", "Dmitri Trembovetski", + "Chet Haase", "Jennifer Godinez", "Nicholas Talian", + "Raul Vera", "Ankit Patel", "Ilya Bagrak" + }; + static Font font = new Font("serif", Font.PLAIN, 26); + static FontMetrics fm = Surface.getMetrics(font); + private int beginning, ending; + private int nStrs, strH, index, yh, height; + private Vector v = new Vector(); + private Vector cast = new Vector(members.length+3); + private int counter, cntMod; + private GradientPaint gp; + + + public Contributors(int beg, int end) { + this.beginning = beg; + this.ending = end; + java.util.Arrays.sort(members); + cast.addElement("CONTRIBUTORS"); + cast.addElement(" "); + for (int i = 0; i < members.length; i++) { + cast.addElement(members[i]); + } + cast.addElement(" "); cast.addElement(" "); + cntMod = (ending - beginning) / cast.size() - 1; + } + + + public void reset(int w, int h) { + v.clear(); + strH = (int) (fm.getAscent()+fm.getDescent()); + nStrs = (h-40)/strH + 1; + height = strH * (nStrs-1) + 48; + index = 0; + gp = new GradientPaint(0,h/2,Color.white,0,h+20,Color.black); + counter = 0; + } + + + public void step(int w, int h) { + if (counter++%cntMod == 0) { + if (index < cast.size()) { + v.addElement(cast.get(index)); + } + if ((v.size() == nStrs || index >= cast.size()) && v.size() != 0) { + v.removeElementAt(0); + } + ++index; + } + } + + + public void render(int w, int h, Graphics2D g2) { + g2.setPaint(gp); + g2.setFont(font); + double remainder = counter%cntMod; + double incr = 1.0-remainder/cntMod; + incr = incr == 1.0 ? 0 : incr; + int y = (int) (incr * strH); + + if (index >= cast.size()) { + y = yh + y; + } else { + y = yh = height - v.size() * strH + y; + } + for (int i = 0; i < v.size(); i++) { + String s = (String) v.get(i); + g2.drawString(s, w/2-fm.stringWidth(s)/2, y += strH); + } + } + + public int getBegin() { + return beginning; + } + + public int getEnd() { + return ending; + } + } // End Contributors class + + } // End Surface class +} // End Intro class diff --git a/tests/examplefiles/java/Intro.java.output b/tests/examplefiles/java/Intro.java.output new file mode 100644 index 00000000..8b3f112a --- /dev/null +++ b/tests/examplefiles/java/Intro.java.output @@ -0,0 +1,20022 @@ +'/*\n * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.\n * \n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * \n * -Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * \n * -Redistribution in binary form must reproduct the above copyright\n * notice, this list of conditions and the following disclaimer in\n * the documentation and/or other materials provided with the distribution.\n * \n * Neither the name of Sun Microsystems, Inc. or the names of contributors\n * may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n * \n * This software is provided "AS IS," without a warranty of any kind. ALL\n * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING\n * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE\n * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT\n * BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT\n * OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS\n * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST\n * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,\n * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY\n * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN\n * IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n * \n * You acknowledge that Software is not designed, licensed or intended for\n * use in the design, construction, operation or maintenance of any nuclear\n * facility.\n */' Comment.Multiline +'\n' Text + +'\n' Text + +'\n' Text + +'package' Keyword.Namespace +' ' Text +'java2d' Name.Namespace +';' Punctuation +'\n' Text + +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.awt.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.awt.event.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.awt.geom.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.awt.image.BufferedImage' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.awt.image.DataBuffer' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.awt.font.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'javax.swing.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'javax.swing.border.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'javax.swing.table.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'javax.swing.event.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.util.Vector' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.util.List' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.util.Arrays' Name.Namespace +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +'\n' Text + +'/**\n * Introduction to the Java2Demo. \n *\n * @version @(#)Intro.java\t1.19 03/06/26\n * @author Brian Lichtenwalter\n */' Comment.Multiline +'\n' Text + +'public' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'Intro' Name.Class +' ' Text +'extends' Keyword.Declaration +' ' Text +'JPanel' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Color' Name +' ' Text +'black' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Color' Name +'(' Punctuation +'20' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Color' Name +' ' Text +'white' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Color' Name +'(' Punctuation +'240' Literal.Number.Integer +',' Punctuation +' ' Text +'240' Literal.Number.Integer +',' Punctuation +' ' Text +'255' Literal.Number.Integer +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Color' Name +' ' Text +'red' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Color' Name +'(' Punctuation +'149' Literal.Number.Integer +',' Punctuation +' ' Text +'43' Literal.Number.Integer +',' Punctuation +' ' Text +'42' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Color' Name +' ' Text +'blue' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Color' Name +'(' Punctuation +'94' Literal.Number.Integer +',' Punctuation +' ' Text +'105' Literal.Number.Integer +',' Punctuation +' ' Text +'176' Literal.Number.Integer +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Color' Name +' ' Text +'yellow' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Color' Name +'(' Punctuation +'255' Literal.Number.Integer +',' Punctuation +' ' Text +'255' Literal.Number.Integer +',' Punctuation +' ' Text +'140' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Surface' Name +' ' Text +'surface' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'ScenesTable' Name +' ' Text +'scenesTable' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +' ' Text +'doTable' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Intro' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'EmptyBorder' Name +' ' Text +'eb' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'EmptyBorder' Name +'(' Punctuation +'80' Literal.Number.Integer +',' Punctuation +'110' Literal.Number.Integer +',' Punctuation +'80' Literal.Number.Integer +',' Punctuation +'110' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'BevelBorder' Name +' ' Text +'bb' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BevelBorder' Name +'(' Punctuation +'BevelBorder' Name +'.' Punctuation +'LOWERED' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'setBorder' Name +'(' Punctuation +'new' Keyword +' ' Text +'CompoundBorder' Name +'(' Punctuation +'eb' Name +',' Punctuation +'bb' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'setLayout' Name +'(' Punctuation +'new' Keyword +' ' Text +'BorderLayout' Name +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'setBackground' Name +'(' Punctuation +'Color' Name +'.' Punctuation +'gray' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'setToolTipText' Name +'(' Punctuation +'"' Literal.String +'click for scene table' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'add' Name +'(' Punctuation +'surface' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Surface' Name +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'addMouseListener' Name +'(' Punctuation +'new' Keyword +' ' Text +'MouseAdapter' Name +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'mouseClicked' Name.Function +'(' Punctuation +'MouseEvent' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'removeAll' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'doTable' Name +' ' Text +'=' Operator +' ' Text +'!' Operator +'doTable' Name +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'setToolTipText' Name +'(' Punctuation +'"' Literal.String +'click for animation' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'surface' Name +'.' Punctuation +'stop' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'scenesTable' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'scenesTable' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'ScenesTable' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'add' Name +'(' Punctuation +'scenesTable' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'setToolTipText' Name +'(' Punctuation +'"' Literal.String +'click for scene table' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'surface' Name +'.' Punctuation +'start' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'add' Name +'(' Punctuation +'surface' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'revalidate' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'repaint' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'start' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'!' Operator +'doTable' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'surface' Name +'.' Punctuation +'start' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'stop' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'!' Operator +'doTable' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'surface' Name +'.' Punctuation +'stop' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'main' Name.Function +'(' Punctuation +'String' Name +' ' Text +'argv' Name +'[' Operator +']' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'final' Keyword.Declaration +' ' Text +'Intro' Name +' ' Text +'intro' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Intro' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'WindowListener' Name +' ' Text +'l' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'WindowAdapter' Name +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'windowClosing' Name.Function +'(' Punctuation +'WindowEvent' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +'System' Name +'.' Punctuation +'exit' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +';' Punctuation +'}' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'windowDeiconified' Name.Function +'(' Punctuation +'WindowEvent' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'intro' Name +'.' Punctuation +'start' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'windowIconified' Name.Function +'(' Punctuation +'WindowEvent' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'intro' Name +'.' Punctuation +'stop' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'JFrame' Name +' ' Text +'f' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'JFrame' Name +'(' Punctuation +'"' Literal.String +'Java2D Demo - Intro' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'f' Name +'.' Punctuation +'addWindowListener' Name.Attribute +'(' Punctuation +'l' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'f' Name +'.' Punctuation +'getContentPane' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'"' Literal.String +'Center' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'intro' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'f' Name +'.' Punctuation +'pack' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Dimension' Name +' ' Text +'screenSize' Name +' ' Text +'=' Operator +' ' Text +'Toolkit' Name +'.' Punctuation +'getDefaultToolkit' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'getScreenSize' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'w' Name +' ' Text +'=' Operator +' ' Text +'720' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +' ' Text +'=' Operator +' ' Text +'510' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'f' Name +'.' Punctuation +'setLocation' Name.Attribute +'(' Punctuation +'screenSize' Name +'.' Punctuation +'width' Name.Attribute +'/' Operator +'2' Literal.Number.Integer +' ' Text +'-' Operator +' ' Text +'w' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'screenSize' Name +'.' Punctuation +'height' Name.Attribute +'/' Operator +'2' Literal.Number.Integer +' ' Text +'-' Operator +' ' Text +'h' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'f' Name +'.' Punctuation +'setSize' Name.Attribute +'(' Punctuation +'w' Name +',' Punctuation +' ' Text +'h' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'f' Name +'.' Punctuation +'setVisible' Name.Attribute +'(' Punctuation +'true' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'intro' Name +'.' Punctuation +'start' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +"/**\n * ScenesTable is the list of scenes known to the Director.\n * Scene participation, scene name and scene pause amount columns.\n * Global animation delay for scene's steps.\n */" Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'ScenesTable' Name.Class +' ' Text +'extends' Keyword.Declaration +' ' Text +'JPanel' Name +' ' Text +'implements' Keyword.Declaration +' ' Text +'ActionListener' Name +',' Punctuation +' ' Text +'ChangeListener' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'JTable' Name +' ' Text +'table' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'TableModel' Name +' ' Text +'dataModel' Name +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'ScenesTable' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'setBackground' Name +'(' Punctuation +'Color' Name +'.' Punctuation +'white' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'setLayout' Name +'(' Punctuation +'new' Keyword +' ' Text +'BorderLayout' Name +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'final' Keyword.Declaration +' ' Text +'String' Name +'[' Operator +']' Operator +' ' Text +'names' Name +' ' Text +'=' Operator +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Scenes' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Pause' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'dataModel' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'AbstractTableModel' Name +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getColumnCount' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'return' Keyword +' ' Text +'names' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getRowCount' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'return' Keyword +' ' Text +'surface' Name +'.' Punctuation +'director' Name.Attribute +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'}' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Object' Name +' ' Text +'getValueAt' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'row' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'col' Name +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'\n' Text + +' ' Text +'Surface' Name +'.' Punctuation +'Scene' Name.Attribute +' ' Text +'scene' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'Surface' Name +'.' Punctuation +'Scene' Name.Attribute +')' Punctuation +' ' Text +'surface' Name +'.' Punctuation +'director' Name.Attribute +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'row' Name +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'col' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'scene' Name +'.' Punctuation +'participate' Name.Attribute +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'col' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'scene' Name +'.' Punctuation +'name' Name.Attribute +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +' ' Text +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'scene' Name +'.' Punctuation +'pauseAmt' Name.Attribute +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'getColumnName' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'col' Name +')' Punctuation +' ' Text +'{' Punctuation +'return' Keyword +' ' Text +'names' Name +'[' Operator +'col' Name +']' Operator +';' Punctuation +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Class' Name +' ' Text +'getColumnClass' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'c' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'getValueAt' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'c' Name +')' Punctuation +'.' Punctuation +'getClass' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +' ' Text +'isCellEditable' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'row' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'col' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'col' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +' ' Text +'?' Operator +' ' Text +'true' Keyword.Constant +' ' Text +':' Punctuation +' ' Text +'false' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'setValueAt' Name.Function +'(' Punctuation +'Object' Name +' ' Text +'aValue' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'row' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'col' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Surface' Name +'.' Punctuation +'Scene' Name.Attribute +' ' Text +'scene' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'Surface' Name +'.' Punctuation +'Scene' Name.Attribute +')' Punctuation +' ' Text +'surface' Name +'.' Punctuation +'director' Name.Attribute +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'row' Name +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'col' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'scene' Name +'.' Punctuation +'participate' Name.Attribute +' ' Text +'=' Operator +' ' Text +'aValue' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'col' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'scene' Name +'.' Punctuation +'name' Name.Attribute +' ' Text +'=' Operator +' ' Text +'aValue' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +' ' Text +'\n' Text + +' ' Text +'scene' Name +'.' Punctuation +'pauseAmt' Name.Attribute +' ' Text +'=' Operator +' ' Text +'aValue' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'table' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'JTable' Name +'(' Punctuation +'dataModel' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'TableColumn' Name +' ' Text +'col' Name +' ' Text +'=' Operator +' ' Text +'table' Name +'.' Punctuation +'getColumn' Name.Attribute +'(' Punctuation +'"' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'col' Name +'.' Punctuation +'setWidth' Name.Attribute +'(' Punctuation +'16' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'col' Name +'.' Punctuation +'setMinWidth' Name.Attribute +'(' Punctuation +'16' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'col' Name +'.' Punctuation +'setMaxWidth' Name.Attribute +'(' Punctuation +'20' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'col' Name +' ' Text +'=' Operator +' ' Text +'table' Name +'.' Punctuation +'getColumn' Name.Attribute +'(' Punctuation +'"' Literal.String +'Pause' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'col' Name +'.' Punctuation +'setWidth' Name.Attribute +'(' Punctuation +'60' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'col' Name +'.' Punctuation +'setMinWidth' Name.Attribute +'(' Punctuation +'60' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'col' Name +'.' Punctuation +'setMaxWidth' Name.Attribute +'(' Punctuation +'60' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'table' Name +'.' Punctuation +'sizeColumnsToFit' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'JScrollPane' Name +' ' Text +'scrollpane' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'JScrollPane' Name +'(' Punctuation +'table' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'add' Name +'(' Punctuation +'scrollpane' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'JPanel' Name +' ' Text +'panel' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'JPanel' Name +'(' Punctuation +'new' Keyword +' ' Text +'BorderLayout' Name +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'JButton' Name +' ' Text +'b' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'JButton' Name +'(' Punctuation +'"' Literal.String +'Unselect All' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'b' Name +'.' Punctuation +'setHorizontalAlignment' Name.Attribute +'(' Punctuation +'JButton' Name +'.' Punctuation +'LEFT' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Font' Name +' ' Text +'font' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Font' Name +'(' Punctuation +'"' Literal.String +'serif' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'Font' Name +'.' Punctuation +'PLAIN' Name.Attribute +',' Punctuation +' ' Text +'10' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'b' Name +'.' Punctuation +'setFont' Name.Attribute +'(' Punctuation +'font' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'b' Name +'.' Punctuation +'addActionListener' Name.Attribute +'(' Punctuation +'this' Keyword +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'panel' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'"' Literal.String +'West' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'b' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'JSlider' Name +' ' Text +'slider' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'JSlider' Name +'(' Punctuation +'JSlider' Name +'.' Punctuation +'HORIZONTAL' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'200' Literal.Number.Integer +',' Punctuation +' ' Text +'(' Punctuation +'int' Keyword.Type +')' Punctuation +' ' Text +'surface' Name +'.' Punctuation +'sleepAmt' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'slider' Name +'.' Punctuation +'addChangeListener' Name.Attribute +'(' Punctuation +'this' Keyword +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'TitledBorder' Name +' ' Text +'tb' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'TitledBorder' Name +'(' Punctuation +'new' Keyword +' ' Text +'EtchedBorder' Name +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'tb' Name +'.' Punctuation +'setTitleFont' Name.Attribute +'(' Punctuation +'font' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'tb' Name +'.' Punctuation +'setTitle' Name.Attribute +'(' Punctuation +'"' Literal.String +'Anim delay = ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'String' Name +'.' Punctuation +'valueOf' Name.Attribute +'(' Punctuation +'surface' Name +'.' Punctuation +'sleepAmt' Name.Attribute +')' Punctuation +' ' Text +'+' Operator +' ' Text +'"' Literal.String +' ms' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'slider' Name +'.' Punctuation +'setBorder' Name.Attribute +'(' Punctuation +'tb' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'slider' Name +'.' Punctuation +'setPreferredSize' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Dimension' Name +'(' Punctuation +'140' Literal.Number.Integer +',' Punctuation +'40' Literal.Number.Integer +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'slider' Name +'.' Punctuation +'setMinimumSize' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Dimension' Name +'(' Punctuation +'100' Literal.Number.Integer +',' Punctuation +'40' Literal.Number.Integer +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'slider' Name +'.' Punctuation +'setMaximumSize' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Dimension' Name +'(' Punctuation +'180' Literal.Number.Integer +',' Punctuation +'40' Literal.Number.Integer +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'panel' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'"' Literal.String +'East' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'slider' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'add' Name +'(' Punctuation +'"' Literal.String +'South' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'panel' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'actionPerformed' Name.Function +'(' Punctuation +'ActionEvent' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'JButton' Name +' ' Text +'b' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'JButton' Name +')' Punctuation +' ' Text +'e' Name +'.' Punctuation +'getSource' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'b' Name +'.' Punctuation +'setSelected' Name.Attribute +'(' Punctuation +'!' Operator +'b' Name +'.' Punctuation +'isSelected' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'b' Name +'.' Punctuation +'setText' Name.Attribute +'(' Punctuation +'b' Name +'.' Punctuation +'isSelected' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'?' Operator +' ' Text +'"' Literal.String +'Select All' Literal.String +'"' Literal.String +' ' Text +':' Punctuation +' ' Text +'"' Literal.String +'Unselect All' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'surface' Name +'.' Punctuation +'director' Name.Attribute +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Surface' Name +'.' Punctuation +'Scene' Name.Attribute +' ' Text +'scene' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'Surface' Name +'.' Punctuation +'Scene' Name.Attribute +')' Punctuation +' ' Text +'surface' Name +'.' Punctuation +'director' Name.Attribute +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'scene' Name +'.' Punctuation +'participate' Name.Attribute +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Boolean' Name +'(' Punctuation +'!' Operator +'b' Name +'.' Punctuation +'isSelected' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\t ' Text +'table' Name +'.' Punctuation +'tableChanged' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'TableModelEvent' Name +'(' Punctuation +'dataModel' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'stateChanged' Name.Function +'(' Punctuation +'ChangeEvent' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'JSlider' Name +' ' Text +'slider' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'JSlider' Name +')' Punctuation +' ' Text +'e' Name +'.' Punctuation +'getSource' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'value' Name +' ' Text +'=' Operator +' ' Text +'slider' Name +'.' Punctuation +'getValue' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'TitledBorder' Name +' ' Text +'tb' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'TitledBorder' Name +')' Punctuation +' ' Text +'slider' Name +'.' Punctuation +'getBorder' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'tb' Name +'.' Punctuation +'setTitle' Name.Attribute +'(' Punctuation +'"' Literal.String +'Anim delay = ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'String' Name +'.' Punctuation +'valueOf' Name.Attribute +'(' Punctuation +'value' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +'"' Literal.String +' ms' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'surface' Name +'.' Punctuation +'sleepAmt' Name.Attribute +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'long' Keyword.Type +')' Punctuation +' ' Text +'value' Name +';' Punctuation +'\n' Text + +' ' Text +'slider' Name +'.' Punctuation +'repaint' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End ScenesTable class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Surface is the stage where the Director plays its scenes.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'Surface' Name.Class +' ' Text +'extends' Keyword.Declaration +' ' Text +'JPanel' Name +' ' Text +'implements' Keyword.Declaration +' ' Text +'Runnable' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Surface' Name +' ' Text +'surf' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Image' Name +' ' Text +'cupanim' Name +',' Punctuation +' ' Text +'java_logo' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'BufferedImage' Name +' ' Text +'bimg' Name +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Director' Name +' ' Text +'director' Name +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'long' Keyword.Type +' ' Text +'sleepAmt' Name +' ' Text +'=' Operator +' ' Text +'30' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Thread' Name +' ' Text +'thread' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Surface' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'surf' Name +' ' Text +'=' Operator +' ' Text +'this' Keyword +';' Punctuation +'\n' Text + +' ' Text +'setBackground' Name +'(' Punctuation +'black' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'setLayout' Name +'(' Punctuation +'new' Keyword +' ' Text +'BorderLayout' Name +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'addMouseListener' Name +'(' Punctuation +'new' Keyword +' ' Text +'MouseAdapter' Name +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'mouseClicked' Name.Function +'(' Punctuation +'MouseEvent' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'thread' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'start' Name +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'else' Keyword +' ' Text +'stop' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'cupanim' Name +' ' Text +'=' Operator +' ' Text +'DemoImages' Name +'.' Punctuation +'getImage' Name.Attribute +'(' Punctuation +'"' Literal.String +'cupanim.gif' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'this' Keyword +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'java_logo' Name +' ' Text +'=' Operator +' ' Text +'DemoImages' Name +'.' Punctuation +'getImage' Name.Attribute +'(' Punctuation +'"' Literal.String +'java_logo.png' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'this' Keyword +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'director' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Director' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'FontMetrics' Name +' ' Text +'getMetrics' Name.Function +'(' Punctuation +'Font' Name +' ' Text +'font' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'surf' Name +'.' Punctuation +'getFontMetrics' Name.Attribute +'(' Punctuation +'font' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'paint' Name.Function +'(' Punctuation +'Graphics' Name +' ' Text +'g' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Dimension' Name +' ' Text +'d' Name +' ' Text +'=' Operator +' ' Text +'getSize' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\t ' Text +'if' Keyword +' ' Text +'(' Punctuation +'d' Name +'.' Punctuation +'width' Name.Attribute +' ' Text +'<' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'|' Operator +'|' Operator +' ' Text +'d' Name +'.' Punctuation +'height' Name.Attribute +' ' Text +'<' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +'\t\t' Text +'return' Keyword +';' Punctuation +'\n' Text + +'\t ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'bimg' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +' ' Text +'|' Operator +'|' Operator +' ' Text +'bimg' Name +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'d' Name +'.' Punctuation +'width' Name.Attribute +' ' Text +'|' Operator +'|' Operator +' ' Text +'bimg' Name +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'d' Name +'.' Punctuation +'height' Name.Attribute +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'bimg' Name +' ' Text +'=' Operator +' ' Text +'getGraphicsConfiguration' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'createCompatibleImage' Name.Attribute +'(' Punctuation +'d' Name +'.' Punctuation +'width' Name.Attribute +',' Punctuation +' ' Text +'d' Name +'.' Punctuation +'height' Name.Attribute +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'// reset future scenes\n' Comment.Single + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'index' Name +'+' Operator +'1' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'director' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'(' Punctuation +'(' Punctuation +'Scene' Name +')' Punctuation +' ' Text +'director' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +'.' Punctuation +'reset' Name.Attribute +'(' Punctuation +'d' Name +'.' Punctuation +'width' Name.Attribute +',' Punctuation +' ' Text +'d' Name +'.' Punctuation +'height' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Scene' Name +' ' Text +'scene' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'Scene' Name +')' Punctuation +' ' Text +'director' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'index' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'scene' Name +'.' Punctuation +'index' Name.Attribute +' ' Text +'<' Operator +'=' Operator +' ' Text +'scene' Name +'.' Punctuation +'length' Name.Attribute +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'thread' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'scene' Name +'.' Punctuation +'step' Name.Attribute +'(' Punctuation +'d' Name +'.' Punctuation +'width' Name.Attribute +',' Punctuation +' ' Text +'d' Name +'.' Punctuation +'height' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +' ' Text +'=' Operator +' ' Text +'bimg' Name +'.' Punctuation +'createGraphics' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setRenderingHint' Name.Attribute +'(' Punctuation +'RenderingHints' Name +'.' Punctuation +'KEY_ANTIALIASING' Name.Attribute +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'RenderingHints' Name +'.' Punctuation +'VALUE_ANTIALIAS_ON' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setBackground' Name.Attribute +'(' Punctuation +'getBackground' Name +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'clearRect' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'d' Name +'.' Punctuation +'width' Name.Attribute +',' Punctuation +' ' Text +'d' Name +'.' Punctuation +'height' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'scene' Name +'.' Punctuation +'render' Name.Attribute +'(' Punctuation +'d' Name +'.' Punctuation +'width' Name.Attribute +',' Punctuation +' ' Text +'d' Name +'.' Punctuation +'height' Name.Attribute +',' Punctuation +' ' Text +'g2' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'thread' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'// increment scene.index after scene.render\n' Comment.Single + +' ' Text +'scene' Name +'.' Punctuation +'index' Name.Attribute +'+' Operator +'+' Operator +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'dispose' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'g' Name +'.' Punctuation +'drawImage' Name.Attribute +'(' Punctuation +'bimg' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'this' Keyword +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'start' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'thread' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'thread' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Thread' Name +'(' Punctuation +'this' Keyword +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'thread' Name +'.' Punctuation +'setPriority' Name.Attribute +'(' Punctuation +'Thread' Name +'.' Punctuation +'MIN_PRIORITY' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'thread' Name +'.' Punctuation +'setName' Name.Attribute +'(' Punctuation +'"' Literal.String +'Intro' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'thread' Name +'.' Punctuation +'start' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'synchronized' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'stop' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'thread' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'thread' Name +'.' Punctuation +'interrupt' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'thread' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'notifyAll' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'Dimension' Name +' ' Text +'d' Name +' ' Text +'=' Operator +' ' Text +'getSize' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'director' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'(' Punctuation +'(' Punctuation +'Scene' Name +')' Punctuation +' ' Text +'director' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +'.' Punctuation +'reset' Name.Attribute +'(' Punctuation +'d' Name +'.' Punctuation +'width' Name.Attribute +',' Punctuation +' ' Text +'d' Name +'.' Punctuation +'height' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'run' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Thread' Name +' ' Text +'me' Name +' ' Text +'=' Operator +' ' Text +'Thread' Name +'.' Punctuation +'currentThread' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'while' Keyword +' ' Text +'(' Punctuation +'thread' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'me' Name +' ' Text +'&' Operator +'&' Operator +' ' Text +'!' Operator +'isShowing' Name +'(' Punctuation +')' Punctuation +' ' Text +'|' Operator +'|' Operator +' ' Text +'getSize' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'width' Name.Attribute +' ' Text +'<' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'try' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'thread' Name +'.' Punctuation +'sleep' Name.Attribute +'(' Punctuation +'500' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'InterruptedException' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'return' Keyword +';' Punctuation +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'index' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'reset' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'while' Keyword +' ' Text +'(' Punctuation +'thread' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'me' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Scene' Name +' ' Text +'scene' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'Scene' Name +')' Punctuation +' ' Text +'director' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'index' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'(' Punctuation +'Boolean' Name +')' Punctuation +' ' Text +'scene' Name +'.' Punctuation +'participate' Name.Attribute +')' Punctuation +'.' Punctuation +'booleanValue' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'repaint' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'try' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'thread' Name +'.' Punctuation +'sleep' Name.Attribute +'(' Punctuation +'sleepAmt' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'InterruptedException' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'break' Keyword +';' Punctuation +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'scene' Name +'.' Punctuation +'index' Name.Attribute +' ' Text +'>' Operator +' ' Text +'scene' Name +'.' Punctuation +'length' Name.Attribute +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'scene' Name +'.' Punctuation +'pause' Name.Attribute +'(' Punctuation +'thread' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'+' Operator +'+' Operator +'index' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'director' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'reset' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'+' Operator +'+' Operator +'index' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'director' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'reset' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'thread' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Part is a piece of the scene. Classes must implement Part\n * inorder to participate in a scene.\n */' Comment.Multiline +'\n' Text + +' ' Text +'interface' Keyword.Declaration +' ' Text +'Part' Name.Class +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'newwidth' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'newheight' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Director is the holder of the scenes, their names & pause amounts\n * between scenes.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'Director' Name.Class +' ' Text +'extends' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'GradientPaint' Name +' ' Text +'gp' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'40' Literal.Number.Integer +',' Punctuation +'blue' Name +',' Punctuation +'38' Literal.Number.Integer +',' Punctuation +'2' Literal.Number.Integer +',' Punctuation +'black' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Font' Name +' ' Text +'f1' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Font' Name +'(' Punctuation +'"' Literal.String +'serif' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'Font' Name +'.' Punctuation +'PLAIN' Name.Attribute +',' Punctuation +' ' Text +'200' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Font' Name +' ' Text +'f2' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Font' Name +'(' Punctuation +'"' Literal.String +'serif' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'Font' Name +'.' Punctuation +'PLAIN' Name.Attribute +',' Punctuation +' ' Text +'120' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Font' Name +' ' Text +'f3' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Font' Name +'(' Punctuation +'"' Literal.String +'serif' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'Font' Name +'.' Punctuation +'PLAIN' Name.Attribute +',' Punctuation +' ' Text +'72' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Object' Name +' ' Text +'parts' Name +'[' Operator +']' Operator +'[' Operator +']' Operator +'[' Operator +']' Operator +' ' Text +'=' Operator +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'J - scale text on gradient' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'BURI' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'J' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f1' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'SCI' Name.Attribute +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'2 - scale & rotate text on gradient' Literal.String +'"' Literal.String +' ' Text +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'BURI' Name.Attribute +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'22' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'2' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f1' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'RI' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TxE' Name +'.' Punctuation +'SCI' Name.Attribute +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'22' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'D - scale text on gradient' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'BURI' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'D' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f1' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'SCI' Name.Attribute +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Java2D - scale & rotate text on gradient' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'1000' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'SIH' Name.Attribute +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'Java2D' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f2' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'RI' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TxE' Name +'.' Punctuation +'SCI' Name.Attribute +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Previous scene dither dissolve out' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'DdE' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +',' Punctuation +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Graphics Features' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'999' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RECT' Name.Attribute +',' Punctuation +' ' Text +'null' Keyword.Constant +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'15' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'IMG' Name.Attribute +',' Punctuation +' ' Text +'java_logo' Name +',' Punctuation +' ' Text +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'15' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RNA' Name.Attribute +' ' Text +'|' Operator +' ' Text +'Temp' Name +'.' Punctuation +'INA' Name.Attribute +',' Punctuation +' ' Text +'java_logo' Name +',' Punctuation +' ' Text +'16' Literal.Number.Integer +',' Punctuation +' ' Text +'130' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Features' Name +'(' Punctuation +'Features' Name +'.' Punctuation +'GRAPHICS' Name.Attribute +',' Punctuation +' ' Text +'16' Literal.Number.Integer +',' Punctuation +' ' Text +'130' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Java2D - texture text on gradient' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'1000' Literal.String +'"' Literal.String +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'WI' Name.Attribute +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'WD' Name.Attribute +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'21' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TpE' Name +'(' Punctuation +'TpE' Name +'.' Punctuation +'OI' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TpE' Name +'.' Punctuation +'NF' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'4' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'10' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TpE' Name +'(' Punctuation +'TpE' Name +'.' Punctuation +'OD' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TpE' Name +'.' Punctuation +'NF' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'4' Literal.Number.Integer +',' Punctuation +' ' Text +'11' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TpE' Name +'(' Punctuation +'TpE' Name +'.' Punctuation +'OI' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TpE' Name +'.' Punctuation +'NF' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TpE' Name +'.' Punctuation +'HAF' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +'5' Literal.Number.Integer +',' Punctuation +'21' Literal.Number.Integer +',' Punctuation +'40' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'Java2D' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f2' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'null' Keyword.Constant +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Previous scene random close out' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'CoE' Name +'(' Punctuation +'CoE' Name +'.' Punctuation +'RAND' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Text Features' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'999' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RECT' Name.Attribute +',' Punctuation +' ' Text +'null' Keyword.Constant +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'15' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'IMG' Name.Attribute +',' Punctuation +' ' Text +'java_logo' Name +',' Punctuation +' ' Text +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'15' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RNA' Name.Attribute +' ' Text +'|' Operator +' ' Text +'Temp' Name +'.' Punctuation +'INA' Name.Attribute +',' Punctuation +' ' Text +'java_logo' Name +',' Punctuation +' ' Text +'16' Literal.Number.Integer +',' Punctuation +' ' Text +'130' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Features' Name +'(' Punctuation +'Features' Name +'.' Punctuation +'TEXT' Name.Attribute +',' Punctuation +' ' Text +'16' Literal.Number.Integer +',' Punctuation +' ' Text +'130' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Java2D - composite text on texture' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'1000' Literal.String +'"' Literal.String +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'TpE' Name +'(' Punctuation +'TpE' Name +'.' Punctuation +'RI' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'gp' Name +',' Punctuation +' ' Text +'40' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TpE' Name +'(' Punctuation +'TpE' Name +'.' Punctuation +'RD' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'gp' Name +',' Punctuation +' ' Text +'40' Literal.Number.Integer +',' Punctuation +' ' Text +'21' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TpE' Name +'(' Punctuation +'TpE' Name +'.' Punctuation +'RI' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'gp' Name +',' Punctuation +' ' Text +'40' Literal.Number.Integer +',' Punctuation +' ' Text +'41' Literal.Number.Integer +',' Punctuation +' ' Text +'60' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'Java2D' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f2' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'AC' Name.Attribute +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'60' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Previous scene dither dissolve out' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'DdE' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +',' Punctuation +' ' Text +'4' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Imaging Features' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'999' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RECT' Name.Attribute +',' Punctuation +' ' Text +'null' Keyword.Constant +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'15' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'IMG' Name.Attribute +',' Punctuation +' ' Text +'java_logo' Name +',' Punctuation +' ' Text +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'15' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RNA' Name.Attribute +' ' Text +'|' Operator +' ' Text +'Temp' Name +'.' Punctuation +'INA' Name.Attribute +',' Punctuation +' ' Text +'java_logo' Name +',' Punctuation +' ' Text +'16' Literal.Number.Integer +',' Punctuation +' ' Text +'130' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Features' Name +'(' Punctuation +'Features' Name +'.' Punctuation +'IMAGES' Name.Attribute +',' Punctuation +' ' Text +'16' Literal.Number.Integer +',' Punctuation +' ' Text +'130' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Java2D - text on gradient' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'1000' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'SDH' Name.Attribute +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'SIH' Name.Attribute +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'21' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'SDH' Name.Attribute +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'41' Literal.Number.Integer +',' Punctuation +' ' Text +'50' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'INC' Name.Attribute +' ' Text +'|' Operator +' ' Text +'GpE' Name +'.' Punctuation +'NF' Name.Attribute +',' Punctuation +' ' Text +'red' Name +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'50' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'Java2D' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f2' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'NOP' Name.Attribute +',' Punctuation +' ' Text +'null' Keyword.Constant +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'50' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Previous scene ellipse close out' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'CoE' Name +'(' Punctuation +'CoE' Name +'.' Punctuation +'OVAL' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Color Features' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'999' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RECT' Name.Attribute +',' Punctuation +' ' Text +'null' Keyword.Constant +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'15' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'IMG' Name.Attribute +',' Punctuation +' ' Text +'java_logo' Name +',' Punctuation +' ' Text +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'15' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RNA' Name.Attribute +' ' Text +'|' Operator +' ' Text +'Temp' Name +'.' Punctuation +'INA' Name.Attribute +',' Punctuation +' ' Text +'java_logo' Name +',' Punctuation +' ' Text +'16' Literal.Number.Integer +',' Punctuation +' ' Text +'99' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Features' Name +'(' Punctuation +'Features' Name +'.' Punctuation +'COLOR' Name.Attribute +',' Punctuation +' ' Text +'16' Literal.Number.Integer +',' Punctuation +' ' Text +'99' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Java2D - composite and rotate text on paints' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'2000' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'BURI' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'GpE' Name +'(' Punctuation +'GpE' Name +'.' Punctuation +'BURD' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'21' Literal.Number.Integer +',' Punctuation +' ' Text +'30' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TpE' Name +'(' Punctuation +'TpE' Name +'.' Punctuation +'OI' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TpE' Name +'.' Punctuation +'HAF' Name.Attribute +',' Punctuation +' ' Text +'black' Name +',' Punctuation +' ' Text +'blue' Name +',' Punctuation +' ' Text +'10' Literal.Number.Integer +',' Punctuation +' ' Text +'31' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'Java2D' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f2' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'AC' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TxE' Name +'.' Punctuation +'RI' Name.Attribute +',' Punctuation +' ' Text +'yellow' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Previous scene subimage transform out' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'SiE' Name +'(' Punctuation +'60' Literal.Number.Integer +',' Punctuation +' ' Text +'60' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'40' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'CREDITS - transform in' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'1000' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'LnE' Name +'(' Punctuation +'LnE' Name +'.' Punctuation +'ACI' Name.Attribute +' ' Text +'|' Operator +' ' Text +'LnE' Name +'.' Punctuation +'ZOOMI' Name.Attribute +' ' Text +'|' Operator +' ' Text +'LnE' Name +'.' Punctuation +'RI' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'60' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'CREDITS' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f3' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'AC' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TxE' Name +'.' Punctuation +'SCI' Name.Attribute +',' Punctuation +' ' Text +'Color' Name +'.' Punctuation +'red' Name.Attribute +',' Punctuation +'20' Literal.Number.Integer +',' Punctuation +'30' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'CREDITS' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f3' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'SCXD' Name.Attribute +',' Punctuation +' ' Text +'Color' Name +'.' Punctuation +'red' Name.Attribute +',' Punctuation +' ' Text +'31' Literal.Number.Integer +',' Punctuation +' ' Text +'38' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'CREDITS' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f3' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'SCXI' Name.Attribute +',' Punctuation +' ' Text +'Color' Name +'.' Punctuation +'red' Name.Attribute +',' Punctuation +' ' Text +'39' Literal.Number.Integer +',' Punctuation +' ' Text +'48' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'CREDITS' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f3' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'SCXD' Name.Attribute +',' Punctuation +' ' Text +'Color' Name +'.' Punctuation +'red' Name.Attribute +',' Punctuation +' ' Text +'49' Literal.Number.Integer +',' Punctuation +' ' Text +'54' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'CREDITS' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f3' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'SCXI' Name.Attribute +',' Punctuation +' ' Text +'Color' Name +'.' Punctuation +'red' Name.Attribute +',' Punctuation +' ' Text +'55' Literal.Number.Integer +',' Punctuation +' ' Text +'60' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'CREDITS - transform out' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'0' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'LnE' Name +'(' Punctuation +'LnE' Name +'.' Punctuation +'ACD' Name.Attribute +' ' Text +'|' Operator +' ' Text +'LnE' Name +'.' Punctuation +'ZOOMD' Name.Attribute +' ' Text +'|' Operator +' ' Text +'LnE' Name +'.' Punctuation +'RD' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'45' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'CREDITS' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f3' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'Color' Name +'.' Punctuation +'red' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'9' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'TxE' Name +'(' Punctuation +'"' Literal.String +'CREDITS' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f3' Name +',' Punctuation +' ' Text +'TxE' Name +'.' Punctuation +'SCD' Name.Attribute +' ' Text +'|' Operator +' ' Text +'TxE' Name +'.' Punctuation +'RD' Name.Attribute +',' Punctuation +' ' Text +'Color' Name +'.' Punctuation +'red' Name.Attribute +',' Punctuation +'10' Literal.Number.Integer +',' Punctuation +'30' Literal.Number.Integer +')' Punctuation +'}' Punctuation +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Contributors' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'1000' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RECT' Name.Attribute +',' Punctuation +' ' Text +'null' Keyword.Constant +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'30' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'IMG' Name.Attribute +',' Punctuation +' ' Text +'cupanim' Name +',' Punctuation +' ' Text +'4' Literal.Number.Integer +',' Punctuation +' ' Text +'30' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Temp' Name +'(' Punctuation +'Temp' Name +'.' Punctuation +'RNA' Name.Attribute +' ' Text +'|' Operator +' ' Text +'Temp' Name +'.' Punctuation +'INA' Name.Attribute +',' Punctuation +' ' Text +'cupanim' Name +',' Punctuation +' ' Text +'31' Literal.Number.Integer +',' Punctuation +' ' Text +'200' Literal.Number.Integer +')' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'new' Keyword +' ' Text +'Contributors' Name +'(' Punctuation +'34' Literal.Number.Integer +',' Punctuation +' ' Text +'200' Literal.Number.Integer +')' Punctuation +' ' Text +'}' Punctuation +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Director' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'parts' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Vector' Name +' ' Text +'v' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'j' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'j' Name +' ' Text +'<' Operator +' ' Text +'parts' Name +'[' Operator +'i' Name +']' Operator +'[' Operator +'1' Literal.Number.Integer +']' Operator +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'j' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'v' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'parts' Name +'[' Operator +'i' Name +']' Operator +'[' Operator +'1' Literal.Number.Integer +']' Operator +'[' Operator +'j' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'addElement' Name +'(' Punctuation +'new' Keyword +' ' Text +'Scene' Name +'(' Punctuation +'v' Name +',' Punctuation +' ' Text +'parts' Name +'[' Operator +'i' Name +']' Operator +'[' Operator +'0' Literal.Number.Integer +']' Operator +'[' Operator +'0' Literal.Number.Integer +']' Operator +',' Punctuation +' ' Text +'parts' Name +'[' Operator +'i' Name +']' Operator +'[' Operator +'0' Literal.Number.Integer +']' Operator +'[' Operator +'1' Literal.Number.Integer +']' Operator +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Scene is the manager of the parts.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'Scene' Name.Class +' ' Text +'extends' Keyword.Declaration +' ' Text +'Object' Name +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Object' Name +' ' Text +'name' Name +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Object' Name +' ' Text +'participate' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Boolean' Name +'(' Punctuation +'true' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Object' Name +' ' Text +'pauseAmt' Name +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'parts' Name +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'length' Name +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Scene' Name.Function +'(' Punctuation +'Vector' Name +' ' Text +'parts' Name +',' Punctuation +' ' Text +'Object' Name +' ' Text +'name' Name +',' Punctuation +' ' Text +'Object' Name +' ' Text +'pauseAmt' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'name' Name.Attribute +' ' Text +'=' Operator +' ' Text +'name' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'parts' Name.Attribute +' ' Text +'=' Operator +' ' Text +'parts' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'pauseAmt' Name.Attribute +' ' Text +'=' Operator +' ' Text +'pauseAmt' Name +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'parts' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'(' Punctuation +'Part' Name +')' Punctuation +' ' Text +'parts' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +'.' Punctuation +'getEnd' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'>' Operator +' ' Text +'length' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'length' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'(' Punctuation +'Part' Name +')' Punctuation +' ' Text +'parts' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +'.' Punctuation +'getEnd' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'parts' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'(' Punctuation +'(' Punctuation +'Part' Name +')' Punctuation +' ' Text +'parts' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +'.' Punctuation +'reset' Name.Attribute +'(' Punctuation +'w' Name +',' Punctuation +' ' Text +'h' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'parts' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Part' Name +' ' Text +'part' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'Part' Name +')' Punctuation +' ' Text +'parts' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'index' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'part' Name +'.' Punctuation +'getBegin' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'&' Operator +'&' Operator +' ' Text +'index' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'part' Name +'.' Punctuation +'getEnd' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'part' Name +'.' Punctuation +'step' Name.Attribute +'(' Punctuation +'w' Name +',' Punctuation +' ' Text +'h' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'parts' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Part' Name +' ' Text +'part' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'Part' Name +')' Punctuation +' ' Text +'parts' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'index' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'part' Name +'.' Punctuation +'getBegin' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'&' Operator +'&' Operator +' ' Text +'index' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'part' Name +'.' Punctuation +'getEnd' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'part' Name +'.' Punctuation +'render' Name.Attribute +'(' Punctuation +'w' Name +',' Punctuation +' ' Text +'h' Name +',' Punctuation +' ' Text +'g2' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'pause' Name.Function +'(' Punctuation +'Thread' Name +' ' Text +'thread' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'try' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'thread' Name +'.' Punctuation +'sleep' Name.Attribute +'(' Punctuation +'Long' Name +'.' Punctuation +'parseLong' Name.Attribute +'(' Punctuation +'(' Punctuation +'String' Name +')' Punctuation +' ' Text +'pauseAmt' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'Exception' Name +' ' Text +'e' Name +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'System' Name +'.' Punctuation +'gc' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End Scene class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Text Effect. Transformation of characters. Clip or fill.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'TxE' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'INC' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'DEC' Name +' ' Text +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'R' Name +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +';' Punctuation +' ' Text +'// rotate\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RI' Name +' ' Text +'=' Operator +' ' Text +'R' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RD' Name +' ' Text +'=' Operator +' ' Text +'R' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SC' Name +' ' Text +'=' Operator +' ' Text +'8' Literal.Number.Integer +';' Punctuation +' ' Text +'// scale\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SCI' Name +' ' Text +'=' Operator +' ' Text +'SC' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SCD' Name +' ' Text +'=' Operator +' ' Text +'SC' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SCX' Name +' ' Text +'=' Operator +' ' Text +'16' Literal.Number.Integer +';' Punctuation +' ' Text +'// scale invert x\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SCXI' Name +' ' Text +'=' Operator +' ' Text +'SCX' Name +' ' Text +'|' Operator +' ' Text +'SC' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SCXD' Name +' ' Text +'=' Operator +' ' Text +'SCX' Name +' ' Text +'|' Operator +' ' Text +'SC' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SCY' Name +' ' Text +'=' Operator +' ' Text +'32' Literal.Number.Integer +';' Punctuation +' ' Text +'// scale invert y\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SCYI' Name +' ' Text +'=' Operator +' ' Text +'SCY' Name +' ' Text +'|' Operator +' ' Text +'SC' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SCYD' Name +' ' Text +'=' Operator +' ' Text +'SCY' Name +' ' Text +'|' Operator +' ' Text +'SC' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'AC' Name +' ' Text +'=' Operator +' ' Text +'64' Literal.Number.Integer +';' Punctuation +' ' Text +'// AlphaComposite\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'CLIP' Name +' ' Text +'=' Operator +' ' Text +'128' Literal.Number.Integer +';' Punctuation +' ' Text +'// Clipping\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'NOP' Name +' ' Text +'=' Operator +' ' Text +'512' Literal.Number.Integer +';' Punctuation +' ' Text +'// No Paint \n' Comment.Single + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'double' Keyword.Type +' ' Text +'rIncr' Name +',' Punctuation +' ' Text +'sIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'double' Keyword.Type +' ' Text +'sx' Name +',' Punctuation +' ' Text +'sy' Name +',' Punctuation +' ' Text +'rotate' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Shape' Name +' ' Text +'shapes' Name +'[' Operator +']' Operator +',' Punctuation +' ' Text +'txShapes' Name +'[' Operator +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'sw' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'numRev' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Paint' Name +' ' Text +'paint' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'TxE' Name.Function +'(' Punctuation +'String' Name +' ' Text +'text' Name +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'Font' Name +' ' Text +'font' Name +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'type' Name +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'Paint' Name +' ' Text +'paint' Name +',' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'type' Name.Attribute +' ' Text +'=' Operator +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'paint' Name.Attribute +' ' Text +'=' Operator +' ' Text +'paint' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'setIncrements' Name +'(' Punctuation +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'char' Keyword.Type +'[' Operator +']' Operator +' ' Text +'chars' Name +' ' Text +'=' Operator +' ' Text +'text' Name +'.' Punctuation +'toCharArray' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'shapes' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Shape' Name +'[' Operator +'chars' Name +'.' Punctuation +'length' Name.Attribute +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'txShapes' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Shape' Name +'[' Operator +'chars' Name +'.' Punctuation +'length' Name.Attribute +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'FontRenderContext' Name +' ' Text +'frc' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'FontRenderContext' Name +'(' Punctuation +'null' Keyword.Constant +',' Punctuation +'true' Keyword.Constant +',' Punctuation +'true' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'TextLayout' Name +' ' Text +'tl' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'TextLayout' Name +'(' Punctuation +'text' Name +',' Punctuation +' ' Text +'font' Name +',' Punctuation +' ' Text +'frc' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sw' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'int' Keyword.Type +')' Punctuation +' ' Text +'tl' Name +'.' Punctuation +'getOutline' Name.Attribute +'(' Punctuation +'null' Keyword.Constant +')' Punctuation +'.' Punctuation +'getBounds' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'j' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'j' Name +' ' Text +'<' Operator +' ' Text +'chars' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'j' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'String' Name +' ' Text +'s' Name +' ' Text +'=' Operator +' ' Text +'String' Name +'.' Punctuation +'valueOf' Name.Attribute +'(' Punctuation +'chars' Name +'[' Operator +'j' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'shapes' Name +'[' Operator +'j' Name +']' Operator +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'TextLayout' Name +'(' Punctuation +'s' Name +',' Punctuation +' ' Text +'font' Name +',' Punctuation +' ' Text +'frc' Name +')' Punctuation +'.' Punctuation +'getOutline' Name.Attribute +'(' Punctuation +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'setIncrements' Name.Function +'(' Punctuation +'double' Keyword.Type +' ' Text +'numRevolutions' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'numRev' Name.Attribute +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'int' Keyword.Type +')' Punctuation +' ' Text +'numRevolutions' Name +';' Punctuation +'\n' Text + +' ' Text +'rIncr' Name +' ' Text +'=' Operator +' ' Text +'360.0' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +' ' Text +'/' Operator +' ' Text +'numRevolutions' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sIncr' Name +' ' Text +'=' Operator +' ' Text +'1.0' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'SCX' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'|' Operator +'|' Operator +' ' Text +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'SCY' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'sIncr' Name +' ' Text +'*' Operator +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'DEC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rIncr' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'rIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'sIncr' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'sIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'type' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'SCXI' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'sx' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'1.0' Literal.Number.Float +';' Punctuation +' ' Text +'sy' Name +' ' Text +'=' Operator +' ' Text +'1.0' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'type' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'SCYI' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'sx' Name +' ' Text +'=' Operator +' ' Text +'1.0' Literal.Number.Float +';' Punctuation +' ' Text +'sy' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'1.0' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'sx' Name +' ' Text +'=' Operator +' ' Text +'sy' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'DEC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'?' Operator +' ' Text +'1.0' Literal.Number.Float +' ' Text +':' Punctuation +' ' Text +'0.0' Literal.Number.Float +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'rotate' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'charWidth' Name +' ' Text +'=' Operator +' ' Text +'w' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'sw' Name +'/' Operator +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'shapes' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'AffineTransform' Name +' ' Text +'at' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'AffineTransform' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Rectangle2D' Name +' ' Text +'maxBounds' Name +' ' Text +'=' Operator +' ' Text +'shapes' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'getBounds' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'at' Name +'.' Punctuation +'translate' Name.Attribute +'(' Punctuation +'charWidth' Name +',' Punctuation +' ' Text +'h' Name +'/' Operator +'2' Literal.Number.Integer +'+' Operator +'maxBounds' Name +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'charWidth' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'(' Punctuation +'float' Keyword.Type +')' Punctuation +' ' Text +'maxBounds' Name +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'Shape' Name +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'at' Name +'.' Punctuation +'createTransformedShape' Name.Attribute +'(' Punctuation +'shapes' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Rectangle2D' Name +' ' Text +'b1' Name +' ' Text +'=' Operator +' ' Text +'shape' Name +'.' Punctuation +'getBounds2D' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'R' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'at' Name +'.' Punctuation +'rotate' Name.Attribute +'(' Punctuation +'Math' Name +'.' Punctuation +'toRadians' Name.Attribute +'(' Punctuation +'rotate' Name +')' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'SC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'at' Name +'.' Punctuation +'scale' Name.Attribute +'(' Punctuation +'sx' Name +',' Punctuation +' ' Text +'sy' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'at' Name +'.' Punctuation +'createTransformedShape' Name.Attribute +'(' Punctuation +'shapes' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Rectangle2D' Name +' ' Text +'b2' Name +' ' Text +'=' Operator +' ' Text +'shape' Name +'.' Punctuation +'getBounds2D' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'double' Keyword.Type +' ' Text +'xx' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'b1' Name +'.' Punctuation +'getX' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +'b1' Name +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +'\n' Text + +' ' Text +'-' Operator +' ' Text +'(' Punctuation +'b2' Name +'.' Punctuation +'getX' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +'b2' Name +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'double' Keyword.Type +' ' Text +'yy' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'b1' Name +'.' Punctuation +'getY' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +'b1' Name +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +'\n' Text + +' ' Text +'-' Operator +' ' Text +'(' Punctuation +'b2' Name +'.' Punctuation +'getY' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +'b2' Name +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'AffineTransform' Name +' ' Text +'toCenterAT' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'AffineTransform' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'toCenterAT' Name +'.' Punctuation +'translate' Name.Attribute +'(' Punctuation +'xx' Name +',' Punctuation +' ' Text +'yy' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'toCenterAT' Name +'.' Punctuation +'concatenate' Name.Attribute +'(' Punctuation +'at' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'txShapes' Name +'[' Operator +'i' Name +']' Operator +' ' Text +'=' Operator +' ' Text +'toCenterAT' Name +'.' Punctuation +'createTransformedShape' Name.Attribute +'(' Punctuation +'shapes' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'// avoid over rotation\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'Math' Name +'.' Punctuation +'abs' Name.Attribute +'(' Punctuation +'rotate' Name +')' Punctuation +' ' Text +'<' Operator +'=' Operator +' ' Text +'numRev' Name +' ' Text +'*' Operator +' ' Text +'360' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rotate' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'rIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'SCX' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'sx' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'sIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'SCY' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'sy' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'sIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'sx' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'sIncr' Name +';' Punctuation +' ' Text +'sy' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'sIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Composite' Name +' ' Text +'saveAC' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'AC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'&' Operator +'&' Operator +' ' Text +'sx' Name +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'&' Operator +'&' Operator +' ' Text +'sx' Name +' ' Text +'<' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'saveAC' Name +' ' Text +'=' Operator +' ' Text +'g2' Name +'.' Punctuation +'getComposite' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setComposite' Name.Attribute +'(' Punctuation +'AlphaComposite' Name +'.' Punctuation +'getInstance' Name.Attribute +'(' Punctuation +'AlphaComposite' Name +'.' Punctuation +'SRC_OVER' Name.Attribute +',' Punctuation +' ' Text +'(' Punctuation +'float' Keyword.Type +')' Punctuation +' ' Text +'sx' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'GeneralPath' Name +' ' Text +'path' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'CLIP' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'path' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'GeneralPath' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'paint' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setPaint' Name.Attribute +'(' Punctuation +'paint' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'txShapes' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'CLIP' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'path' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'txShapes' Name +'[' Operator +'i' Name +']' Operator +',' Punctuation +' ' Text +'false' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'fill' Name.Attribute +'(' Punctuation +'txShapes' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'CLIP' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'clip' Name.Attribute +'(' Punctuation +'path' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'saveAC' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setComposite' Name.Attribute +'(' Punctuation +'saveAC' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End TxE class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * GradientPaint Effect. Burst, split, horizontal and \n * vertical gradient fill effects.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'GpE' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'INC' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +' ' Text +'// increasing\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'DEC' Name +' ' Text +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +' ' Text +'// decreasing\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'CNT' Name +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +';' Punctuation +' ' Text +'// center\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'WID' Name +' ' Text +'=' Operator +' ' Text +'8' Literal.Number.Integer +';' Punctuation +' ' Text +'// width \n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'WI' Name +' ' Text +'=' Operator +' ' Text +'WID' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'WD' Name +' ' Text +'=' Operator +' ' Text +'WID' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'HEI' Name +' ' Text +'=' Operator +' ' Text +'16' Literal.Number.Integer +';' Punctuation +' ' Text +'// height\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'HI' Name +' ' Text +'=' Operator +' ' Text +'HEI' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'HD' Name +' ' Text +'=' Operator +' ' Text +'HEI' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SPL' Name +' ' Text +'=' Operator +' ' Text +'32' Literal.Number.Integer +' ' Text +'|' Operator +' ' Text +'CNT' Name +';' Punctuation +' ' Text +'// split \n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SIW' Name +' ' Text +'=' Operator +' ' Text +'SPL' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +' ' Text +'|' Operator +' ' Text +'WID' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SDW' Name +' ' Text +'=' Operator +' ' Text +'SPL' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +' ' Text +'|' Operator +' ' Text +'WID' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SIH' Name +' ' Text +'=' Operator +' ' Text +'SPL' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +' ' Text +'|' Operator +' ' Text +'HEI' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'SDH' Name +' ' Text +'=' Operator +' ' Text +'SPL' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +' ' Text +'|' Operator +' ' Text +'HEI' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'BUR' Name +' ' Text +'=' Operator +' ' Text +'64' Literal.Number.Integer +' ' Text +'|' Operator +' ' Text +'CNT' Name +';' Punctuation +' ' Text +'// burst \n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'BURI' Name +' ' Text +'=' Operator +' ' Text +'BUR' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'BURD' Name +' ' Text +'=' Operator +' ' Text +'BUR' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'NF' Name +' ' Text +'=' Operator +' ' Text +'128' Literal.Number.Integer +';' Punctuation +' ' Text +'// no fill\n' Comment.Single + +' ' Text +'private' Keyword.Declaration +' ' Text +'Color' Name +' ' Text +'c1' Name +',' Punctuation +' ' Text +'c2' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'float' Keyword.Type +' ' Text +'incr' Name +',' Punctuation +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'rect' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'grad' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'type' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'GpE' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'type' Name +',' Punctuation +' ' Text +'Color' Name +' ' Text +'c1' Name +',' Punctuation +' ' Text +'Color' Name +' ' Text +'c2' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'type' Name.Attribute +' ' Text +'=' Operator +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'c1' Name.Attribute +' ' Text +'=' Operator +' ' Text +'c1' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'c2' Name.Attribute +' ' Text +'=' Operator +' ' Text +'c2' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'incr' Name +' ' Text +'=' Operator +' ' Text +'1.0f' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'CNT' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'incr' Name +' ' Text +'/' Operator +'=' Operator +' ' Text +'2.3f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'CNT' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'&' Operator +'&' Operator +' ' Text +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'INC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'=' Operator +' ' Text +'0.5f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'DEC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'=' Operator +' ' Text +'1.0f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'incr' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'incr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'=' Operator +' ' Text +'0.0f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'incr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'clear' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'clear' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'WID' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'w2' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'x1' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'x2' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'SPL' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'w2' Name +' ' Text +'=' Operator +' ' Text +'w' Name +' ' Text +'*' Operator +' ' Text +'0.5f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'x1' Name +' ' Text +'=' Operator +' ' Text +'w' Name +' ' Text +'*' Operator +' ' Text +'(' Punctuation +'1.0f' Literal.Number.Float +' ' Text +'-' Operator +' ' Text +'index' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'x2' Name +' ' Text +'=' Operator +' ' Text +'w' Name +' ' Text +'*' Operator +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'w2' Name +' ' Text +'=' Operator +' ' Text +'w' Name +' ' Text +'*' Operator +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'x1' Name +' ' Text +'=' Operator +' ' Text +'x2' Name +' ' Text +'=' Operator +' ' Text +'w2' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'w2' Name +',' Punctuation +' ' Text +'h' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'w2' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'w' Name +'-' Operator +'w2' Name +',' Punctuation +' ' Text +'h' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'c1' Name +',' Punctuation +'x1' Name +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'c2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'x2' Name +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'c2' Name +',' Punctuation +'w' Name +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'c1' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'HEI' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'h2' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'y1' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'y2' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'SPL' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'h2' Name +' ' Text +'=' Operator +' ' Text +'h' Name +' ' Text +'*' Operator +' ' Text +'0.5f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'y1' Name +' ' Text +'=' Operator +' ' Text +'h' Name +' ' Text +'*' Operator +' ' Text +'(' Punctuation +'1.0f' Literal.Number.Float +' ' Text +'-' Operator +' ' Text +'index' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'y2' Name +' ' Text +'=' Operator +' ' Text +'h' Name +' ' Text +'*' Operator +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'h2' Name +' ' Text +'=' Operator +' ' Text +'h' Name +' ' Text +'*' Operator +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'y1' Name +' ' Text +'=' Operator +' ' Text +'y2' Name +' ' Text +'=' Operator +' ' Text +'h2' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'w' Name +',' Punctuation +' ' Text +'h2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'h2' Name +',' Punctuation +' ' Text +'w' Name +',' Punctuation +' ' Text +'h' Name +'-' Operator +'h2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'c1' Name +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'y1' Name +',' Punctuation +'c2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'y2' Name +',' Punctuation +'c2' Name +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'h' Name +',' Punctuation +'c1' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'BUR' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'w2' Name +' ' Text +'=' Operator +' ' Text +'w' Name +'/' Operator +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'h2' Name +' ' Text +'=' Operator +' ' Text +'h' Name +'/' Operator +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'w2' Name +',' Punctuation +' ' Text +'h2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'w2' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'w2' Name +',' Punctuation +' ' Text +'h2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'h2' Name +',' Punctuation +' ' Text +'w2' Name +',' Punctuation +' ' Text +'h2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'rect' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'w2' Name +',' Punctuation +' ' Text +'h2' Name +',' Punctuation +' ' Text +'w2' Name +',' Punctuation +' ' Text +'h2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'x1' Name +' ' Text +'=' Operator +' ' Text +'w' Name +' ' Text +'*' Operator +' ' Text +'(' Punctuation +'1.0f' Literal.Number.Float +' ' Text +'-' Operator +' ' Text +'index' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'x2' Name +' ' Text +'=' Operator +' ' Text +'w' Name +' ' Text +'*' Operator +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'y1' Name +' ' Text +'=' Operator +' ' Text +'h' Name +' ' Text +'*' Operator +' ' Text +'(' Punctuation +'1.0f' Literal.Number.Float +' ' Text +'-' Operator +' ' Text +'index' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'y2' Name +' ' Text +'=' Operator +' ' Text +'h' Name +' ' Text +'*' Operator +' ' Text +'index' Name +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'c1' Name +',' Punctuation +'x1' Name +',' Punctuation +'y1' Name +',' Punctuation +'c2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'w' Name +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'c1' Name +',' Punctuation +'x2' Name +',' Punctuation +'y1' Name +',' Punctuation +'c2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'h' Name +',' Punctuation +'c1' Name +',' Punctuation +'x1' Name +',' Punctuation +'y2' Name +',' Punctuation +'c2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'w' Name +',' Punctuation +'h' Name +',' Punctuation +'c1' Name +',' Punctuation +'x2' Name +',' Punctuation +'y2' Name +',' Punctuation +'c2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'NF' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'x' Name +' ' Text +'=' Operator +' ' Text +'w' Name +' ' Text +'*' Operator +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'float' Keyword.Type +' ' Text +'y' Name +' ' Text +'=' Operator +' ' Text +'h' Name +' ' Text +'*' Operator +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'grad' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'c1' Name +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'y' Name +',' Punctuation +'c2' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'INC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'|' Operator +'|' Operator +' ' Text +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'DEC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'incr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setRenderingHint' Name.Attribute +'(' Punctuation +'RenderingHints' Name +'.' Punctuation +'KEY_ANTIALIASING' Name.Attribute +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'RenderingHints' Name +'.' Punctuation +'VALUE_ANTIALIAS_OFF' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'grad' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setPaint' Name.Attribute +'(' Punctuation +'(' Punctuation +'GradientPaint' Name +')' Punctuation +' ' Text +'grad' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'NF' Name +')' Punctuation +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'fill' Name.Attribute +'(' Punctuation +'(' Punctuation +'Rectangle2D' Name +')' Punctuation +' ' Text +'rect' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setRenderingHint' Name.Attribute +'(' Punctuation +'RenderingHints' Name +'.' Punctuation +'KEY_ANTIALIASING' Name.Attribute +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'RenderingHints' Name +'.' Punctuation +'VALUE_ANTIALIAS_ON' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End GpE class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * TexturePaint Effect. Expand and collapse a texture. \n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'TpE' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'INC' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +' ' Text +'// increasing\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'DEC' Name +' ' Text +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +' ' Text +'// decreasing\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'OVAL' Name +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +';' Punctuation +' ' Text +'// oval\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RECT' Name +' ' Text +'=' Operator +' ' Text +'8' Literal.Number.Integer +';' Punctuation +' ' Text +'// rectangle \n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'HAF' Name +' ' Text +'=' Operator +' ' Text +'16' Literal.Number.Integer +';' Punctuation +' ' Text +'// half oval or rect size\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'OI' Name +' ' Text +'=' Operator +' ' Text +'OVAL' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'OD' Name +' ' Text +'=' Operator +' ' Text +'OVAL' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RI' Name +' ' Text +'=' Operator +' ' Text +'RECT' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RD' Name +' ' Text +'=' Operator +' ' Text +'RECT' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'NF' Name +' ' Text +'=' Operator +' ' Text +'32' Literal.Number.Integer +';' Punctuation +' ' Text +'// no fill \n' Comment.Single + +' ' Text +'private' Keyword.Declaration +' ' Text +'Paint' Name +' ' Text +'p1' Name +',' Punctuation +' ' Text +'p2' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'float' Keyword.Type +' ' Text +'incr' Name +',' Punctuation +' ' Text +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'TexturePaint' Name +' ' Text +'texture' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'size' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'BufferedImage' Name +' ' Text +'bimg' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Rectangle' Name +' ' Text +'rect' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'TpE' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'type' Name +',' Punctuation +' ' Text +'Paint' Name +' ' Text +'p1' Name +',' Punctuation +' ' Text +'Paint' Name +' ' Text +'p2' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'size' Name +',' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'type' Name.Attribute +' ' Text +'=' Operator +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'p1' Name.Attribute +' ' Text +'=' Operator +' ' Text +'p1' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'p2' Name.Attribute +' ' Text +'=' Operator +' ' Text +'p2' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'setTextureSize' Name +'(' Punctuation +'size' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'setTextureSize' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'size' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'size' Name.Attribute +' ' Text +'=' Operator +' ' Text +'size' Name +';' Punctuation +'\n' Text + +' ' Text +'bimg' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedImage' Name +'(' Punctuation +'size' Name +',' Punctuation +'size' Name +',' Punctuation +'BufferedImage' Name +'.' Punctuation +'TYPE_INT_RGB' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'rect' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Rectangle' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'size' Name +',' Punctuation +'size' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'incr' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'float' Keyword.Type +')' Punctuation +' ' Text +'(' Punctuation +'size' Name +')' Punctuation +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'float' Keyword.Type +')' Punctuation +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'HAF' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'incr' Name +' ' Text +'/' Operator +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'DEC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'=' Operator +' ' Text +'size' Name +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'HAF' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'/' Operator +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'incr' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'incr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'=' Operator +' ' Text +'0.0f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'incr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +' ' Text +'=' Operator +' ' Text +'bimg' Name +'.' Punctuation +'createGraphics' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setPaint' Name.Attribute +'(' Punctuation +'p1' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'fillRect' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'size' Name +',' Punctuation +'size' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setPaint' Name.Attribute +'(' Punctuation +'p2' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'OVAL' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'fill' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Ellipse2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'index' Name +',' Punctuation +'index' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'RECT' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'fill' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'index' Name +',' Punctuation +'index' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'texture' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'TexturePaint' Name +'(' Punctuation +'bimg' Name +',' Punctuation +' ' Text +'rect' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'dispose' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'incr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setPaint' Name.Attribute +'(' Punctuation +'texture' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'NF' Name +')' Punctuation +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'fillRect' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'w' Name +',' Punctuation +' ' Text +'h' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End TpE class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Close out effect. Close out the buffered image with different \n * geometry shapes.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'CoE' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'WID' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'HEI' Name +' ' Text +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'OVAL' Name +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RECT' Name +' ' Text +'=' Operator +' ' Text +'8' Literal.Number.Integer +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RAND' Name +' ' Text +'=' Operator +' ' Text +'16' Literal.Number.Integer +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'ARC' Name +' ' Text +'=' Operator +' ' Text +'32' Literal.Number.Integer +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'BufferedImage' Name +' ' Text +'bimg' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Shape' Name +' ' Text +'shape' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'double' Keyword.Type +' ' Text +'zoom' Name +',' Punctuation +' ' Text +'extent' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'double' Keyword.Type +' ' Text +'zIncr' Name +',' Punctuation +' ' Text +'eIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +' ' Text +'doRandom' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'CoE' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'type' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'type' Name.Attribute +' ' Text +'=' Operator +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'zIncr' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'(' Punctuation +'2.0' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'eIncr' Name +' ' Text +'=' Operator +' ' Text +'360.0' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'doRandom' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'RAND' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'doRandom' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'num' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'int' Keyword.Type +')' Punctuation +' ' Text +'(' Punctuation +'Math' Name +'.' Punctuation +'random' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'*' Operator +' ' Text +'5.0' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'switch' Keyword +' ' Text +'(' Punctuation +'num' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'case' Keyword +' ' Text +'0' Literal.Number.Integer +' ' Text +':' Punctuation +' ' Text +'type' Name +' ' Text +'=' Operator +' ' Text +'OVAL' Name +';' Punctuation +' ' Text +'break' Keyword +';' Punctuation +'\n' Text + +' ' Text +'case' Keyword +' ' Text +'1' Literal.Number.Integer +' ' Text +':' Punctuation +' ' Text +'type' Name +' ' Text +'=' Operator +' ' Text +'RECT' Name +';' Punctuation +' ' Text +'break' Keyword +';' Punctuation +'\n' Text + +' ' Text +'case' Keyword +' ' Text +'2' Literal.Number.Integer +' ' Text +':' Punctuation +' ' Text +'type' Name +' ' Text +'=' Operator +' ' Text +'RECT' Name +' ' Text +'|' Operator +' ' Text +'WID' Name +';' Punctuation +' ' Text +'break' Keyword +';' Punctuation +'\n' Text + +' ' Text +'case' Keyword +' ' Text +'3' Literal.Number.Integer +' ' Text +':' Punctuation +' ' Text +'type' Name +' ' Text +'=' Operator +' ' Text +'RECT' Name +' ' Text +'|' Operator +' ' Text +'HEI' Name +';' Punctuation +' ' Text +'break' Keyword +';' Punctuation +'\n' Text + +' ' Text +'case' Keyword +' ' Text +'4' Literal.Number.Integer +' ' Text +':' Punctuation +' ' Text +'type' Name +' ' Text +'=' Operator +' ' Text +'ARC' Name +';' Punctuation +' ' Text +'break' Keyword +';' Punctuation +'\n' Text + +' ' Text +'default' Keyword +' ' Text +':' Punctuation +' ' Text +'type' Name +' ' Text +'=' Operator +' ' Text +'OVAL' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'bimg' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'extent' Name +' ' Text +'=' Operator +' ' Text +'360.0' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'zoom' Name +' ' Text +'=' Operator +' ' Text +'2.0' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'bimg' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'biw' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'bih' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'bimg' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedImage' Name +'(' Punctuation +'biw' Name +',' Punctuation +' ' Text +'bih' Name +',' Punctuation +' ' Text +'BufferedImage' Name +'.' Punctuation +'TYPE_INT_RGB' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Graphics2D' Name +' ' Text +'big' Name +' ' Text +'=' Operator +' ' Text +'bimg' Name +'.' Punctuation +'createGraphics' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'big' Name +'.' Punctuation +'drawImage' Name.Attribute +'(' Punctuation +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'double' Keyword.Type +' ' Text +'z' Name +' ' Text +'=' Operator +' ' Text +'Math' Name +'.' Punctuation +'min' Name.Attribute +'(' Punctuation +'w' Name +',' Punctuation +' ' Text +'h' Name +')' Punctuation +' ' Text +'*' Operator +' ' Text +'zoom' Name +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'OVAL' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Ellipse2D' Name +'.' Punctuation +'Double' Name.Attribute +'(' Punctuation +'w' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'z' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'h' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'z' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'z' Name +',' Punctuation +'z' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'ARC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Arc2D' Name +'.' Punctuation +'Double' Name.Attribute +'(' Punctuation +'-' Operator +'100' Literal.Number.Integer +',' Punctuation +'-' Operator +'100' Literal.Number.Integer +',' Punctuation +'w' Name +'+' Operator +'200' Literal.Number.Integer +',' Punctuation +'h' Name +'+' Operator +'200' Literal.Number.Integer +',' Punctuation +'90' Literal.Number.Integer +',' Punctuation +'extent' Name +',' Punctuation +'Arc2D' Name +'.' Punctuation +'PIE' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'extent' Name +' ' Text +'-' Operator +'=' Operator +' ' Text +'eIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'RECT' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'WID' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Double' Name.Attribute +'(' Punctuation +'w' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'z' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'z' Name +',' Punctuation +'h' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'HEI' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Double' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'h' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'z' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'w' Name +',' Punctuation +'z' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Rectangle2D' Name +'.' Punctuation +'Double' Name.Attribute +'(' Punctuation +'w' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'z' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'h' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'z' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'z' Name +',' Punctuation +'z' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'zoom' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'zIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'clip' Name.Attribute +'(' Punctuation +'shape' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'drawImage' Name.Attribute +'(' Punctuation +'bimg' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End CoE class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Dither Dissolve Effect. For each successive step in the animation, \n * a pseudo-random starting horizontal position is chosen using list, \n * and then the corresponding points created from xlist and ylist are\n * blacked out for the current "chunk". The x and y chunk starting\n * positions are each incremented by the associated chunk size, and \n * this process is repeated for the number of "steps" in the \n * animation, causing an equal number of pseudo-randomly picked \n * "blocks" to be blacked out during each step of the animation.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'DdE' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'BufferedImage' Name +' ' Text +'bimg' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Graphics2D' Name +' ' Text +'big' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'List' Name +' ' Text +'list' Name +',' Punctuation +' ' Text +'xlist' Name +',' Punctuation +' ' Text +'ylist' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'xeNum' Name +',' Punctuation +' ' Text +'yeNum' Name +';' Punctuation +' ' Text +'// element number\n' Comment.Single + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'xcSize' Name +',' Punctuation +' ' Text +'ycSize' Name +';' Punctuation +' ' Text +'// chunk size\n' Comment.Single + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'inc' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'blocksize' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'DdE' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'blocksize' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'blocksize' Name.Attribute +' ' Text +'=' Operator +' ' Text +'blocksize' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'createShuffledLists' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'width' Name +' ' Text +'=' Operator +' ' Text +'bimg' Name +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'height' Name +' ' Text +'=' Operator +' ' Text +'bimg' Name +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Integer' Name +' ' Text +'xarray' Name +'[' Operator +']' Operator +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Integer' Name +'[' Operator +'width' Name +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'Integer' Name +' ' Text +'yarray' Name +'[' Operator +']' Operator +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Integer' Name +'[' Operator +'height' Name +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'Integer' Name +' ' Text +'array' Name +'[' Operator +']' Operator +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Integer' Name +'[' Operator +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'xarray' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'xarray' Name +'[' Operator +'i' Name +']' Operator +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Integer' Name +'(' Punctuation +'i' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'j' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'j' Name +' ' Text +'<' Operator +' ' Text +'yarray' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'j' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'yarray' Name +'[' Operator +'j' Name +']' Operator +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Integer' Name +'(' Punctuation +'j' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'k' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'k' Name +' ' Text +'<' Operator +' ' Text +'array' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'k' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'array' Name +'[' Operator +'k' Name +']' Operator +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Integer' Name +'(' Punctuation +'k' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'\n' Text + +' ' Text +'java' Name +'.' Punctuation +'util' Name.Attribute +'.' Punctuation +'Collections' Name.Attribute +'.' Punctuation +'shuffle' Name.Attribute +'(' Punctuation +'xlist' Name +' ' Text +'=' Operator +' ' Text +'Arrays' Name +'.' Punctuation +'asList' Name.Attribute +'(' Punctuation +'xarray' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'java' Name +'.' Punctuation +'util' Name.Attribute +'.' Punctuation +'Collections' Name.Attribute +'.' Punctuation +'shuffle' Name.Attribute +'(' Punctuation +'ylist' Name +' ' Text +'=' Operator +' ' Text +'Arrays' Name +'.' Punctuation +'asList' Name.Attribute +'(' Punctuation +'yarray' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'java' Name +'.' Punctuation +'util' Name.Attribute +'.' Punctuation +'Collections' Name.Attribute +'.' Punctuation +'shuffle' Name.Attribute +'(' Punctuation +'list' Name +' ' Text +'=' Operator +' ' Text +'Arrays' Name +'.' Punctuation +'asList' Name.Attribute +'(' Punctuation +'array' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'bimg' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'bimg' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'biw' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'bih' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'bimg' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedImage' Name +'(' Punctuation +'biw' Name +',' Punctuation +' ' Text +'bih' Name +',' Punctuation +' ' Text +'BufferedImage' Name +'.' Punctuation +'TYPE_INT_RGB' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'createShuffledLists' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'big' Name +' ' Text +'=' Operator +' ' Text +'bimg' Name +'.' Punctuation +'createGraphics' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'big' Name +'.' Punctuation +'drawImage' Name.Attribute +'(' Punctuation +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'xcSize' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'xlist' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'ycSize' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'ylist' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'xeNum' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'inc' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'xeNum' Name +' ' Text +'=' Operator +' ' Text +'xcSize' Name +' ' Text +'*' Operator +' ' Text +'(' Punctuation +'(' Punctuation +'Integer' Name +')' Punctuation +'list' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'inc' Name +')' Punctuation +')' Punctuation +'.' Punctuation +'intValue' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'yeNum' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'ycSize' Name +';' Punctuation +'\n' Text + +' ' Text +'inc' Name +'+' Operator +'+' Operator +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'big' Name +'.' Punctuation +'setColor' Name.Attribute +'(' Punctuation +'black' Name +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'k' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'k' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +' ' Text +'k' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'xeNum' Name +' ' Text +'+' Operator +' ' Text +'xcSize' Name +')' Punctuation +' ' Text +'>' Operator +' ' Text +'xlist' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'xeNum' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'xeNum' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'xcSize' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'yeNum' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'ycSize' Name +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'xeNum' Name +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'xeNum' Name +'+' Operator +'xcSize' Name +' ' Text +'&' Operator +'&' Operator +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'xlist' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'j' Name +' ' Text +'=' Operator +' ' Text +'yeNum' Name +';' Punctuation +' ' Text +'j' Name +' ' Text +'<' Operator +' ' Text +'yeNum' Name +'+' Operator +'ycSize' Name +' ' Text +'&' Operator +'&' Operator +' ' Text +'j' Name +' ' Text +'<' Operator +' ' Text +'ylist' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'j' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'xval' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'(' Punctuation +'Integer' Name +')' Punctuation +'xlist' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +'.' Punctuation +'intValue' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'yval' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'(' Punctuation +'Integer' Name +')' Punctuation +'ylist' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'j' Name +')' Punctuation +')' Punctuation +'.' Punctuation +'intValue' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'(' Punctuation +'xval' Name +' ' Text +'%' Operator +' ' Text +'blocksize' Name +')' Punctuation +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'&' Operator +'&' Operator +'\n' Text + +' ' Text +'(' Punctuation +'(' Punctuation +'yval' Name +' ' Text +'%' Operator +' ' Text +'blocksize' Name +')' Punctuation +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'big' Name +'.' Punctuation +'fillRect' Name.Attribute +'(' Punctuation +'xval' Name +',' Punctuation +' ' Text +'yval' Name +',' Punctuation +' ' Text +'blocksize' Name +',' Punctuation +' ' Text +'blocksize' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'drawImage' Name.Attribute +'(' Punctuation +'bimg' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End DdE class\n' Comment.Single + +'\n' Text + +'\n' Text + +' ' Text +"/**\n * Subimage effect. Subimage the scene's buffered\n * image then rotate and scale down the subimages.\n */" Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'SiE' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'BufferedImage' Name +' ' Text +'bimg' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'double' Keyword.Type +' ' Text +'rIncr' Name +',' Punctuation +' ' Text +'sIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'double' Keyword.Type +' ' Text +'scale' Name +',' Punctuation +' ' Text +'rotate' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'siw' Name +',' Punctuation +' ' Text +'sih' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'subs' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +'20' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'pts' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +'20' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'SiE' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'siw' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'sih' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'siw' Name.Attribute +' ' Text +'=' Operator +' ' Text +'siw' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'sih' Name.Attribute +' ' Text +'=' Operator +' ' Text +'sih' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'rIncr' Name +' ' Text +'=' Operator +' ' Text +'360.0' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sIncr' Name +' ' Text +'=' Operator +' ' Text +'1.0' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'scale' Name +' ' Text +'=' Operator +' ' Text +'1.0' Literal.Number.Float +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'rotate' Name +' ' Text +'=' Operator +' ' Text +'0.0' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'bimg' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'subs' Name +'.' Punctuation +'clear' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'pts' Name +'.' Punctuation +'clear' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'bimg' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'biw' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'bih' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'bimg' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedImage' Name +'(' Punctuation +'biw' Name +',' Punctuation +' ' Text +'bih' Name +',' Punctuation +' ' Text +'BufferedImage' Name +'.' Punctuation +'TYPE_INT_RGB' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Graphics2D' Name +' ' Text +'big' Name +' ' Text +'=' Operator +' ' Text +'bimg' Name +'.' Punctuation +'createGraphics' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'big' Name +'.' Punctuation +'drawImage' Name.Attribute +'(' Punctuation +'Surface' Name +'.' Punctuation +'bimg' Name.Attribute +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'x' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'x' Name +' ' Text +'<' Operator +' ' Text +'w' Name +' ' Text +'&' Operator +'&' Operator +' ' Text +'scale' Name +' ' Text +'>' Operator +' ' Text +'0.0' Literal.Number.Float +';' Punctuation +' ' Text +'x' Name +'+' Operator +'=' Operator +'siw' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'ww' Name +' ' Text +'=' Operator +' ' Text +'x' Name +'+' Operator +'siw' Name +' ' Text +'<' Operator +' ' Text +'w' Name +' ' Text +'?' Operator +' ' Text +'siw' Name +' ' Text +':' Punctuation +' ' Text +'w' Name +'-' Operator +'x' Name +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'y' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'y' Name +' ' Text +'<' Operator +' ' Text +'h' Name +';' Punctuation +' ' Text +'y' Name +'+' Operator +'=' Operator +'sih' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'hh' Name +' ' Text +'=' Operator +' ' Text +'y' Name +'+' Operator +'sih' Name +' ' Text +'<' Operator +' ' Text +'h' Name +' ' Text +'?' Operator +' ' Text +'sih' Name +' ' Text +':' Punctuation +' ' Text +'h' Name +'-' Operator +'y' Name +';' Punctuation +'\n' Text + +' ' Text +'subs' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'bimg' Name +'.' Punctuation +'getSubimage' Name.Attribute +'(' Punctuation +'x' Name +',' Punctuation +'y' Name +',' Punctuation +'ww' Name +',' Punctuation +'hh' Name +')' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'pts' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Point' Name +'(' Punctuation +'x' Name +',' Punctuation +' ' Text +'y' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'rotate' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'rIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'scale' Name +' ' Text +'-' Operator +'=' Operator +' ' Text +'sIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'AffineTransform' Name +' ' Text +'saveTx' Name +' ' Text +'=' Operator +' ' Text +'g2' Name +'.' Punctuation +'getTransform' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setColor' Name.Attribute +'(' Punctuation +'blue' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'subs' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'&' Operator +'&' Operator +' ' Text +'scale' Name +' ' Text +'>' Operator +' ' Text +'0.0' Literal.Number.Float +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'BufferedImage' Name +' ' Text +'bi' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'BufferedImage' Name +')' Punctuation +' ' Text +'subs' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Point' Name +' ' Text +'p' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'Point' Name +')' Punctuation +' ' Text +'pts' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'ww' Name +' ' Text +'=' Operator +' ' Text +'bi' Name +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'hh' Name +' ' Text +'=' Operator +' ' Text +'bi' Name +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'AffineTransform' Name +' ' Text +'at' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'AffineTransform' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'at' Name +'.' Punctuation +'rotate' Name.Attribute +'(' Punctuation +'Math' Name +'.' Punctuation +'toRadians' Name.Attribute +'(' Punctuation +'rotate' Name +')' Punctuation +',' Punctuation +' ' Text +'p' Name +'.' Punctuation +'x' Name.Attribute +'+' Operator +'ww' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'p' Name +'.' Punctuation +'y' Name.Attribute +'+' Operator +'hh' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'at' Name +'.' Punctuation +'translate' Name.Attribute +'(' Punctuation +'p' Name +'.' Punctuation +'x' Name.Attribute +',' Punctuation +' ' Text +'p' Name +'.' Punctuation +'y' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'at' Name +'.' Punctuation +'scale' Name.Attribute +'(' Punctuation +'scale' Name +',' Punctuation +' ' Text +'scale' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Rectangle' Name +' ' Text +'b1' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Rectangle' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'ww' Name +',' Punctuation +' ' Text +'hh' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Shape' Name +' ' Text +'shape' Name +' ' Text +'=' Operator +' ' Text +'at' Name +'.' Punctuation +'createTransformedShape' Name.Attribute +'(' Punctuation +'b1' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Rectangle2D' Name +' ' Text +'b2' Name +' ' Text +'=' Operator +' ' Text +'shape' Name +'.' Punctuation +'getBounds2D' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'double' Keyword.Type +' ' Text +'xx' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'p' Name +'.' Punctuation +'x' Name.Attribute +'+' Operator +'ww' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +' ' Text +'-' Operator +' ' Text +'(' Punctuation +'b2' Name +'.' Punctuation +'getX' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +'b2' Name +'.' Punctuation +'getWidth' Name.Attribute +'(' Punctuation +')' Punctuation +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'double' Keyword.Type +' ' Text +'yy' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'p' Name +'.' Punctuation +'y' Name.Attribute +'+' Operator +'hh' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +' ' Text +'-' Operator +' ' Text +'(' Punctuation +'b2' Name +'.' Punctuation +'getY' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +'b2' Name +'.' Punctuation +'getHeight' Name.Attribute +'(' Punctuation +')' Punctuation +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'AffineTransform' Name +' ' Text +'toCenterAT' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'AffineTransform' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'toCenterAT' Name +'.' Punctuation +'translate' Name.Attribute +'(' Punctuation +'xx' Name +',' Punctuation +' ' Text +'yy' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'toCenterAT' Name +'.' Punctuation +'concatenate' Name.Attribute +'(' Punctuation +'at' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setTransform' Name.Attribute +'(' Punctuation +'toCenterAT' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'drawImage' Name.Attribute +'(' Punctuation +'bi' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'draw' Name.Attribute +'(' Punctuation +'b1' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setTransform' Name.Attribute +'(' Punctuation +'saveTx' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End SiE class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Line Effect. Flattened ellipse with lines from the center \n * to the edge. Expand or collapse the ellipse. Fade in or out \n * the lines.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'LnE' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'INC' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'DEC' Name +' ' Text +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'R' Name +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +';' Punctuation +' ' Text +'// rotate\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RI' Name +' ' Text +'=' Operator +' ' Text +'R' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RD' Name +' ' Text +'=' Operator +' ' Text +'R' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'ZOOM' Name +' ' Text +'=' Operator +' ' Text +'8' Literal.Number.Integer +';' Punctuation +' ' Text +'// zoom\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'ZOOMI' Name +' ' Text +'=' Operator +' ' Text +'ZOOM' Name +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'ZOOMD' Name +' ' Text +'=' Operator +' ' Text +'ZOOM' Name +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'AC' Name +' ' Text +'=' Operator +' ' Text +'32' Literal.Number.Integer +';' Punctuation +' ' Text +'// AlphaComposite\n' Comment.Single + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'ACI' Name +' ' Text +'=' Operator +' ' Text +'32' Literal.Number.Integer +' ' Text +'|' Operator +' ' Text +'INC' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'ACD' Name +' ' Text +'=' Operator +' ' Text +'32' Literal.Number.Integer +' ' Text +'|' Operator +' ' Text +'DEC' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'double' Keyword.Type +' ' Text +'rIncr' Name +',' Punctuation +' ' Text +'rotate' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'double' Keyword.Type +' ' Text +'zIncr' Name +',' Punctuation +' ' Text +'zoom' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'pts' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'float' Keyword.Type +' ' Text +'alpha' Name +',' Punctuation +' ' Text +'aIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'type' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'LnE' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'type' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'type' Name.Attribute +' ' Text +'=' Operator +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'rIncr' Name +' ' Text +'=' Operator +' ' Text +'360.0' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'aIncr' Name +' ' Text +'=' Operator +' ' Text +'0.9f' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'zIncr' Name +' ' Text +'=' Operator +' ' Text +'2.0' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'DEC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rIncr' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'rIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'aIncr' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'aIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'zIncr' Name +' ' Text +'=' Operator +' ' Text +'-' Operator +'zIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'generatePts' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'double' Keyword.Type +' ' Text +'sizeF' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'pts' Name +'.' Punctuation +'clear' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'double' Keyword.Type +' ' Text +'size' Name +' ' Text +'=' Operator +' ' Text +'Math' Name +'.' Punctuation +'min' Name.Attribute +'(' Punctuation +'w' Name +',' Punctuation +' ' Text +'h' Name +')' Punctuation +' ' Text +'*' Operator +' ' Text +'sizeF' Name +';' Punctuation +'\n' Text + +' ' Text +'Ellipse2D' Name +' ' Text +'ellipse' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Ellipse2D' Name +'.' Punctuation +'Double' Name.Attribute +'(' Punctuation +'w' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'size' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'h' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'size' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'size' Name +',' Punctuation +'size' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'PathIterator' Name +' ' Text +'pi' Name +' ' Text +'=' Operator +' ' Text +'ellipse' Name +'.' Punctuation +'getPathIterator' Name.Attribute +'(' Punctuation +'null' Keyword.Constant +',' Punctuation +' ' Text +'0.8' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'while' Keyword +' ' Text +'(' Punctuation +' ' Text +'!' Operator +'pi' Name +'.' Punctuation +'isDone' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'double' Keyword.Type +'[' Operator +']' Operator +' ' Text +'pt' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'double' Keyword.Type +'[' Operator +'6' Literal.Number.Integer +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'switch' Keyword +' ' Text +'(' Punctuation +' ' Text +'pi' Name +'.' Punctuation +'currentSegment' Name.Attribute +'(' Punctuation +'pt' Name +')' Punctuation +' ' Text +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'case' Keyword +' ' Text +'FlatteningPathIterator' Name +'.' Punctuation +'SEG_MOVETO' Name.Attribute +':' Punctuation +'\n' Text + +' ' Text +'case' Keyword +' ' Text +'FlatteningPathIterator' Name +'.' Punctuation +'SEG_LINETO' Name.Attribute +':' Punctuation +'\n' Text + +' ' Text +'pts' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Point2D' Name +'.' Punctuation +'Double' Name.Attribute +'(' Punctuation +'pt' Name +'[' Operator +'0' Literal.Number.Integer +']' Operator +',' Punctuation +' ' Text +'pt' Name +'[' Operator +'1' Literal.Number.Integer +']' Operator +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'pi' Name +'.' Punctuation +'next' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'DEC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rotate' Name +' ' Text +'=' Operator +' ' Text +'360' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'alpha' Name +' ' Text +'=' Operator +' ' Text +'1.0f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'zoom' Name +' ' Text +'=' Operator +' ' Text +'2.0' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rotate' Name +' ' Text +'=' Operator +' ' Text +'alpha' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'zoom' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'ZOOM' Name +')' Punctuation +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'generatePts' Name +'(' Punctuation +'w' Name +',' Punctuation +' ' Text +'h' Name +',' Punctuation +' ' Text +'0.5' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'ZOOM' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'generatePts' Name +'(' Punctuation +'w' Name +',' Punctuation +' ' Text +'h' Name +',' Punctuation +' ' Text +'zoom' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'zIncr' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'RI' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'|' Operator +'|' Operator +' ' Text +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'RI' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rotate' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'rIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'ACI' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'|' Operator +'|' Operator +' ' Text +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'ACD' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'alpha' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'aIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Composite' Name +' ' Text +'saveAC' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'AC' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'&' Operator +'&' Operator +' ' Text +'alpha' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'&' Operator +'&' Operator +' ' Text +'alpha' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'saveAC' Name +' ' Text +'=' Operator +' ' Text +'g2' Name +'.' Punctuation +'getComposite' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setComposite' Name.Attribute +'(' Punctuation +'AlphaComposite' Name +'.' Punctuation +'getInstance' Name.Attribute +'(' Punctuation +'AlphaComposite' Name +'.' Punctuation +'SRC_OVER' Name.Attribute +',' Punctuation +' ' Text +'alpha' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'AffineTransform' Name +' ' Text +'saveTx' Name +' ' Text +'=' Operator +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'R' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'saveTx' Name +' ' Text +'=' Operator +' ' Text +'g2' Name +'.' Punctuation +'getTransform' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'AffineTransform' Name +' ' Text +'at' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'AffineTransform' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'at' Name +'.' Punctuation +'rotate' Name.Attribute +'(' Punctuation +'Math' Name +'.' Punctuation +'toRadians' Name.Attribute +'(' Punctuation +'rotate' Name +')' Punctuation +',' Punctuation +' ' Text +'w' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'h' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setTransform' Name.Attribute +'(' Punctuation +'at' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'Point2D' Name +' ' Text +'p1' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Point2D' Name +'.' Punctuation +'Double' Name.Attribute +'(' Punctuation +'w' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'h' Name +'/' Operator +'2' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setColor' Name.Attribute +'(' Punctuation +'Color' Name +'.' Punctuation +'yellow' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'pts' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +'-' Operator +'1' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'draw' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'Line2D' Name +'.' Punctuation +'Float' Name.Attribute +'(' Punctuation +'p1' Name +',' Punctuation +' ' Text +'(' Punctuation +'Point2D' Name +')' Punctuation +' ' Text +'pts' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'saveTx' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setTransform' Name.Attribute +'(' Punctuation +'saveTx' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'saveAC' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setComposite' Name.Attribute +'(' Punctuation +'saveAC' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End LnE class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Template for Features & Contributors consisting of translating\n * blue and red rectangles and an image going from transparent to\n * opaque.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'Temp' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'NOANIM' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RECT' Name +' ' Text +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'RNA' Name +' ' Text +'=' Operator +' ' Text +'RECT' Name +' ' Text +'|' Operator +' ' Text +'NOANIM' Name +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'IMG' Name +' ' Text +'=' Operator +' ' Text +'4' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'INA' Name +' ' Text +'=' Operator +' ' Text +'IMG' Name +' ' Text +'|' Operator +' ' Text +'NOANIM' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'float' Keyword.Type +' ' Text +'alpha' Name +',' Punctuation +' ' Text +'aIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Rectangle' Name +' ' Text +'rect1' Name +',' Punctuation +' ' Text +'rect2' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'x' Name +',' Punctuation +' ' Text +'y' Name +',' Punctuation +' ' Text +'xIncr' Name +',' Punctuation +' ' Text +'yIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Image' Name +' ' Text +'img' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Temp' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'type' Name +',' Punctuation +' ' Text +'Image' Name +' ' Text +'img' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'type' Name.Attribute +' ' Text +'=' Operator +' ' Text +'type' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'img' Name.Attribute +' ' Text +'=' Operator +' ' Text +'img' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'aIncr' Name +' ' Text +'=' Operator +' ' Text +'0.9f' Literal.Number.Float +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'NOANIM' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'alpha' Name +' ' Text +'=' Operator +' ' Text +'1.0f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rect1' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Rectangle' Name +'(' Punctuation +'8' Literal.Number.Integer +',' Punctuation +' ' Text +'20' Literal.Number.Integer +',' Punctuation +' ' Text +'w' Name +'-' Operator +'20' Literal.Number.Integer +',' Punctuation +' ' Text +'30' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'rect2' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Rectangle' Name +'(' Punctuation +'20' Literal.Number.Integer +',' Punctuation +' ' Text +'8' Literal.Number.Integer +',' Punctuation +' ' Text +'30' Literal.Number.Integer +',' Punctuation +' ' Text +'h' Name +'-' Operator +'20' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'NOANIM' Name +')' Punctuation +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'alpha' Name +' ' Text +'=' Operator +' ' Text +'0.0f' Literal.Number.Float +';' Punctuation +'\n' Text + +' ' Text +'xIncr' Name +' ' Text +'=' Operator +' ' Text +'w' Name +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'yIncr' Name +' ' Text +'=' Operator +' ' Text +'h' Name +' ' Text +'/' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'x' Name +' ' Text +'=' Operator +' ' Text +'w' Name +'+' Operator +'(' Punctuation +'int' Keyword.Type +')' Punctuation +'(' Punctuation +'xIncr' Name +'*' Operator +'1.4' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'y' Name +' ' Text +'=' Operator +' ' Text +'h' Name +'+' Operator +'(' Punctuation +'int' Keyword.Type +')' Punctuation +'(' Punctuation +'yIncr' Name +'*' Operator +'1.4' Literal.Number.Float +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'NOANIM' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'RECT' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'rect1' Name +'.' Punctuation +'setLocation' Name.Attribute +'(' Punctuation +'x' Name +'-' Operator +'=' Operator +'xIncr' Name +',' Punctuation +' ' Text +'20' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'rect2' Name +'.' Punctuation +'setLocation' Name.Attribute +'(' Punctuation +'20' Literal.Number.Integer +',' Punctuation +' ' Text +'y' Name +'-' Operator +'=' Operator +'yIncr' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'IMG' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'alpha' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'aIncr' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'RECT' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setColor' Name.Attribute +'(' Punctuation +'blue' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'fill' Name.Attribute +'(' Punctuation +'rect1' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setColor' Name.Attribute +'(' Punctuation +'red' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'fill' Name.Attribute +'(' Punctuation +'rect2' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'type' Name +' ' Text +'&' Operator +' ' Text +'IMG' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Composite' Name +' ' Text +'saveAC' Name +' ' Text +'=' Operator +' ' Text +'g2' Name +'.' Punctuation +'getComposite' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'alpha' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'&' Operator +'&' Operator +' ' Text +'alpha' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setComposite' Name.Attribute +'(' Punctuation +'AlphaComposite' Name +'.' Punctuation +'getInstance' Name.Attribute +'(' Punctuation +'AlphaComposite' Name +'.' Punctuation +'SRC_OVER' Name.Attribute +',' Punctuation +' ' Text +'alpha' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'drawImage' Name.Attribute +'(' Punctuation +'img' Name +',' Punctuation +' ' Text +'30' Literal.Number.Integer +',' Punctuation +' ' Text +'30' Literal.Number.Integer +',' Punctuation +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setComposite' Name.Attribute +'(' Punctuation +'saveAC' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End Temp class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Features of Java2D. Single character advancement effect.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'Features' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'GRAPHICS' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'TEXT' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'IMAGES' Name +' ' Text +'=' Operator +' ' Text +'2' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'COLOR' Name +' ' Text +'=' Operator +' ' Text +'3' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Font' Name +' ' Text +'font1' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Font' Name +'(' Punctuation +'"' Literal.String +'serif' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'Font' Name +'.' Punctuation +'BOLD' Name.Attribute +',' Punctuation +' ' Text +'38' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Font' Name +' ' Text +'font2' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Font' Name +'(' Punctuation +'"' Literal.String +'serif' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'Font' Name +'.' Punctuation +'PLAIN' Name.Attribute +',' Punctuation +' ' Text +'24' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'FontMetrics' Name +' ' Text +'fm1' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'getMetrics' Name.Attribute +'(' Punctuation +'font1' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'FontMetrics' Name +' ' Text +'fm2' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'getMetrics' Name.Attribute +'(' Punctuation +'font2' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'table' Name +'[' Operator +']' Operator +'[' Operator +']' Operator +' ' Text +'=' Operator +' ' Text +'\n' Text + +' ' Text +'{' Punctuation +'{' Punctuation +' ' Text +'"' Literal.String +'Graphics' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Antialiased rendering' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Bezier paths' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Transforms' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Compositing' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Stroking parameters' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Text' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Extended font support' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Advanced text layout' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Dynamic font loading' Literal.String +'"' Literal.String +',' Punctuation +'\n' Text + +' ' Text +'"' Literal.String +'AttributeSets for font customization' Literal.String +'"' Literal.String +' ' Text +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Images' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Flexible image layouts' Literal.String +'"' Literal.String +',' Punctuation +'\n' Text + +' ' Text +'"' Literal.String +'Extended imaging operations' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +' Convolutions, Lookup Tables' Literal.String +'"' Literal.String +',' Punctuation +'\n' Text + +' ' Text +'"' Literal.String +'RenderableImage interface' Literal.String +'"' Literal.String +'}' Punctuation +',' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'"' Literal.String +'Color' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'ICC profile support' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Color conversion' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Arbitrary color spaces' Literal.String +'"' Literal.String +'}' Punctuation +' ' Text +'}' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'list' Name +'[' Operator +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'strH' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'endIndex' Name +',' Punctuation +' ' Text +'listIndex' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'v' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Features' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'type' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'list' Name +' ' Text +'=' Operator +' ' Text +'table' Name +'[' Operator +'type' Name +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'strH' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'int' Keyword.Type +')' Punctuation +' ' Text +'(' Punctuation +'fm2' Name +'.' Punctuation +'getAscent' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +'fm2' Name +'.' Punctuation +'getDescent' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'endIndex' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'listIndex' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'v' Name +'.' Punctuation +'clear' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'v' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'list' Name +'[' Operator +'listIndex' Name +']' Operator +'.' Punctuation +'substring' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'endIndex' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'listIndex' Name +' ' Text +'<' Operator +' ' Text +'list' Name +'.' Punctuation +'length' Name.Attribute +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'+' Operator +'+' Operator +'endIndex' Name +' ' Text +'>' Operator +' ' Text +'list' Name +'[' Operator +'listIndex' Name +']' Operator +'.' Punctuation +'length' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'+' Operator +'+' Operator +'listIndex' Name +' ' Text +'<' Operator +' ' Text +'list' Name +'.' Punctuation +'length' Name.Attribute +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'endIndex' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'v' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'list' Name +'[' Operator +'listIndex' Name +']' Operator +'.' Punctuation +'substring' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'endIndex' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'v' Name +'.' Punctuation +'set' Name.Attribute +'(' Punctuation +'listIndex' Name +',' Punctuation +' ' Text +'list' Name +'[' Operator +'listIndex' Name +']' Operator +'.' Punctuation +'substring' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'endIndex' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setColor' Name.Attribute +'(' Punctuation +'white' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setFont' Name.Attribute +'(' Punctuation +'font1' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'drawString' Name.Attribute +'(' Punctuation +'(' Punctuation +'String' Name +')' Punctuation +' ' Text +'v' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +',' Punctuation +' ' Text +'90' Literal.Number.Integer +',' Punctuation +' ' Text +'85' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setFont' Name.Attribute +'(' Punctuation +'font2' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +',' Punctuation +' ' Text +'y' Name +' ' Text +'=' Operator +' ' Text +'90' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'v' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'drawString' Name.Attribute +'(' Punctuation +'(' Punctuation +'String' Name +')' Punctuation +' ' Text +'v' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +',' Punctuation +' ' Text +'120' Literal.Number.Integer +',' Punctuation +' ' Text +'y' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'strH' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End Features class\n' Comment.Single + +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Scrolling text of Java2D contributors.\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'Contributors' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'Part' Name +' ' Text +'{' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'members' Name +'[' Operator +']' Operator +' ' Text +'=' Operator +' ' Text +'\n' Text + +' ' Text +'{' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Brian Lichtenwalter' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Jeannette Hung' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Thanh Nguyen' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Jim Graham' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Jerry Evans' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'John Raley' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Michael Peirce' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Robert Kim' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Jennifer Ball' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Deborah Adair' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Paul Charlton' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Dmitry Feld' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Gregory Stone' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Richard Blanchard' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Link Perry' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Phil Race' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Vincent Hardy' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Parry Kejriwal' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Doug Felt' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Rekha Rangarajan' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Paula Patel' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Michael Bundschuh' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Joe Warzecha' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'\n' Text + +' ' Text +'"' Literal.String +'Joey Beheler' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Aastha Bhardwaj' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Daniel Rice' Literal.String +'"' Literal.String +',' Punctuation +'\n' Text + +' ' Text +'"' Literal.String +'Chris Campbell' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Shinsuke Fukuda' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Dmitri Trembovetski' Literal.String +'"' Literal.String +',' Punctuation +'\n' Text + +' ' Text +'"' Literal.String +'Chet Haase' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Jennifer Godinez' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Nicholas Talian' Literal.String +'"' Literal.String +',' Punctuation +'\n' Text + +' ' Text +'"' Literal.String +'Raul Vera' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Ankit Patel' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Ilya Bagrak' Literal.String +'"' Literal.String +'\n' Text + +' ' Text +'}' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'Font' Name +' ' Text +'font' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Font' Name +'(' Punctuation +'"' Literal.String +'serif' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'Font' Name +'.' Punctuation +'PLAIN' Name.Attribute +',' Punctuation +' ' Text +'26' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'static' Keyword.Declaration +' ' Text +'FontMetrics' Name +' ' Text +'fm' Name +' ' Text +'=' Operator +' ' Text +'Surface' Name +'.' Punctuation +'getMetrics' Name.Attribute +'(' Punctuation +'font' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'beginning' Name +',' Punctuation +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'nStrs' Name +',' Punctuation +' ' Text +'strH' Name +',' Punctuation +' ' Text +'index' Name +',' Punctuation +' ' Text +'yh' Name +',' Punctuation +' ' Text +'height' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'v' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'Vector' Name +' ' Text +'cast' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'Vector' Name +'(' Punctuation +'members' Name +'.' Punctuation +'length' Name.Attribute +'+' Operator +'3' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'counter' Name +',' Punctuation +' ' Text +'cntMod' Name +';' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'GradientPaint' Name +' ' Text +'gp' Name +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'Contributors' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'beg' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'end' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'beginning' Name.Attribute +' ' Text +'=' Operator +' ' Text +'beg' Name +';' Punctuation +'\n' Text + +' ' Text +'this' Keyword +'.' Punctuation +'ending' Name.Attribute +' ' Text +'=' Operator +' ' Text +'end' Name +';' Punctuation +'\n' Text + +' ' Text +'java' Name +'.' Punctuation +'util' Name.Attribute +'.' Punctuation +'Arrays' Name.Attribute +'.' Punctuation +'sort' Name.Attribute +'(' Punctuation +'members' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'cast' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'"' Literal.String +'CONTRIBUTORS' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'cast' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'"' Literal.String +' ' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'members' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'cast' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'members' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'cast' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'"' Literal.String +' ' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +' ' Text +'cast' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'"' Literal.String +' ' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'cntMod' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'ending' Name +' ' Text +'-' Operator +' ' Text +'beginning' Name +')' Punctuation +' ' Text +'/' Operator +' ' Text +'cast' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'reset' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'v' Name +'.' Punctuation +'clear' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'strH' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'int' Keyword.Type +')' Punctuation +' ' Text +'(' Punctuation +'fm' Name +'.' Punctuation +'getAscent' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +'fm' Name +'.' Punctuation +'getDescent' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'nStrs' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'h' Name +'-' Operator +'40' Literal.Number.Integer +')' Punctuation +'/' Operator +'strH' Name +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'height' Name +' ' Text +'=' Operator +' ' Text +'strH' Name +' ' Text +'*' Operator +' ' Text +'(' Punctuation +'nStrs' Name +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +' ' Text +'+' Operator +' ' Text +'48' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'index' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'gp' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'GradientPaint' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'h' Name +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +'Color' Name +'.' Punctuation +'white' Name.Attribute +',' Punctuation +'0' Literal.Number.Integer +',' Punctuation +'h' Name +'+' Operator +'20' Literal.Number.Integer +',' Punctuation +'Color' Name +'.' Punctuation +'black' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'counter' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'step' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'counter' Name +'+' Operator +'+' Operator +'%' Operator +'cntMod' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'index' Name +' ' Text +'<' Operator +' ' Text +'cast' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'v' Name +'.' Punctuation +'addElement' Name.Attribute +'(' Punctuation +'cast' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'index' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'(' Punctuation +'v' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'=' Operator +'=' Operator +' ' Text +'nStrs' Name +' ' Text +'|' Operator +'|' Operator +' ' Text +'index' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'cast' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'&' Operator +'&' Operator +' ' Text +'v' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'v' Name +'.' Punctuation +'removeElementAt' Name.Attribute +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'+' Operator +'+' Operator +'index' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'render' Name.Function +'(' Punctuation +'int' Keyword.Type +' ' Text +'w' Name +',' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'h' Name +',' Punctuation +' ' Text +'Graphics2D' Name +' ' Text +'g2' Name +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setPaint' Name.Attribute +'(' Punctuation +'gp' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'setFont' Name.Attribute +'(' Punctuation +'font' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'double' Keyword.Type +' ' Text +'remainder' Name +' ' Text +'=' Operator +' ' Text +'counter' Name +'%' Operator +'cntMod' Name +';' Punctuation +'\n' Text + +' ' Text +'double' Keyword.Type +' ' Text +'incr' Name +' ' Text +'=' Operator +' ' Text +'1.0' Literal.Number.Float +'-' Operator +'remainder' Name +'/' Operator +'cntMod' Name +';' Punctuation +'\n' Text + +' ' Text +'incr' Name +' ' Text +'=' Operator +' ' Text +'incr' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'1.0' Literal.Number.Float +' ' Text +'?' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +':' Punctuation +' ' Text +'incr' Name +';' Punctuation +'\n' Text + +' ' Text +'int' Keyword.Type +' ' Text +'y' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'int' Keyword.Type +')' Punctuation +' ' Text +'(' Punctuation +'incr' Name +' ' Text +'*' Operator +' ' Text +'strH' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'index' Name +' ' Text +'>' Operator +'=' Operator +' ' Text +'cast' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'y' Name +' ' Text +'=' Operator +' ' Text +'yh' Name +' ' Text +'+' Operator +' ' Text +'y' Name +';' Punctuation +' ' Text +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'else' Keyword +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'y' Name +' ' Text +'=' Operator +' ' Text +'yh' Name +' ' Text +'=' Operator +' ' Text +'height' Name +' ' Text +'-' Operator +' ' Text +'v' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'*' Operator +' ' Text +'strH' Name +' ' Text +'+' Operator +' ' Text +'y' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'v' Name +'.' Punctuation +'size' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'String' Name +' ' Text +'s' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'String' Name +')' Punctuation +' ' Text +'v' Name +'.' Punctuation +'get' Name.Attribute +'(' Punctuation +'i' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'g2' Name +'.' Punctuation +'drawString' Name.Attribute +'(' Punctuation +'s' Name +',' Punctuation +' ' Text +'w' Name +'/' Operator +'2' Literal.Number.Integer +'-' Operator +'fm' Name +'.' Punctuation +'stringWidth' Name.Attribute +'(' Punctuation +'s' Name +')' Punctuation +'/' Operator +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'y' Name +' ' Text +'+' Operator +'=' Operator +' ' Text +'strH' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getBegin' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'beginning' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getEnd' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'ending' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End Contributors class\n' Comment.Single + +'\n' Text + +' ' Text +'}' Punctuation +' ' Text +'// End Surface class\n' Comment.Single + +'}' Punctuation +' ' Text +'// End Intro class\n' Comment.Single diff --git a/tests/examplefiles/java/badcase.java b/tests/examplefiles/java/badcase.java new file mode 100644 index 00000000..dc9b2e71 --- /dev/null +++ b/tests/examplefiles/java/badcase.java @@ -0,0 +1,2 @@ +// this used to take ages +void foo() throws xxxxxxxxxxxxxxxxxxxxxx{ } diff --git a/tests/examplefiles/java/badcase.java.output b/tests/examplefiles/java/badcase.java.output new file mode 100644 index 00000000..c89e5c7f --- /dev/null +++ b/tests/examplefiles/java/badcase.java.output @@ -0,0 +1,15 @@ +'// this used to take ages\n' Comment.Single + +'void' Keyword.Type +' ' Text +'foo' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'xxxxxxxxxxxxxxxxxxxxxx' Name +'{' Punctuation +' ' Text +'}' Punctuation +'\n' Text diff --git a/tests/examplefiles/java/example.java b/tests/examplefiles/java/example.java new file mode 100644 index 00000000..78f9d727 --- /dev/null +++ b/tests/examplefiles/java/example.java @@ -0,0 +1,16 @@ +class _PostUnico$deClassá +{void fo$o() {} + + void PostUnicodeFunctioná() { + láb$el: + break láb$el; + + } +} + +class áPreUnicode$Class +{ + public int $foo; + public int á$foo; + _PostUnico$deClassá áPreUnicodeFunction() { return null; } +} diff --git a/tests/examplefiles/java/example.java.output b/tests/examplefiles/java/example.java.output new file mode 100644 index 00000000..11ae51ae --- /dev/null +++ b/tests/examplefiles/java/example.java.output @@ -0,0 +1,97 @@ +'class' Keyword.Declaration +' ' Text +'_PostUnico$deClassá' Name.Class +'\n' Text + +'{' Punctuation +'void' Keyword.Type +' ' Text +'fo$o' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'void' Keyword.Type +' ' Text +'PostUnicodeFunctioná' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'láb$el' Name +':' Punctuation +'\n' Text + +' ' Text +'break' Keyword +' ' Text +'láb$el' Name +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'}' Punctuation +'\n' Text + +'\n' Text + +'class' Keyword.Declaration +' ' Text +'áPreUnicode$Class' Name.Class +'\n' Text + +'{' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +'\u2008' Text +'int' Keyword.Type +' ' Text +'$foo' Name +';' Punctuation +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'á$foo' Name +';' Punctuation +'\n' Text + +' ' Text +'_PostUnico$deClassá' Name +' ' Text +'áPreUnicodeFunction' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +' ' Text +'return' Keyword +' ' Text +'null' Keyword.Constant +';' Punctuation +' ' Text +'}' Punctuation +'\n' Text + +'}' Punctuation +'\n' Text diff --git a/tests/examplefiles/java/test.java b/tests/examplefiles/java/test.java new file mode 100644 index 00000000..64c08531 --- /dev/null +++ b/tests/examplefiles/java/test.java @@ -0,0 +1,653 @@ +/* + * Created on 13-Mar-2004 + * Created by James Yeh + * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * AELITIS, SAS au capital de 46,603.30 euros + * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France. + * + */ + +package org.gudy.azureus2.platform.macosx; + +import org.gudy.azureus2.core3.logging.*; +import org.gudy.azureus2.core3.util.AEMonitor; +import org.gudy.azureus2.core3.util.Debug; +import org.gudy.azureus2.core3.util.SystemProperties; +import org.gudy.azureus2.platform.PlatformManager; +import org.gudy.azureus2.platform.PlatformManagerCapabilities; +import org.gudy.azureus2.platform.PlatformManagerListener; +import org.gudy.azureus2.platform.macosx.access.jnilib.OSXAccess; + +import org.gudy.azureus2.plugins.platform.PlatformManagerException; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.text.MessageFormat; +import java.util.HashSet; + + +/** + * Performs platform-specific operations with Mac OS X + * + * @author James Yeh + * @version 1.0 Initial Version + * @see PlatformManager + */ +public class PlatformManagerImpl implements PlatformManager +{ + private static final LogIDs LOGID = LogIDs.CORE; + + protected static PlatformManagerImpl singleton; + protected static AEMonitor class_mon = new AEMonitor("PlatformManager"); + + private static final String USERDATA_PATH = new File(System.getProperty("user.home") + "/Library/Application Support/").getPath(); + + //T: PlatformManagerCapabilities + private final HashSet capabilitySet = new HashSet(); + + /** + * Gets the platform manager singleton, which was already initialized + */ + public static PlatformManagerImpl getSingleton() + { + return singleton; + } + + /** + * Tries to enable cocoa-java access and instantiates the singleton + */ + static + { + initializeSingleton(); + } + + /** + * Instantiates the singleton + */ + private static void initializeSingleton() + { + try + { + class_mon.enter(); + singleton = new PlatformManagerImpl(); + } + catch (Throwable e) + { + Logger.log(new LogEvent(LOGID, "Failed to initialize platform manager" + + " for Mac OS X", e)); + } + finally + { + class_mon.exit(); + } + } + + /** + * Creates a new PlatformManager and initializes its capabilities + */ + public PlatformManagerImpl() + { + capabilitySet.add(PlatformManagerCapabilities.RecoverableFileDelete); + capabilitySet.add(PlatformManagerCapabilities.ShowFileInBrowser); + capabilitySet.add(PlatformManagerCapabilities.ShowPathInCommandLine); + capabilitySet.add(PlatformManagerCapabilities.CreateCommandLineProcess); + capabilitySet.add(PlatformManagerCapabilities.GetUserDataDirectory); + capabilitySet.add(PlatformManagerCapabilities.UseNativeScripting); + capabilitySet.add(PlatformManagerCapabilities.PlaySystemAlert); + + if (OSXAccess.isLoaded()) { + capabilitySet.add(PlatformManagerCapabilities.GetVersion); + } + } + + /** + * {@inheritDoc} + */ + public int getPlatformType() + { + return PT_MACOSX; + } + + /** + * {@inheritDoc} + */ + public String getVersion() throws PlatformManagerException + { + if (!OSXAccess.isLoaded()) { + throw new PlatformManagerException("Unsupported capability called on platform manager"); + } + + return OSXAccess.getVersion(); + } + + /** + * {@inheritDoc} + * @see org.gudy.azureus2.core3.util.SystemProperties#getUserPath() + */ + public String getUserDataDirectory() throws PlatformManagerException + { + return USERDATA_PATH; + } + + public File + getLocation( + long location_id ) + + throws PlatformManagerException + { + if ( location_id == LOC_USER_DATA ){ + + return( new File( USERDATA_PATH )); + } + + return( null ); + } + /** + * Not implemented; returns True + */ + public boolean isApplicationRegistered() throws PlatformManagerException + { + return true; + } + + + public String + getApplicationCommandLine() + throws PlatformManagerException + { + try{ + String bundle_path = System.getProperty("user.dir") +SystemProperties.SEP+ SystemProperties.getApplicationName() + ".app"; + + File osx_app_bundle = new File( bundle_path ).getAbsoluteFile(); + + if( !osx_app_bundle.exists() ) { + String msg = "OSX app bundle not found: [" +osx_app_bundle.toString()+ "]"; + System.out.println( msg ); + if (Logger.isEnabled()) + Logger.log(new LogEvent(LOGID, msg)); + throw new PlatformManagerException( msg ); + } + + return "open -a \"" +osx_app_bundle.toString()+ "\""; + //return osx_app_bundle.toString() +"/Contents/MacOS/JavaApplicationStub"; + + } + catch( Throwable t ){ + t.printStackTrace(); + return null; + } + } + + + public boolean + isAdditionalFileTypeRegistered( + String name, // e.g. "BitTorrent" + String type ) // e.g. ".torrent" + + throws PlatformManagerException + { + throw new PlatformManagerException("Unsupported capability called on platform manager"); + } + + public void + unregisterAdditionalFileType( + String name, // e.g. "BitTorrent" + String type ) // e.g. ".torrent" + + throws PlatformManagerException + { + throw new PlatformManagerException("Unsupported capability called on platform manager"); + } + + public void + registerAdditionalFileType( + String name, // e.g. "BitTorrent" + String description, // e.g. "BitTorrent File" + String type, // e.g. ".torrent" + String content_type ) // e.g. "application/x-bittorrent" + + throws PlatformManagerException + { + throw new PlatformManagerException("Unsupported capability called on platform manager"); + } + + /** + * Not implemented; does nothing + */ + public void registerApplication() throws PlatformManagerException + { + // handled by LaunchServices and/0r user interaction + } + + /** + * {@inheritDoc} + */ + public void createProcess(String cmd, boolean inheritsHandles) throws PlatformManagerException + { + try + { + performRuntimeExec(cmd.split(" ")); + } + catch (Throwable e) + { + throw new PlatformManagerException("Failed to create process", e); + } + } + + /** + * {@inheritDoc} + */ + public void performRecoverableFileDelete(String path) throws PlatformManagerException + { + File file = new File(path); + if(!file.exists()) + { + if (Logger.isEnabled()) + Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, "Cannot find " + + file.getName())); + return; + } + + boolean useOSA = !NativeInvocationBridge.sharedInstance().isEnabled() || !NativeInvocationBridge.sharedInstance().performRecoverableFileDelete(file); + + if(useOSA) + { + try + { + StringBuffer sb = new StringBuffer(); + sb.append("tell application \""); + sb.append("Finder"); + sb.append("\" to move (posix file \""); + sb.append(path); + sb.append("\" as alias) to the trash"); + + performOSAScript(sb); + } + catch (Throwable e) + { + throw new PlatformManagerException("Failed to move file", e); + } + } + } + + /** + * {@inheritDoc} + */ + public boolean hasCapability(PlatformManagerCapabilities capability) + { + return capabilitySet.contains(capability); + } + + /** + * {@inheritDoc} + */ + public void dispose() + { + NativeInvocationBridge.sharedInstance().dispose(); + } + + /** + * {@inheritDoc} + */ + public void setTCPTOSEnabled(boolean enabled) throws PlatformManagerException + { + throw new PlatformManagerException("Unsupported capability called on platform manager"); + } + + public void + copyFilePermissions( + String from_file_name, + String to_file_name ) + + throws PlatformManagerException + { + throw new PlatformManagerException("Unsupported capability called on platform manager"); + } + + /** + * {@inheritDoc} + */ + public void showFile(String path) throws PlatformManagerException + { + File file = new File(path); + if(!file.exists()) + { + if (Logger.isEnabled()) + Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, "Cannot find " + + file.getName())); + throw new PlatformManagerException("File not found"); + } + + showInFinder(file); + } + + // Public utility methods not shared across the interface + + /** + * Plays the system alert (the jingle is specified by the user in System Preferences) + */ + public void playSystemAlert() + { + try + { + performRuntimeExec(new String[]{"beep"}); + } + catch (IOException e) + { + if (Logger.isEnabled()) + Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, + "Cannot play system alert")); + Logger.log(new LogEvent(LOGID, "", e)); + } + } + + /** + * <p>Shows the given file or directory in Finder</p> + * @param path Absolute path to the file or directory + */ + public void showInFinder(File path) + { + boolean useOSA = !NativeInvocationBridge.sharedInstance().isEnabled() || !NativeInvocationBridge.sharedInstance().showInFinder(path); + + if(useOSA) + { + StringBuffer sb = new StringBuffer(); + sb.append("tell application \""); + sb.append(getFileBrowserName()); + sb.append("\" to reveal (posix file \""); + sb.append(path); + sb.append("\" as alias)"); + + try + { + performOSAScript(sb); + } + catch (IOException e) + { + Logger.log(new LogAlert(LogAlert.UNREPEATABLE, LogAlert.AT_ERROR, e + .getMessage())); + } + } + } + + /** + * <p>Shows the given file or directory in Terminal by executing cd /absolute/path/to</p> + * @param path Absolute path to the file or directory + */ + public void showInTerminal(String path) + { + showInTerminal(new File(path)); + } + + /** + * <p>Shows the given file or directory in Terminal by executing cd /absolute/path/to</p> + * @param path Absolute path to the file or directory + */ + public void showInTerminal(File path) + { + if (path.isFile()) + { + path = path.getParentFile(); + } + + if (path != null && path.isDirectory()) + { + StringBuffer sb = new StringBuffer(); + sb.append("tell application \""); + sb.append("Terminal"); + sb.append("\" to do script \"cd "); + sb.append(path.getAbsolutePath().replaceAll(" ", "\\ ")); + sb.append("\""); + + try + { + performOSAScript(sb); + } + catch (IOException e) + { + Logger.log(new LogAlert(LogAlert.UNREPEATABLE, LogAlert.AT_ERROR, e + .getMessage())); + } + } + else + { + if (Logger.isEnabled()) + Logger.log(new LogEvent(LOGID, LogEvent.LT_WARNING, "Cannot find " + + path.getName())); + } + } + + // Internal utility methods + + /** + * Compiles a new AppleScript instance and runs it + * @param cmd AppleScript command to execute; do not surround command with extra quotation marks + * @return Output of the script + * @throws IOException If the script failed to execute + */ + protected static String performOSAScript(CharSequence cmd) throws IOException + { + return performOSAScript(new CharSequence[]{cmd}); + } + + /** + * Compiles a new AppleScript instance and runs it + * @param cmds AppleScript Sequence of commands to execute; do not surround command with extra quotation marks + * @return Output of the script + * @throws IOException If the script failed to execute + */ + protected static String performOSAScript(CharSequence[] cmds) throws IOException + { + long start = System.currentTimeMillis(); + Debug.outNoStack("Executing OSAScript: "); + for (int i = 0; i < cmds.length; i++) + { + Debug.outNoStack("\t" + cmds[i]); + } + + String[] cmdargs = new String[2 * cmds.length + 1]; + cmdargs[0] = "osascript"; + for (int i = 0; i < cmds.length; i++) + { + cmdargs[i * 2 + 1] = "-e"; + cmdargs[i * 2 + 2] = String.valueOf(cmds[i]); + } + + Process osaProcess = performRuntimeExec(cmdargs); + BufferedReader reader = new BufferedReader(new InputStreamReader(osaProcess.getInputStream())); + String line = reader.readLine(); + reader.close(); + Debug.outNoStack("OSAScript Output: " + line); + + reader = new BufferedReader(new InputStreamReader(osaProcess.getErrorStream())); + String errorMsg = reader.readLine(); + reader.close(); + + Debug.outNoStack("OSAScript Error (if any): " + errorMsg); + + Debug.outNoStack(MessageFormat.format("OSAScript execution ended ({0}ms)", new Object[]{String.valueOf(System.currentTimeMillis() - start)})); + + if (errorMsg != null) + { + throw new IOException(errorMsg); + } + + return line; + } + + /** + * Compiles a new AppleScript instance and runs it + * @param script AppleScript file (.scpt) to execute + * @return Output of the script + * @throws IOException If the script failed to execute + */ + protected static String performOSAScript(File script) throws IOException + { + long start = System.currentTimeMillis(); + Debug.outNoStack("Executing OSAScript from file: " + script.getPath()); + + Process osaProcess = performRuntimeExec(new String[]{"osascript", script.getPath()}); + BufferedReader reader = new BufferedReader(new InputStreamReader(osaProcess.getInputStream())); + String line = reader.readLine(); + reader.close(); + Debug.outNoStack("OSAScript Output: " + line); + + reader = new BufferedReader(new InputStreamReader(osaProcess.getErrorStream())); + String errorMsg = reader.readLine(); + reader.close(); + + Debug.outNoStack("OSAScript Error (if any): " + errorMsg); + + Debug.outNoStack(MessageFormat.format("OSAScript execution ended ({0}ms)", new Object[]{String.valueOf(System.currentTimeMillis() - start)})); + + if (errorMsg != null) + { + throw new IOException(errorMsg); + } + + return line; + } + + /** + * Compiles a new AppleScript instance to the specified location + * @param cmd Command to compile; do not surround command with extra quotation marks + * @param destination Destination location of the AppleScript file + * @return True if compiled successfully + */ + protected static boolean compileOSAScript(CharSequence cmd, File destination) + { + return compileOSAScript(new CharSequence[]{cmd}, destination); + } + + /** + * Compiles a new AppleScript instance to the specified location + * @param cmds Sequence of commands to compile; do not surround command with extra quotation marks + * @param destination Destination location of the AppleScript file + * @return True if compiled successfully + */ + protected static boolean compileOSAScript(CharSequence[] cmds, File destination) + { + long start = System.currentTimeMillis(); + Debug.outNoStack("Compiling OSAScript: " + destination.getPath()); + for (int i = 0; i < cmds.length; i++) + { + Debug.outNoStack("\t" + cmds[i]); + } + + String[] cmdargs = new String[2 * cmds.length + 3]; + cmdargs[0] = "osacompile"; + for (int i = 0; i < cmds.length; i++) + { + cmdargs[i * 2 + 1] = "-e"; + cmdargs[i * 2 + 2] = String.valueOf(cmds[i]); + } + + cmdargs[cmdargs.length - 2] = "-o"; + cmdargs[cmdargs.length - 1] = destination.getPath(); + + String errorMsg; + try + { + Process osaProcess = performRuntimeExec(cmdargs); + + BufferedReader reader = new BufferedReader(new InputStreamReader(osaProcess.getErrorStream())); + errorMsg = reader.readLine(); + reader.close(); + } + catch (IOException e) + { + Debug.outNoStack("OSACompile Execution Failed: " + e.getMessage()); + Debug.printStackTrace(e); + return false; + } + + Debug.outNoStack("OSACompile Error (if any): " + errorMsg); + + Debug.outNoStack(MessageFormat.format("OSACompile execution ended ({0}ms)", new Object[]{String.valueOf(System.currentTimeMillis() - start)})); + + return (errorMsg == null); + } + + /** + * @see Runtime#exec(String[]) + */ + protected static Process performRuntimeExec(String[] cmdargs) throws IOException + { + try + { + return Runtime.getRuntime().exec(cmdargs); + } + catch (IOException e) + { + Logger.log(new LogAlert(LogAlert.UNREPEATABLE, e.getMessage(), e)); + throw e; + } + } + + /** + * <p>Gets the preferred file browser name</p> + * <p>Currently supported browsers are Path Finder and Finder. If Path Finder is currently running + * (not just installed), then "Path Finder is returned; else, "Finder" is returned.</p> + * @return "Path Finder" if it is currently running; else "Finder" + */ + private static String getFileBrowserName() + { + try + { + // slowwwwwwww + if ("true".equalsIgnoreCase(performOSAScript("tell application \"System Events\" to exists process \"Path Finder\""))) + { + Debug.outNoStack("Path Finder is running"); + + return "Path Finder"; + } + else + { + return "Finder"; + } + } + catch (IOException e) + { + Debug.printStackTrace(e); + Logger.log(new LogEvent(LOGID, e.getMessage(), e)); + + return "Finder"; + } + } + + public boolean + testNativeAvailability( + String name ) + + throws PlatformManagerException + { + throw new PlatformManagerException("Unsupported capability called on platform manager"); + } + + public void + addListener( + PlatformManagerListener listener ) + { + } + + public void + removeListener( + PlatformManagerListener listener ) + { + } +} diff --git a/tests/examplefiles/java/test.java.output b/tests/examplefiles/java/test.java.output new file mode 100644 index 00000000..f1579dd4 --- /dev/null +++ b/tests/examplefiles/java/test.java.output @@ -0,0 +1,4634 @@ +'/*\n * Created on 13-Mar-2004\n * Created by James Yeh\n * Copyright (C) 2004, 2005, 2006 Aelitis, All Rights Reserved.\n *\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; either version 2\n * of the License, or (at your option) any later version.\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n * \n * AELITIS, SAS au capital de 46,603.30 euros\n * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.\n *\n */' Comment.Multiline +'\n' Text + +'\n' Text + +'package' Keyword.Namespace +' ' Text +'org.gudy.azureus2.platform.macosx' Name.Namespace +';' Punctuation +'\n' Text + +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.core3.logging.*' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.core3.util.AEMonitor' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.core3.util.Debug' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.core3.util.SystemProperties' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.platform.PlatformManager' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.platform.PlatformManagerCapabilities' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.platform.PlatformManagerListener' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.platform.macosx.access.jnilib.OSXAccess' Name.Namespace +';' Punctuation +'\n' Text + +'\n' Text + +'import' Keyword.Namespace +' ' Text +'org.gudy.azureus2.plugins.platform.PlatformManagerException' Name.Namespace +';' Punctuation +'\n' Text + +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.io.BufferedReader' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.io.File' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.io.IOException' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.io.InputStreamReader' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.text.MessageFormat' Name.Namespace +';' Punctuation +'\n' Text + +'import' Keyword.Namespace +' ' Text +'java.util.HashSet' Name.Namespace +';' Punctuation +'\n' Text + +'\n' Text + +'\n' Text + +'/**\n * Performs platform-specific operations with Mac OS X\n *\n * @author James Yeh\n * @version 1.0 Initial Version\n * @see PlatformManager\n */' Comment.Multiline +'\n' Text + +'public' Keyword.Declaration +' ' Text +'class' Keyword.Declaration +' ' Text +'PlatformManagerImpl' Name.Class +' ' Text +'implements' Keyword.Declaration +' ' Text +'PlatformManager' Name +'\n' Text + +'{' Punctuation +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'LogIDs' Name +' ' Text +'LOGID' Name +' ' Text +'=' Operator +' ' Text +'LogIDs' Name +'.' Punctuation +'CORE' Name.Attribute +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'protected' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'PlatformManagerImpl' Name +' ' Text +'singleton' Name +';' Punctuation +'\n' Text + +' ' Text +'protected' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'AEMonitor' Name +' ' Text +'class_mon' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'AEMonitor' Name +'(' Punctuation +'"' Literal.String +'PlatformManager' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'USERDATA_PATH' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'File' Name +'(' Punctuation +'System' Name +'.' Punctuation +'getProperty' Name.Attribute +'(' Punctuation +'"' Literal.String +'user.home' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'+' Operator +' ' Text +'"' Literal.String +'/Library/Application Support/' Literal.String +'"' Literal.String +')' Punctuation +'.' Punctuation +'getPath' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'//T: PlatformManagerCapabilities\n' Comment.Single + +' ' Text +'private' Keyword.Declaration +' ' Text +'final' Keyword.Declaration +' ' Text +'HashSet' Name +' ' Text +'capabilitySet' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'HashSet' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Gets the platform manager singleton, which was already initialized\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'PlatformManagerImpl' Name +' ' Text +'getSingleton' Name.Function +'(' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'singleton' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Tries to enable cocoa-java access and instantiates the singleton\n */' Comment.Multiline +'\n' Text + +' ' Text +'static' Keyword.Declaration +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'initializeSingleton' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Instantiates the singleton\n */' Comment.Multiline +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'initializeSingleton' Name.Function +'(' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'class_mon' Name +'.' Punctuation +'enter' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'singleton' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'PlatformManagerImpl' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'Throwable' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' \t' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogEvent' Name +'(' Punctuation +'LOGID' Name +',' Punctuation +' ' Text +'"' Literal.String +'Failed to initialize platform manager' Literal.String +'"' Literal.String +'\n' Text + +'\t\t\t\t\t' Text +'+' Operator +' ' Text +'"' Literal.String +' for Mac OS X' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'e' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'finally' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'class_mon' Name +'.' Punctuation +'exit' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Creates a new PlatformManager and initializes its capabilities\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'PlatformManagerImpl' Name.Function +'(' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'capabilitySet' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'PlatformManagerCapabilities' Name +'.' Punctuation +'RecoverableFileDelete' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'capabilitySet' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'PlatformManagerCapabilities' Name +'.' Punctuation +'ShowFileInBrowser' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'capabilitySet' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'PlatformManagerCapabilities' Name +'.' Punctuation +'ShowPathInCommandLine' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'capabilitySet' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'PlatformManagerCapabilities' Name +'.' Punctuation +'CreateCommandLineProcess' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'capabilitySet' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'PlatformManagerCapabilities' Name +'.' Punctuation +'GetUserDataDirectory' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'capabilitySet' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'PlatformManagerCapabilities' Name +'.' Punctuation +'UseNativeScripting' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'capabilitySet' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'PlatformManagerCapabilities' Name +'.' Punctuation +'PlaySystemAlert' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'OSXAccess' Name +'.' Punctuation +'isLoaded' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +'\t ' Text +'capabilitySet' Name +'.' Punctuation +'add' Name.Attribute +'(' Punctuation +'PlatformManagerCapabilities' Name +'.' Punctuation +'GetVersion' Name.Attribute +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'int' Keyword.Type +' ' Text +'getPlatformType' Name.Function +'(' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'PT_MACOSX' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'getVersion' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' \t' Text +'if' Keyword +' ' Text +'(' Punctuation +'!' Operator +'OSXAccess' Name +'.' Punctuation +'isLoaded' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Unsupported capability called on platform manager' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' \t' Text +'}' Punctuation +'\n' Text + +' \t' Text +'\n' Text + +' \t' Text +'return' Keyword +' ' Text +'OSXAccess' Name +'.' Punctuation +'getVersion' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n * @see org.gudy.azureus2.core3.util.SystemProperties#getUserPath()\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'getUserDataDirectory' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'USERDATA_PATH' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\t' Text +'public' Keyword.Declaration +' ' Text +'File' Name +'\n' Text + +'\t' Text +'getLocation' Name.Function +'(' Punctuation +'\n' Text + +'\t\t' Text +'long' Keyword.Type +'\t' Text +'location_id' Name +' ' Text +')' Punctuation +'\n' Text + +'\t' Text +'\n' Text + +'\t\t' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +'\t' Text +'{' Punctuation +'\n' Text + +'\t\t' Text +'if' Keyword +' ' Text +'(' Punctuation +' ' Text +'location_id' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'LOC_USER_DATA' Name +' ' Text +')' Punctuation +'{' Punctuation +'\n' Text + +'\t\t\t' Text +'\n' Text + +'\t\t\t' Text +'return' Keyword +'(' Punctuation +' ' Text +'new' Keyword +' ' Text +'File' Name +'(' Punctuation +' ' Text +'USERDATA_PATH' Name +' ' Text +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\t\t' Text +'}' Punctuation +'\n' Text + +'\t\t' Text +'\n' Text + +'\t\t' Text +'return' Keyword +'(' Punctuation +' ' Text +'null' Keyword.Constant +' ' Text +')' Punctuation +';' Punctuation +'\n' Text + +'\t' Text +'}' Punctuation +'\n' Text + +' ' Text +'/**\n * Not implemented; returns True\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +' ' Text +'isApplicationRegistered' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'true' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'\n' Text + +'\t' Text +'public' Keyword.Declaration +' ' Text +'String' Name +'\n' Text + +'\t' Text +'getApplicationCommandLine' Name.Function +'(' Punctuation +')' Punctuation +'\n' Text + +'\t\t' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +'\t' Text +'{' Punctuation +'\n' Text + +'\t\t' Text +'try' Keyword +'{' Punctuation +'\t ' Text +'\n' Text + +'\t\t\t' Text +'String' Name +'\t' Text +'bundle_path' Name +' ' Text +'=' Operator +' ' Text +'System' Name +'.' Punctuation +'getProperty' Name.Attribute +'(' Punctuation +'"' Literal.String +'user.dir' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'+' Operator +'SystemProperties' Name +'.' Punctuation +'SEP' Name.Attribute +'+' Operator +' ' Text +'SystemProperties' Name +'.' Punctuation +'getApplicationName' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'+' Operator +' ' Text +'"' Literal.String +'.app' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +'\n' Text + +'\t\t\t' Text +'File' Name +' ' Text +'osx_app_bundle' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'File' Name +'(' Punctuation +' ' Text +'bundle_path' Name +' ' Text +')' Punctuation +'.' Punctuation +'getAbsoluteFile' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\t\t\t' Text +'\n' Text + +'\t\t\t' Text +'if' Keyword +'(' Punctuation +' ' Text +'!' Operator +'osx_app_bundle' Name +'.' Punctuation +'exists' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +')' Punctuation +' ' Text +'{' Punctuation +'\n' Text + +'\t\t\t\t' Text +'String' Name +' ' Text +'msg' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'OSX app bundle not found: [' Literal.String +'"' Literal.String +' ' Text +'+' Operator +'osx_app_bundle' Name +'.' Punctuation +'toString' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +' ' Text +'"' Literal.String +']' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +'\t\t\t\t' Text +'System' Name +'.' Punctuation +'out' Name.Attribute +'.' Punctuation +'println' Name.Attribute +'(' Punctuation +' ' Text +'msg' Name +' ' Text +')' Punctuation +';' Punctuation +'\n' Text + +'\t\t\t\t' Text +'if' Keyword +' ' Text +'(' Punctuation +'Logger' Name +'.' Punctuation +'isEnabled' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +'\t\t\t\t\t' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogEvent' Name +'(' Punctuation +'LOGID' Name +',' Punctuation +' ' Text +'msg' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\t\t' Text +'\n' Text + +'\t\t\t\t' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +' ' Text +'msg' Name +' ' Text +')' Punctuation +';' Punctuation +'\n' Text + +'\t\t\t' Text +'}' Punctuation +'\n' Text + +'\t\t\t' Text +'\n' Text + +'\t\t\t' Text +'return' Keyword +' ' Text +'"' Literal.String +'open -a ' Literal.String +'\\"' Literal.String +'"' Literal.String +' ' Text +'+' Operator +'osx_app_bundle' Name +'.' Punctuation +'toString' Name.Attribute +'(' Punctuation +')' Punctuation +'+' Operator +' ' Text +'"' Literal.String +'\\"' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +'\t\t\t' Text +'//return osx_app_bundle.toString() +"/Contents/MacOS/JavaApplicationStub";\n' Comment.Single + +'\t\t\t' Text +'\n' Text + +'\t\t' Text +'}' Punctuation +'\n' Text + +'\t\t' Text +'catch' Keyword +'(' Punctuation +' ' Text +'Throwable' Name +' ' Text +'t' Name +' ' Text +')' Punctuation +'{' Punctuation +'\t' Text +'\n' Text + +'\t\t\t' Text +'t' Name +'.' Punctuation +'printStackTrace' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\t\t\t' Text +'return' Keyword +' ' Text +'null' Keyword.Constant +';' Punctuation +'\n' Text + +'\t\t' Text +'}' Punctuation +'\n' Text + +'\t' Text +'}' Punctuation +'\n' Text + +'\t' Text +'\n' Text + +'\t' Text +'\n' Text + +'\t' Text +'public' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +'\n' Text + +'\t' Text +'isAdditionalFileTypeRegistered' Name.Function +'(' Punctuation +'\n' Text + +'\t\t' Text +'String' Name +'\t\t' Text +'name' Name +',' Punctuation +'\t\t\t\t' Text +'// e.g. "BitTorrent"\n' Comment.Single + +'\t\t' Text +'String' Name +'\t\t' Text +'type' Name +' ' Text +')' Punctuation +'\t\t\t\t' Text +'// e.g. ".torrent"\n' Comment.Single + +'\t' Text +'\n' Text + +'\t\t' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +'\t' Text +'{' Punctuation +'\n' Text + +'\t ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Unsupported capability called on platform manager' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +'\t' Text +'}' Punctuation +'\n' Text + +'\t' Text +'\n' Text + +'\t' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +'\n' Text + +'\t' Text +'unregisterAdditionalFileType' Name.Function +'(' Punctuation +'\n' Text + +'\t\t' Text +'String' Name +'\t\t' Text +'name' Name +',' Punctuation +'\t\t\t\t' Text +'// e.g. "BitTorrent"\n' Comment.Single + +'\t\t' Text +'String' Name +'\t\t' Text +'type' Name +' ' Text +')' Punctuation +'\t\t\t\t' Text +'// e.g. ".torrent"\n' Comment.Single + +'\t\t' Text +'\n' Text + +'\t\t' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +'\t' Text +'{' Punctuation +'\n' Text + +'\t\t' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Unsupported capability called on platform manager' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +'\t' Text +'}' Punctuation +'\n' Text + +'\t' Text +'\n' Text + +'\t' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +'\n' Text + +'\t' Text +'registerAdditionalFileType' Name.Function +'(' Punctuation +'\n' Text + +'\t\t' Text +'String' Name +'\t\t' Text +'name' Name +',' Punctuation +'\t\t\t\t' Text +'// e.g. "BitTorrent"\n' Comment.Single + +'\t\t' Text +'String' Name +'\t\t' Text +'description' Name +',' Punctuation +'\t\t' Text +'// e.g. "BitTorrent File"\n' Comment.Single + +'\t\t' Text +'String' Name +'\t\t' Text +'type' Name +',' Punctuation +'\t\t\t\t' Text +'// e.g. ".torrent"\n' Comment.Single + +'\t\t' Text +'String' Name +'\t\t' Text +'content_type' Name +' ' Text +')' Punctuation +'\t\t' Text +'// e.g. "application/x-bittorrent"\n' Comment.Single + +'\t' Text +'\n' Text + +'\t\t' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +'\t' Text +'{' Punctuation +'\n' Text + +'\t ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Unsupported capability called on platform manager' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +'\t' Text +'}' Punctuation +'\n' Text + +'\t' Text +'\n' Text + +' ' Text +'/**\n * Not implemented; does nothing\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'registerApplication' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'// handled by LaunchServices and/0r user interaction\n' Comment.Single + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'createProcess' Name.Function +'(' Punctuation +'String' Name +' ' Text +'cmd' Name +',' Punctuation +' ' Text +'boolean' Keyword.Type +' ' Text +'inheritsHandles' Name +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'performRuntimeExec' Name +'(' Punctuation +'cmd' Name +'.' Punctuation +'split' Name.Attribute +'(' Punctuation +'"' Literal.String +' ' Literal.String +'"' Literal.String +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'Throwable' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Failed to create process' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'e' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'performRecoverableFileDelete' Name.Function +'(' Punctuation +'String' Name +' ' Text +'path' Name +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'File' Name +' ' Text +'file' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'File' Name +'(' Punctuation +'path' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +'(' Punctuation +'!' Operator +'file' Name +'.' Punctuation +'exists' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +'\t \t' Text +'if' Keyword +' ' Text +'(' Punctuation +'Logger' Name +'.' Punctuation +'isEnabled' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +'\t\t\t\t\t\t\t' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogEvent' Name +'(' Punctuation +'LOGID' Name +',' Punctuation +' ' Text +'LogEvent' Name +'.' Punctuation +'LT_WARNING' Name.Attribute +',' Punctuation +' ' Text +'"' Literal.String +'Cannot find ' Literal.String +'"' Literal.String +'\n' Text + +'\t\t\t\t\t\t\t\t\t' Text +'+' Operator +' ' Text +'file' Name +'.' Punctuation +'getName' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'return' Keyword +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'boolean' Keyword.Type +' ' Text +'useOSA' Name +' ' Text +'=' Operator +' ' Text +'!' Operator +'NativeInvocationBridge' Name +'.' Punctuation +'sharedInstance' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'isEnabled' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'|' Operator +'|' Operator +' ' Text +'!' Operator +'NativeInvocationBridge' Name +'.' Punctuation +'sharedInstance' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'performRecoverableFileDelete' Name.Attribute +'(' Punctuation +'file' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +'(' Punctuation +'useOSA' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'StringBuffer' Name +' ' Text +'sb' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'StringBuffer' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'tell application ' Literal.String +'\\"' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'Finder' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'\\"' Literal.String +' to move (posix file ' Literal.String +'\\"' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'path' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'\\"' Literal.String +' as alias) to the trash' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'performOSAScript' Name +'(' Punctuation +'sb' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'Throwable' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Failed to move file' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'e' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +' ' Text +'hasCapability' Name.Function +'(' Punctuation +'PlatformManagerCapabilities' Name +' ' Text +'capability' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'capabilitySet' Name +'.' Punctuation +'contains' Name.Attribute +'(' Punctuation +'capability' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'dispose' Name.Function +'(' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'NativeInvocationBridge' Name +'.' Punctuation +'sharedInstance' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'dispose' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'setTCPTOSEnabled' Name.Function +'(' Punctuation +'boolean' Keyword.Type +' ' Text +'enabled' Name +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Unsupported capability called on platform manager' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +'\t' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +'\n' Text + +' ' Text +'copyFilePermissions' Name.Function +'(' Punctuation +'\n' Text + +'\t\t' Text +'String' Name +'\t' Text +'from_file_name' Name +',' Punctuation +'\n' Text + +'\t\t' Text +'String' Name +'\t' Text +'to_file_name' Name +' ' Text +')' Punctuation +'\n' Text + +'\t' Text +'\n' Text + +'\t\t' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +'\t' Text +'{' Punctuation +'\n' Text + +'\t ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Unsupported capability called on platform manager' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\t\t' Text +'\n' Text + +'\t' Text +'}' Punctuation +'\n' Text + +'\t' Text +'\n' Text + +' ' Text +'/**\n * {@inheritDoc}\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'showFile' Name.Function +'(' Punctuation +'String' Name +' ' Text +'path' Name +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'File' Name +' ' Text +'file' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'File' Name +'(' Punctuation +'path' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'if' Keyword +'(' Punctuation +'!' Operator +'file' Name +'.' Punctuation +'exists' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' \t' Text +'if' Keyword +' ' Text +'(' Punctuation +'Logger' Name +'.' Punctuation +'isEnabled' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +' \t\t' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogEvent' Name +'(' Punctuation +'LOGID' Name +',' Punctuation +' ' Text +'LogEvent' Name +'.' Punctuation +'LT_WARNING' Name.Attribute +',' Punctuation +' ' Text +'"' Literal.String +'Cannot find ' Literal.String +'"' Literal.String +'\n' Text + +' \t\t\t\t' Text +'+' Operator +' ' Text +'file' Name +'.' Punctuation +'getName' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'File not found' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'showInFinder' Name +'(' Punctuation +'file' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'// Public utility methods not shared across the interface\n' Comment.Single + +'\n' Text + +' ' Text +'/**\n * Plays the system alert (the jingle is specified by the user in System Preferences)\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'playSystemAlert' Name.Function +'(' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'performRuntimeExec' Name +'(' Punctuation +'new' Keyword +' ' Text +'String' Name +'[' Operator +']' Operator +'{' Punctuation +'"' Literal.String +'beep' Literal.String +'"' Literal.String +'}' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'IOException' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' \t' Text +'if' Keyword +' ' Text +'(' Punctuation +'Logger' Name +'.' Punctuation +'isEnabled' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +' \t\t' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogEvent' Name +'(' Punctuation +'LOGID' Name +',' Punctuation +' ' Text +'LogEvent' Name +'.' Punctuation +'LT_WARNING' Name.Attribute +',' Punctuation +'\n' Text + +'\t\t\t\t\t\t' Text +'"' Literal.String +'Cannot play system alert' Literal.String +'"' Literal.String +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' \t' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogEvent' Name +'(' Punctuation +'LOGID' Name +',' Punctuation +' ' Text +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'e' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * <p>Shows the given file or directory in Finder</p>\n * @param path Absolute path to the file or directory\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'showInFinder' Name.Function +'(' Punctuation +'File' Name +' ' Text +'path' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'boolean' Keyword.Type +' ' Text +'useOSA' Name +' ' Text +'=' Operator +' ' Text +'!' Operator +'NativeInvocationBridge' Name +'.' Punctuation +'sharedInstance' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'isEnabled' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'|' Operator +'|' Operator +' ' Text +'!' Operator +'NativeInvocationBridge' Name +'.' Punctuation +'sharedInstance' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'showInFinder' Name.Attribute +'(' Punctuation +'path' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +'(' Punctuation +'useOSA' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'StringBuffer' Name +' ' Text +'sb' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'StringBuffer' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'tell application ' Literal.String +'\\"' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'getFileBrowserName' Name +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'\\"' Literal.String +' to reveal (posix file ' Literal.String +'\\"' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'path' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'\\"' Literal.String +' as alias)' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'performOSAScript' Name +'(' Punctuation +'sb' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'IOException' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogAlert' Name +'(' Punctuation +'LogAlert' Name +'.' Punctuation +'UNREPEATABLE' Name.Attribute +',' Punctuation +' ' Text +'LogAlert' Name +'.' Punctuation +'AT_ERROR' Name.Attribute +',' Punctuation +' ' Text +'e' Name +'\n' Text + +'\t\t\t\t\t\t' Text +'.' Punctuation +'getMessage' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * <p>Shows the given file or directory in Terminal by executing cd /absolute/path/to</p>\n * @param path Absolute path to the file or directory\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'showInTerminal' Name.Function +'(' Punctuation +'String' Name +' ' Text +'path' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'showInTerminal' Name +'(' Punctuation +'new' Keyword +' ' Text +'File' Name +'(' Punctuation +'path' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * <p>Shows the given file or directory in Terminal by executing cd /absolute/path/to</p>\n * @param path Absolute path to the file or directory\n */' Comment.Multiline +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +' ' Text +'showInTerminal' Name.Function +'(' Punctuation +'File' Name +' ' Text +'path' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'path' Name +'.' Punctuation +'isFile' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'path' Name +' ' Text +'=' Operator +' ' Text +'path' Name +'.' Punctuation +'getParentFile' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'path' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +' ' Text +'&' Operator +'&' Operator +' ' Text +'path' Name +'.' Punctuation +'isDirectory' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'StringBuffer' Name +' ' Text +'sb' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'StringBuffer' Name +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'tell application ' Literal.String +'\\"' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'Terminal' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'\\"' Literal.String +' to do script ' Literal.String +'\\"' Literal.String +'cd ' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'path' Name +'.' Punctuation +'getAbsolutePath' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'replaceAll' Name.Attribute +'(' Punctuation +'"' Literal.String +' ' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'\\\\' Literal.String +' ' Literal.String +'"' Literal.String +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'sb' Name +'.' Punctuation +'append' Name.Attribute +'(' Punctuation +'"' Literal.String +'\\"' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'performOSAScript' Name +'(' Punctuation +'sb' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'IOException' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogAlert' Name +'(' Punctuation +'LogAlert' Name +'.' Punctuation +'UNREPEATABLE' Name.Attribute +',' Punctuation +' ' Text +'LogAlert' Name +'.' Punctuation +'AT_ERROR' Name.Attribute +',' Punctuation +' ' Text +'e' Name +'\n' Text + +'\t\t\t\t\t\t' Text +'.' Punctuation +'getMessage' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'else' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' \t' Text +'if' Keyword +' ' Text +'(' Punctuation +'Logger' Name +'.' Punctuation +'isEnabled' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +' \t\t' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogEvent' Name +'(' Punctuation +'LOGID' Name +',' Punctuation +' ' Text +'LogEvent' Name +'.' Punctuation +'LT_WARNING' Name.Attribute +',' Punctuation +' ' Text +'"' Literal.String +'Cannot find ' Literal.String +'"' Literal.String +'\n' Text + +' \t\t\t\t' Text +'+' Operator +' ' Text +'path' Name +'.' Punctuation +'getName' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'// Internal utility methods\n' Comment.Single + +'\n' Text + +' ' Text +'/**\n * Compiles a new AppleScript instance and runs it\n * @param cmd AppleScript command to execute; do not surround command with extra quotation marks\n * @return Output of the script\n * @throws IOException If the script failed to execute\n */' Comment.Multiline +'\n' Text + +' ' Text +'protected' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'performOSAScript' Name.Function +'(' Punctuation +'CharSequence' Name +' ' Text +'cmd' Name +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'IOException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'performOSAScript' Name +'(' Punctuation +'new' Keyword +' ' Text +'CharSequence' Name +'[' Operator +']' Operator +'{' Punctuation +'cmd' Name +'}' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Compiles a new AppleScript instance and runs it\n * @param cmds AppleScript Sequence of commands to execute; do not surround command with extra quotation marks\n * @return Output of the script\n * @throws IOException If the script failed to execute\n */' Comment.Multiline +'\n' Text + +' ' Text +'protected' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'performOSAScript' Name.Function +'(' Punctuation +'CharSequence' Name +'[' Operator +']' Operator +' ' Text +'cmds' Name +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'IOException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'long' Keyword.Type +' ' Text +'start' Name +' ' Text +'=' Operator +' ' Text +'System' Name +'.' Punctuation +'currentTimeMillis' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'Executing OSAScript: ' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'cmds' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'\\' Literal.String +'t' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'cmds' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'String' Name +'[' Operator +']' Operator +' ' Text +'cmdargs' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'String' Name +'[' Operator +'2' Literal.Number.Integer +' ' Text +'*' Operator +' ' Text +'cmds' Name +'.' Punctuation +'length' Name.Attribute +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'cmdargs' Name +'[' Operator +'0' Literal.Number.Integer +']' Operator +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'osascript' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'cmds' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'cmdargs' Name +'[' Operator +'i' Name +' ' Text +'*' Operator +' ' Text +'2' Literal.Number.Integer +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +']' Operator +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'-e' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +' ' Text +'cmdargs' Name +'[' Operator +'i' Name +' ' Text +'*' Operator +' ' Text +'2' Literal.Number.Integer +' ' Text +'+' Operator +' ' Text +'2' Literal.Number.Integer +']' Operator +' ' Text +'=' Operator +' ' Text +'String' Name +'.' Punctuation +'valueOf' Name.Attribute +'(' Punctuation +'cmds' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Process' Name +' ' Text +'osaProcess' Name +' ' Text +'=' Operator +' ' Text +'performRuntimeExec' Name +'(' Punctuation +'cmdargs' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'BufferedReader' Name +' ' Text +'reader' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedReader' Name +'(' Punctuation +'new' Keyword +' ' Text +'InputStreamReader' Name +'(' Punctuation +'osaProcess' Name +'.' Punctuation +'getInputStream' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'String' Name +' ' Text +'line' Name +' ' Text +'=' Operator +' ' Text +'reader' Name +'.' Punctuation +'readLine' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'reader' Name +'.' Punctuation +'close' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSAScript Output: ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'line' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'reader' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedReader' Name +'(' Punctuation +'new' Keyword +' ' Text +'InputStreamReader' Name +'(' Punctuation +'osaProcess' Name +'.' Punctuation +'getErrorStream' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'String' Name +' ' Text +'errorMsg' Name +' ' Text +'=' Operator +' ' Text +'reader' Name +'.' Punctuation +'readLine' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'reader' Name +'.' Punctuation +'close' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSAScript Error (if any): ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'errorMsg' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'MessageFormat' Name +'.' Punctuation +'format' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSAScript execution ended ({0}ms)' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'new' Keyword +' ' Text +'Object' Name +'[' Operator +']' Operator +'{' Punctuation +'String' Name +'.' Punctuation +'valueOf' Name.Attribute +'(' Punctuation +'System' Name +'.' Punctuation +'currentTimeMillis' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'-' Operator +' ' Text +'start' Name +')' Punctuation +'}' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'errorMsg' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'IOException' Name +'(' Punctuation +'errorMsg' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'line' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Compiles a new AppleScript instance and runs it\n * @param script AppleScript file (.scpt) to execute\n * @return Output of the script\n * @throws IOException If the script failed to execute\n */' Comment.Multiline +'\n' Text + +' ' Text +'protected' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'performOSAScript' Name.Function +'(' Punctuation +'File' Name +' ' Text +'script' Name +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'IOException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'long' Keyword.Type +' ' Text +'start' Name +' ' Text +'=' Operator +' ' Text +'System' Name +'.' Punctuation +'currentTimeMillis' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'Executing OSAScript from file: ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'script' Name +'.' Punctuation +'getPath' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Process' Name +' ' Text +'osaProcess' Name +' ' Text +'=' Operator +' ' Text +'performRuntimeExec' Name +'(' Punctuation +'new' Keyword +' ' Text +'String' Name +'[' Operator +']' Operator +'{' Punctuation +'"' Literal.String +'osascript' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'script' Name +'.' Punctuation +'getPath' Name.Attribute +'(' Punctuation +')' Punctuation +'}' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'BufferedReader' Name +' ' Text +'reader' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedReader' Name +'(' Punctuation +'new' Keyword +' ' Text +'InputStreamReader' Name +'(' Punctuation +'osaProcess' Name +'.' Punctuation +'getInputStream' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'String' Name +' ' Text +'line' Name +' ' Text +'=' Operator +' ' Text +'reader' Name +'.' Punctuation +'readLine' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'reader' Name +'.' Punctuation +'close' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSAScript Output: ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'line' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'reader' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedReader' Name +'(' Punctuation +'new' Keyword +' ' Text +'InputStreamReader' Name +'(' Punctuation +'osaProcess' Name +'.' Punctuation +'getErrorStream' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'String' Name +' ' Text +'errorMsg' Name +' ' Text +'=' Operator +' ' Text +'reader' Name +'.' Punctuation +'readLine' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'reader' Name +'.' Punctuation +'close' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSAScript Error (if any): ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'errorMsg' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'MessageFormat' Name +'.' Punctuation +'format' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSAScript execution ended ({0}ms)' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'new' Keyword +' ' Text +'Object' Name +'[' Operator +']' Operator +'{' Punctuation +'String' Name +'.' Punctuation +'valueOf' Name.Attribute +'(' Punctuation +'System' Name +'.' Punctuation +'currentTimeMillis' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'-' Operator +' ' Text +'start' Name +')' Punctuation +'}' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'errorMsg' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'IOException' Name +'(' Punctuation +'errorMsg' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'line' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Compiles a new AppleScript instance to the specified location\n * @param cmd Command to compile; do not surround command with extra quotation marks\n * @param destination Destination location of the AppleScript file\n * @return True if compiled successfully\n */' Comment.Multiline +'\n' Text + +' ' Text +'protected' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +' ' Text +'compileOSAScript' Name.Function +'(' Punctuation +'CharSequence' Name +' ' Text +'cmd' Name +',' Punctuation +' ' Text +'File' Name +' ' Text +'destination' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'compileOSAScript' Name +'(' Punctuation +'new' Keyword +' ' Text +'CharSequence' Name +'[' Operator +']' Operator +'{' Punctuation +'cmd' Name +'}' Punctuation +',' Punctuation +' ' Text +'destination' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * Compiles a new AppleScript instance to the specified location\n * @param cmds Sequence of commands to compile; do not surround command with extra quotation marks\n * @param destination Destination location of the AppleScript file\n * @return True if compiled successfully\n */' Comment.Multiline +'\n' Text + +' ' Text +'protected' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +' ' Text +'compileOSAScript' Name.Function +'(' Punctuation +'CharSequence' Name +'[' Operator +']' Operator +' ' Text +'cmds' Name +',' Punctuation +' ' Text +'File' Name +' ' Text +'destination' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'long' Keyword.Type +' ' Text +'start' Name +' ' Text +'=' Operator +' ' Text +'System' Name +'.' Punctuation +'currentTimeMillis' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'Compiling OSAScript: ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'destination' Name +'.' Punctuation +'getPath' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'cmds' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'\\' Literal.String +'t' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'cmds' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'String' Name +'[' Operator +']' Operator +' ' Text +'cmdargs' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'String' Name +'[' Operator +'2' Literal.Number.Integer +' ' Text +'*' Operator +' ' Text +'cmds' Name +'.' Punctuation +'length' Name.Attribute +' ' Text +'+' Operator +' ' Text +'3' Literal.Number.Integer +']' Operator +';' Punctuation +'\n' Text + +' ' Text +'cmdargs' Name +'[' Operator +'0' Literal.Number.Integer +']' Operator +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'osacompile' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +' ' Text +'for' Keyword +' ' Text +'(' Punctuation +'int' Keyword.Type +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'0' Literal.Number.Integer +';' Punctuation +' ' Text +'i' Name +' ' Text +'<' Operator +' ' Text +'cmds' Name +'.' Punctuation +'length' Name.Attribute +';' Punctuation +' ' Text +'i' Name +'+' Operator +'+' Operator +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'cmdargs' Name +'[' Operator +'i' Name +' ' Text +'*' Operator +' ' Text +'2' Literal.Number.Integer +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +']' Operator +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'-e' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +' ' Text +'cmdargs' Name +'[' Operator +'i' Name +' ' Text +'*' Operator +' ' Text +'2' Literal.Number.Integer +' ' Text +'+' Operator +' ' Text +'2' Literal.Number.Integer +']' Operator +' ' Text +'=' Operator +' ' Text +'String' Name +'.' Punctuation +'valueOf' Name.Attribute +'(' Punctuation +'cmds' Name +'[' Operator +'i' Name +']' Operator +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'cmdargs' Name +'[' Operator +'cmdargs' Name +'.' Punctuation +'length' Name.Attribute +' ' Text +'-' Operator +' ' Text +'2' Literal.Number.Integer +']' Operator +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'-o' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +' ' Text +'cmdargs' Name +'[' Operator +'cmdargs' Name +'.' Punctuation +'length' Name.Attribute +' ' Text +'-' Operator +' ' Text +'1' Literal.Number.Integer +']' Operator +' ' Text +'=' Operator +' ' Text +'destination' Name +'.' Punctuation +'getPath' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'String' Name +' ' Text +'errorMsg' Name +';' Punctuation +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Process' Name +' ' Text +'osaProcess' Name +' ' Text +'=' Operator +' ' Text +'performRuntimeExec' Name +'(' Punctuation +'cmdargs' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'BufferedReader' Name +' ' Text +'reader' Name +' ' Text +'=' Operator +' ' Text +'new' Keyword +' ' Text +'BufferedReader' Name +'(' Punctuation +'new' Keyword +' ' Text +'InputStreamReader' Name +'(' Punctuation +'osaProcess' Name +'.' Punctuation +'getErrorStream' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'errorMsg' Name +' ' Text +'=' Operator +' ' Text +'reader' Name +'.' Punctuation +'readLine' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'reader' Name +'.' Punctuation +'close' Name.Attribute +'(' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'IOException' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSACompile Execution Failed: ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'e' Name +'.' Punctuation +'getMessage' Name.Attribute +'(' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'printStackTrace' Name.Attribute +'(' Punctuation +'e' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'false' Keyword.Constant +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSACompile Error (if any): ' Literal.String +'"' Literal.String +' ' Text +'+' Operator +' ' Text +'errorMsg' Name +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'MessageFormat' Name +'.' Punctuation +'format' Name.Attribute +'(' Punctuation +'"' Literal.String +'OSACompile execution ended ({0}ms)' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'new' Keyword +' ' Text +'Object' Name +'[' Operator +']' Operator +'{' Punctuation +'String' Name +'.' Punctuation +'valueOf' Name.Attribute +'(' Punctuation +'System' Name +'.' Punctuation +'currentTimeMillis' Name.Attribute +'(' Punctuation +')' Punctuation +' ' Text +'-' Operator +' ' Text +'start' Name +')' Punctuation +'}' Punctuation +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'(' Punctuation +'errorMsg' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'null' Keyword.Constant +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * @see Runtime#exec(String[])\n */' Comment.Multiline +'\n' Text + +' ' Text +'protected' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'Process' Name +' ' Text +'performRuntimeExec' Name.Function +'(' Punctuation +'String' Name +'[' Operator +']' Operator +' ' Text +'cmdargs' Name +')' Punctuation +' ' Text +'throws' Keyword.Declaration +' ' Text +'IOException' Name +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'Runtime' Name +'.' Punctuation +'getRuntime' Name.Attribute +'(' Punctuation +')' Punctuation +'.' Punctuation +'exec' Name.Attribute +'(' Punctuation +'cmdargs' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'IOException' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogAlert' Name +'(' Punctuation +'LogAlert' Name +'.' Punctuation +'UNREPEATABLE' Name.Attribute +',' Punctuation +' ' Text +'e' Name +'.' Punctuation +'getMessage' Name.Attribute +'(' Punctuation +')' Punctuation +',' Punctuation +' ' Text +'e' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'throw' Keyword +' ' Text +'e' Name +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'/**\n * <p>Gets the preferred file browser name</p>\n * <p>Currently supported browsers are Path Finder and Finder. If Path Finder is currently running\n * (not just installed), then "Path Finder is returned; else, "Finder" is returned.</p>\n * @return "Path Finder" if it is currently running; else "Finder"\n */' Comment.Multiline +'\n' Text + +' ' Text +'private' Keyword.Declaration +' ' Text +'static' Keyword.Declaration +' ' Text +'String' Name +' ' Text +'getFileBrowserName' Name.Function +'(' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'try' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'// slowwwwwwww\n' Comment.Single + +' ' Text +'if' Keyword +' ' Text +'(' Punctuation +'"' Literal.String +'true' Literal.String +'"' Literal.String +'.' Punctuation +'equalsIgnoreCase' Name.Attribute +'(' Punctuation +'performOSAScript' Name +'(' Punctuation +'"' Literal.String +'tell application ' Literal.String +'\\"' Literal.String +'System Events' Literal.String +'\\"' Literal.String +' to exists process ' Literal.String +'\\"' Literal.String +'Path Finder' Literal.String +'\\"' Literal.String +'"' Literal.String +')' Punctuation +')' Punctuation +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'outNoStack' Name.Attribute +'(' Punctuation +'"' Literal.String +'Path Finder is running' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'"' Literal.String +'Path Finder' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'else' Keyword +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'"' Literal.String +'Finder' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'catch' Keyword +' ' Text +'(' Punctuation +'IOException' Name +' ' Text +'e' Name +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'Debug' Name +'.' Punctuation +'printStackTrace' Name.Attribute +'(' Punctuation +'e' Name +')' Punctuation +';' Punctuation +'\n' Text + +' ' Text +'Logger' Name +'.' Punctuation +'log' Name.Attribute +'(' Punctuation +'new' Keyword +' ' Text +'LogEvent' Name +'(' Punctuation +'LOGID' Name +',' Punctuation +' ' Text +'e' Name +'.' Punctuation +'getMessage' Name.Attribute +'(' Punctuation +')' Punctuation +',' Punctuation +' ' Text +'e' Name +')' Punctuation +')' Punctuation +';' Punctuation +'\n' Text + +'\n' Text + +' ' Text +'return' Keyword +' ' Text +'"' Literal.String +'Finder' Literal.String +'"' Literal.String +';' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'\n' Text + +'\t' Text +'public' Keyword.Declaration +' ' Text +'boolean' Keyword.Type +'\n' Text + +'\t' Text +'testNativeAvailability' Name.Function +'(' Punctuation +'\n' Text + +'\t\t' Text +'String' Name +'\t' Text +'name' Name +' ' Text +')' Punctuation +'\n' Text + +'\t' Text +'\n' Text + +'\t\t' Text +'throws' Keyword.Declaration +' ' Text +'PlatformManagerException' Name +'\n' Text + +'\t' Text +'{' Punctuation +'\n' Text + +'\t ' Text +'throw' Keyword +' ' Text +'new' Keyword +' ' Text +'PlatformManagerException' Name +'(' Punctuation +'"' Literal.String +'Unsupported capability called on platform manager' Literal.String +'"' Literal.String +')' Punctuation +';' Punctuation +'\t\t' Text +'\n' Text + +'\t' Text +'}' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +'\n' Text + +' ' Text +'addListener' Name.Function +'(' Punctuation +'\n' Text + +' \t' Text +'PlatformManagerListener' Name +'\t\t' Text +'listener' Name +' ' Text +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +' ' Text +'\n' Text + +' ' Text +'public' Keyword.Declaration +' ' Text +'void' Keyword.Type +'\n' Text + +' ' Text +'removeListener' Name.Function +'(' Punctuation +'\n' Text + +' \t' Text +'PlatformManagerListener' Name +'\t\t' Text +'listener' Name +' ' Text +')' Punctuation +'\n' Text + +' ' Text +'{' Punctuation +'\n' Text + +' ' Text +'}' Punctuation +'\n' Text + +'}' Punctuation +'\n' Text |
