-
34GameProject/src/base/BreakoutGame.java
-
42GameProject/src/base/BuggyGame.java
-
56GameProject/src/base/BuggyGameTest.java
-
28GameProject/src/base/GameLoop.java
-
41GameProject/src/base/MovingObjectsGame.java
-
2GameProject/src/log4j2.xml
-
123GameProject/src/playground/LevelBreakout0.java
-
180GameProject/src/playground/LevelBreakoutBase.java
-
98GameProject/src/playground/LevelBreakoutBaseAdvanced.java
-
20GameProject/src/playground/LevelMovingHitObjects.java
-
20GameProject/src/playground/LevelMovingObjects.java
-
1GameProject/src/playground/SpaceInvadersLevelTest.java
-
6gui/.classpath
-
1gui/.gitignore
-
17gui/.project
-
14gui/.settings/org.eclipse.jdt.core.prefs
-
71gui/doc/allclasses-index.html
-
67gui/doc/allpackages-index.html
-
1gui/doc/element-list
-
183gui/doc/gui/MainGui.html
-
60gui/doc/gui/class-use/MainGui.html
-
77gui/doc/gui/package-summary.html
-
70gui/doc/gui/package-tree.html
-
60gui/doc/gui/package-use.html
-
149gui/doc/help-doc.html
-
66gui/doc/index-files/index-1.html
-
76gui/doc/index-files/index-2.html
-
27gui/doc/index.html
-
34gui/doc/jquery-ui.overrides.css
-
1gui/doc/member-search-index.js
-
1gui/doc/module-search-index.js
-
74gui/doc/overview-tree.html
-
1gui/doc/package-search-index.js
-
BINgui/doc/resources/glass.png
-
BINgui/doc/resources/x.png
-
BINgui/doc/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png
-
BINgui/doc/script-dir/images/ui-bg_glass_65_dadada_1x400.png
-
BINgui/doc/script-dir/images/ui-bg_glass_75_dadada_1x400.png
-
BINgui/doc/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png
-
BINgui/doc/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png
-
BINgui/doc/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png
-
BINgui/doc/script-dir/images/ui-icons_222222_256x240.png
-
BINgui/doc/script-dir/images/ui-icons_2e83ff_256x240.png
-
BINgui/doc/script-dir/images/ui-icons_454545_256x240.png
-
BINgui/doc/script-dir/images/ui-icons_888888_256x240.png
-
BINgui/doc/script-dir/images/ui-icons_cd0a0a_256x240.png
-
2gui/doc/script-dir/jquery-3.5.1.min.js
-
7gui/doc/script-dir/jquery-ui.min.css
-
6gui/doc/script-dir/jquery-ui.min.js
-
5gui/doc/script-dir/jquery-ui.structure.min.css
-
132gui/doc/script.js
-
354gui/doc/search.js
-
827gui/doc/stylesheet.css
-
1gui/doc/tag-search-index.js
-
1gui/doc/type-search-index.js
-
228gui/src/gui/MainGui.java
@ -1,34 +0,0 @@ |
|||||
package base; |
|
||||
import java.io.IOException; |
|
||||
import org.apache.logging.log4j.LogManager; |
|
||||
import org.apache.logging.log4j.Logger; |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* main class to start a game with only one level. |
|
||||
* |
|
||||
*/ |
|
||||
public class BreakoutGame extends GameLoop { |
|
||||
|
|
||||
private static Logger logger = LogManager.getLogger(BreakoutGame.class); |
|
||||
|
|
||||
public BreakoutGame() { |
|
||||
this.levels.clear(); // removes Level1 added by superclass constructor |
|
||||
|
|
||||
// this.levels.add(new LevelBreakout1()); // FIXME add this when your level exists |
|
||||
|
|
||||
} |
|
||||
/** |
|
||||
* starts this game. |
|
||||
* |
|
||||
* @param args command line parameters (forwarded to {@link GameLoop#runGame(String[])}). |
|
||||
* @throws IOException if highscore.txt file cannot be written or accessed, the exception is |
|
||||
* thrown (and game ends). |
|
||||
*/ |
|
||||
public static void main(String[] args) throws IOException { |
|
||||
GameLoop myGame = new BreakoutGame(); |
|
||||
logger.info("BreakoutGame program started."); |
|
||||
myGame.runGame(args); |
|
||||
} |
|
||||
|
|
||||
} |
|
@ -1,42 +0,0 @@ |
|||||
package base; |
|
||||
|
|
||||
import java.io.IOException; |
|
||||
import java.util.ArrayList; |
|
||||
import playground.Level1; |
|
||||
import playground.Level2; |
|
||||
import playground.Level3; |
|
||||
import playground.Level4; |
|
||||
import playground.Playground; |
|
||||
|
|
||||
/** |
|
||||
* main class to start a game with four levels {@link playground.Level1} {@link playground.Level2} |
|
||||
* {@link playground.Level3} and {@link playground.Level4}. |
|
||||
* |
|
||||
*/ |
|
||||
public class BuggyGame extends GameLoop { |
|
||||
|
|
||||
/** constructor that defines {@link GameLoop#levels} with 4 levels (instances of {@link playground.Level1} |
|
||||
* {@link playground.Level2} {@link playground.Level3} and {@link playground.Level4}. |
|
||||
*/ |
|
||||
public BuggyGame() { |
|
||||
super(); |
|
||||
this.levels = new ArrayList<Playground>(4); |
|
||||
this.levels.add(new Level1()); |
|
||||
this.levels.add(new Level2()); |
|
||||
this.levels.add(new Level3()); |
|
||||
this.levels.add(new Level4()); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* starts this game. |
|
||||
* |
|
||||
* @param args command line parameters (forwarded to {@link GameLoop#runGame(String[])}). |
|
||||
* @throws IOException if highscore.txt file cannot be written or accessed, the exception is |
|
||||
* thrown (and game ends). |
|
||||
*/ |
|
||||
public static void main(String[] args) throws IOException { |
|
||||
GameLoop myGame = new BuggyGame(); |
|
||||
myGame.runGame(args); |
|
||||
} |
|
||||
|
|
||||
} |
|
@ -1,56 +0,0 @@ |
|||||
package base; |
|
||||
|
|
||||
import static org.junit.Assert.assertTrue; |
|
||||
import org.junit.jupiter.api.AfterEach; |
|
||||
import org.junit.jupiter.api.BeforeEach; |
|
||||
import org.junit.jupiter.api.Test; |
|
||||
import playground.Level1; |
|
||||
import playground.Level2; |
|
||||
import playground.Level3; |
|
||||
import playground.Level4; |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* Tests {@link BuggyGame} for |
|
||||
* <ol> |
|
||||
* <li>loading correctly 4 levels {@link playground.Level1} {@link playground.Level2} |
|
||||
* {@link playground.Level3} and {@link playground.Level4} |
|
||||
* </ol> |
|
||||
* |
|
||||
* |
|
||||
*/ |
|
||||
class BuggyGameTest { |
|
||||
|
|
||||
BuggyGame myGame; |
|
||||
|
|
||||
@BeforeEach |
|
||||
void setUp() throws Exception { |
|
||||
myGame = new BuggyGame(); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
@AfterEach |
|
||||
void tearDown() throws Exception { |
|
||||
// nothing to do afterwards |
|
||||
} |
|
||||
|
|
||||
@Test |
|
||||
void testNumberOfLevelsIsFour() { |
|
||||
assertTrue("levels Array has two entries", myGame.levels != null && myGame.levels.size() == 4); |
|
||||
} |
|
||||
|
|
||||
@Test |
|
||||
void testCorrectFourLevelsOrder() { |
|
||||
assertTrue("levels Array has four entries", myGame.levels != null && myGame.levels.size() == 4); |
|
||||
assertTrue("first level is Level1", |
|
||||
myGame.levels.get(0).getClass().equals(new Level1().getClass())); |
|
||||
assertTrue("second level is Level2", |
|
||||
myGame.levels.get(1).getClass().equals(new Level2().getClass())); |
|
||||
assertTrue("third level is Level3", |
|
||||
myGame.levels.get(2).getClass().equals(new Level3().getClass())); |
|
||||
assertTrue("fourth (last) level is Level4", |
|
||||
myGame.levels.get(3).getClass().equals(new Level4().getClass())); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
} |
|
@ -1,41 +0,0 @@ |
|||||
package base; |
|
||||
|
|
||||
import java.io.IOException; |
|
||||
import java.util.ArrayList; |
|
||||
import org.apache.logging.log4j.LogManager; |
|
||||
import org.apache.logging.log4j.Logger; |
|
||||
import playground.LevelMovingHitObjects; |
|
||||
import playground.Playground; |
|
||||
|
|
||||
/** |
|
||||
* main class to start a game with only one level {@link playground.LevelMovingHitObjects}. |
|
||||
* |
|
||||
*/ |
|
||||
public class MovingObjectsGame extends GameLoop { |
|
||||
|
|
||||
private static Logger logger = LogManager.getLogger(MovingObjectsGame.class); |
|
||||
|
|
||||
/** |
|
||||
* constructor defines {@link GameLoop#levels} with one instance of |
|
||||
* {@link playground.LevelMovingHitObjects}. |
|
||||
*/ |
|
||||
MovingObjectsGame() { |
|
||||
super(); |
|
||||
this.levels = new ArrayList<Playground>(1); |
|
||||
this.levels.add(new LevelMovingHitObjects()); |
|
||||
} |
|
||||
/** |
|
||||
* starts this game. |
|
||||
* |
|
||||
* @param args command line parameters (forwarded to {@link GameLoop#runGame(String[])}). |
|
||||
* @throws IOException if highscore.txt file cannot be written or accessed, the exception is |
|
||||
* thrown (and game ends). |
|
||||
*/ |
|
||||
public static void main(String[] args) throws IOException { |
|
||||
logger.info("Starting Game Program...let's play and don't get hit!"); |
|
||||
GameLoop myGame = new MovingObjectsGame(); |
|
||||
myGame.runGame(args); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
} |
|
@ -1,123 +0,0 @@ |
|||||
package playground; |
|
||||
|
|
||||
import java.awt.Color; |
|
||||
import org.apache.logging.log4j.LogManager; |
|
||||
import org.apache.logging.log4j.Logger; |
|
||||
import collider.RectCollider; |
|
||||
import controller.EgoController; |
|
||||
import controller.ReboundController; |
|
||||
import gameobjects.FallingStar; |
|
||||
import gameobjects.GameObject; |
|
||||
import gameobjects.RectObject; |
|
||||
|
|
||||
/** |
|
||||
* solution example for Breakout game |
|
||||
* <ul> |
|
||||
* <li>colored bricks |
|
||||
* <li>rebound depends on position where ball hits ego object |
|
||||
* <li>rebound on brick hit |
|
||||
* |
|
||||
* not implemented: penalty if balls hits ground, no score for removed bricks, no bonus items, no |
|
||||
* lives. |
|
||||
* </ul> |
|
||||
* |
|
||||
*/ |
|
||||
|
|
||||
|
|
||||
public class LevelBreakout0 extends LevelBreakoutBase { |
|
||||
|
|
||||
private static Logger logger = LogManager.getLogger(LevelBreakoutBase.class); |
|
||||
|
|
||||
|
|
||||
protected GameObject createEgoObject() { |
|
||||
RectObject ro = new RectObject("ego", this, 350, 550, 0, 0, 80, 10, Color.BLUE); |
|
||||
ro.generateColliders(); |
|
||||
EgoController ec = new EgoController(80,10); |
|
||||
ro.addController(ec); |
|
||||
logger.info("ego created."); |
|
||||
|
|
||||
return ro; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
protected GameObject createBall() { |
|
||||
GameObject co = new FallingStar("ball1", this, 350, 350, 100, 100, Color.RED, 5); |
|
||||
co.addController(new ReboundController()); |
|
||||
logger.info("ball created."); |
|
||||
return co; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* creates bricks. For collision {@link RectCollider} is used. |
|
||||
*/ |
|
||||
@Override |
|
||||
protected GameObject createBrick(int row, int column) { |
|
||||
double xSize = 60; |
|
||||
double ySize = 30; |
|
||||
double xStart = 40; |
|
||||
double yStart = 40; |
|
||||
double space = 5; |
|
||||
Color c = Color.BLUE; |
|
||||
|
|
||||
RectObject ro = new RectObject("brick" + row + "/" + column, this, xStart + column * (xSize + space), |
|
||||
yStart + row * (ySize + space), 0, 0, xSize - 4, ySize - 4, c); |
|
||||
RectCollider rc = new RectCollider("egal", ro, xSize - 4, ySize - 4); |
|
||||
ro.addCollider(rc); |
|
||||
|
|
||||
return ro; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* lets ball bounce in Y direction, deletes brick and creates a red/blue colored explosion. |
|
||||
*/ |
|
||||
@Override |
|
||||
protected void actionIfBallHitsBrick(GameObject ball, GameObject brick) { |
|
||||
|
|
||||
ball.setVY(ball.getVY() * -1); // bounce effect for ball |
|
||||
this.deleteObject(brick.getId()); // remove brick from field |
|
||||
logger.debug("deleted brick " + brick.getId()); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* Let the ball bounce off in Y direction. |
|
||||
* |
|
||||
*/ |
|
||||
@Override |
|
||||
protected void actionIfBallHitsEgo(GameObject ball, GameObject ego) { |
|
||||
double ballY = ball.getY(); |
|
||||
double egoY = ego.getY(); |
|
||||
ball.setY(ballY < egoY ? ballY - 10 : ballY + 10); // radius 5 hard coded. |
|
||||
ball.setVY(ball.getVY() * -1); |
|
||||
logger.debug("ball bounces of ego object."); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* Prepares a Breakout level with a 3 x 3 matrix of blocks on top. This method relies on the |
|
||||
* methods {@link #createEgoObject()}, {@link #createBall()} and {@link #createBrick(int, int)}, among others, which |
|
||||
* are meant to be overwritten in subclasses. |
|
||||
* |
|
||||
* @param level String passes by the game engine (not used currently and can be ignored). |
|
||||
*/ |
|
||||
@Override |
|
||||
public void prepareLevel(String level) { |
|
||||
for (int y = 3; y < 6; y++) { |
|
||||
for (int x = 0; x < 3; x++) { |
|
||||
logger.trace("trying to create brick X, Y (" + x + "," + y + ")"); |
|
||||
GameObject brick = this.createBrick(x, y); |
|
||||
this.addObject(brick); |
|
||||
} |
|
||||
} |
|
||||
this.ego = this.createEgoObject(); |
|
||||
this.ball = this.createBall(); |
|
||||
this.addObject(this.ego); |
|
||||
this.addObject(this.ball); |
|
||||
logger.info("level preperation succeeded."); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
|
|
||||
} |
|
@ -1,180 +0,0 @@ |
|||||
package playground; |
|
||||
|
|
||||
import gameobjects.*; |
|
||||
import java.util.LinkedList; |
|
||||
import org.apache.logging.log4j.LogManager; |
|
||||
import org.apache.logging.log4j.Logger; |
|
||||
import java.awt.Color; |
|
||||
import java.awt.Graphics2D; |
|
||||
import java.awt.Polygon; |
|
||||
import controller.*; |
|
||||
|
|
||||
public abstract class LevelBreakoutBase extends Playground { |
|
||||
|
|
||||
/** |
|
||||
* instance of the ball, needs to be set by {@link #prepareLevel(String) } |
|
||||
* |
|
||||
*/ |
|
||||
protected GameObject ball = null, |
|
||||
/** |
|
||||
* instance of the ego objects, needs to be set by {@link #prepareLevel(String) } |
|
||||
* |
|
||||
*/ |
|
||||
ego = null; |
|
||||
|
|
||||
private static Logger logger = LogManager.getLogger(LevelBreakoutBase.class); |
|
||||
|
|
||||
public LevelBreakoutBase() { |
|
||||
super(); |
|
||||
this.canvasX = this.preferredSizeX(); |
|
||||
this.canvasY = this.preferredSizeY(); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* signals to game engine that the game has finished by game over. called every game loop. default |
|
||||
* implementation is always false. |
|
||||
* |
|
||||
* @return false |
|
||||
*/ |
|
||||
public boolean gameOver() { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* signals to game engine that the game has finished by success. called every game loop. default |
|
||||
* implementation is always false. |
|
||||
* |
|
||||
* @return false |
|
||||
*/ |
|
||||
public boolean levelFinished() { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* signals to game engine that the game has been requested to be reseted (restart). called every |
|
||||
* game loop. default implementation is always false. |
|
||||
* |
|
||||
* @return false |
|
||||
*/ |
|
||||
public boolean resetRequested() { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* unimplemented empty method called by game engine every loop. |
|
||||
* |
|
||||
*/ |
|
||||
public void redrawLevel(Graphics2D g) { |
|
||||
|
|
||||
// fill background with light magenta |
|
||||
int[] x = {0, canvasX, canvasX, 0}; |
|
||||
int[] y = {0, 0, canvasY, canvasY}; |
|
||||
Polygon bg = new Polygon(x, y, 4); |
|
||||
g.setColor(new Color(140,140,200)); |
|
||||
g.fill(bg); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* Signal that the level has a size of 700x700 pixels. |
|
||||
* |
|
||||
* @return x size of level 700 |
|
||||
*/ |
|
||||
@Override |
|
||||
public int preferredSizeX() { |
|
||||
return 700; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* Signal that the level has a size of 700x700 pixels. |
|
||||
* |
|
||||
* @return y size of level 700 |
|
||||
*/ |
|
||||
@Override |
|
||||
public int preferredSizeY() { |
|
||||
return 700; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* Method that gets called by applyGameLogic() whenever the ball collides with a brick. |
|
||||
* |
|
||||
* |
|
||||
* @param ball A reference to the current ball object |
|
||||
* @param brick A reference to the ego object |
|
||||
*/ |
|
||||
protected abstract void actionIfBallHitsBrick(GameObject ball, GameObject brick); |
|
||||
|
|
||||
/** |
|
||||
* Method that gets called by applyGameLogic() whenever the ball collides with the ego object. |
|
||||
* |
|
||||
* @param ball A reference to the current ball object |
|
||||
* @param ego A reference to the ego object |
|
||||
*/ |
|
||||
protected abstract void actionIfBallHitsEgo(GameObject ball, GameObject ego); |
|
||||
|
|
||||
/** |
|
||||
* Models interactions between GameObjects. notably ball/ego and ball/brick. called every game |
|
||||
* loop. |
|
||||
*/ |
|
||||
@Override |
|
||||
public void applyGameLogic() { |
|
||||
LinkedList<GameObject> bricks = collectObjects("brick", false); |
|
||||
|
|
||||
for (GameObject brick : bricks) { |
|
||||
if (this.ball.collisionDetection(brick)) { |
|
||||
logger.trace("Collision detected of ball and brick " + brick.getId()); |
|
||||
this.actionIfBallHitsBrick(this.ball, brick); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
if (ego.collisionDetection(ball)) { |
|
||||
logger.trace("Collision detected of ball and ego"); |
|
||||
actionIfBallHitsEgo(this.ball, this.ego); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* Creates the ego object and returns it, called by {@link #prepareLevel}. Does NOT add the ego |
|
||||
* object to the playground! |
|
||||
* |
|
||||
* @return The created ego object instance (of class {@link RectObject} with |
|
||||
* {@link EgoController}. |
|
||||
*/ |
|
||||
protected abstract GameObject createEgoObject(); |
|
||||
|
|
||||
/** |
|
||||
* Creates the ball object and returns it, called by #prepareLevel. Does NOT add the ball object |
|
||||
* to the playground! |
|
||||
* |
|
||||
* @return The created ball object instance (of class {@link FallingStar}) |
|
||||
*/ |
|
||||
protected abstract GameObject createBall(); |
|
||||
|
|
||||
/** |
|
||||
* Creates the GameObject (RectObject) instance representing a single brick at a certain grid |
|
||||
* position. The brick is NOT added here! |
|
||||
* |
|
||||
* @param row row position in the grid, ranges from 0 to calcNrBricksY()-1 |
|
||||
* @param column column position in the grid of bricks, ranges from 0 to calcNrBricksX()-1 |
|
||||
* @return The GameObject instance (really a RectObject) representing the created brick. |
|
||||
*/ |
|
||||
protected abstract GameObject createBrick(int row, int column); |
|
||||
|
|
||||
/** |
|
||||
* Prepares a generic Breakout-Type level. This method relies on the methods {@link #createEgoObject()}, |
|
||||
* {@link #createBall} and {@link #createBrick}, among others, which are meant to be overwritten |
|
||||
* in subclasses. <br> |
|
||||
* Attention: the attributes {@link #ball} and {@link #ego} need to be set properly to GameObject |
|
||||
* instances when implementing this method {@link #prepareLevel(String)}. |
|
||||
* |
|
||||
* @param level String passes by the game engine (not used currently and can be ignored). |
|
||||
*/ |
|
||||
@Override |
|
||||
abstract public void prepareLevel(String level); |
|
||||
|
|
||||
} |
|
@ -1,98 +0,0 @@ |
|||||
package playground; |
|
||||
|
|
||||
import org.apache.log4j.LogManager; |
|
||||
import org.apache.log4j.Logger; |
|
||||
|
|
||||
/** |
|
||||
* Advanced version of abstract {@link LevelBreakoutBase} providing a complete implementation of |
|
||||
* {@link #prepareLevel(String)}. Additionally abstract methods for number of bricks in X and Y |
|
||||
* direction are provided as well as abstract methods for brick sizes and start coordinates. |
|
||||
* |
|
||||
* @see #calcNrBricksX() |
|
||||
* @see #calcNrBricksY() |
|
||||
* @see #getBrickSizeX() |
|
||||
* @see #getBrickSizeY() |
|
||||
* @see #getBrickStartX() |
|
||||
* @see #getBrickStartY() |
|
||||
* |
|
||||
*/ |
|
||||
public abstract class LevelBreakoutBaseAdvanced extends LevelBreakoutBase { |
|
||||
|
|
||||
private static Logger logger = LogManager.getLogger(LevelBreakoutBaseAdvanced.class); |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* provides the number of bricks to be set in horizontal direction. |
|
||||
* |
|
||||
* @return positive value of how many bricks are to be next to each other in X direction |
|
||||
*/ |
|
||||
protected abstract int calcNrBricksX(); |
|
||||
|
|
||||
/** |
|
||||
* provides the number of bricks to be set in vertical direction. |
|
||||
* |
|
||||
* @return positive value of how many bricks are to be next to each other in Y direction |
|
||||
*/ |
|
||||
protected abstract int calcNrBricksY(); |
|
||||
|
|
||||
/** |
|
||||
* provides the length of one brick. |
|
||||
* |
|
||||
* @return positive value of how long a brick should be in X direction. |
|
||||
*/ |
|
||||
protected abstract double getBrickSizeX(); |
|
||||
|
|
||||
/** |
|
||||
* provides the height of one brick. |
|
||||
* |
|
||||
* @return positive value of how high a brick should be in Y direction. |
|
||||
*/ |
|
||||
protected abstract double getBrickSizeY(); |
|
||||
|
|
||||
/** |
|
||||
* provides the start coordinate of upper left corner (X value). |
|
||||
* |
|
||||
* @return positive value of the X coordinate to use as the starting point of the upper left |
|
||||
* corner of the brick set. |
|
||||
*/ |
|
||||
protected abstract double getBrickStartX(); |
|
||||
|
|
||||
/** |
|
||||
* provides the start coordinate of upper left corner (Y value). |
|
||||
* |
|
||||
* @return positive value of the Y coordinate to use as the starting point of the upper left |
|
||||
* corner of the brick set. |
|
||||
*/ |
|
||||
protected abstract double getBrickStartY(); |
|
||||
|
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* Prepares a complete Breakout type level and uses the values provided by implementations of |
|
||||
* {@link #calcNrBricksX()} and {@link #calcNrBricksY()} to generate the stone matrix. |
|
||||
* Furthermore, it relies on the methods {@link #createEgoObject()}, {@link #createBall} and {@link #createBrick}, |
|
||||
* which are meant to be overwritten in subclasses. <br> |
|
||||
* Attention: For collission detection bricks created by {@link #createBrick(int, int)} need to have the String 'brick' in ID. |
|
||||
* |
|
||||
* @see LevelBreakoutBase#prepareLevel(String) for further information. |
|
||||
* |
|
||||
* @param level String passes by the game engine (not used currently and can be ignored). |
|
||||
* |
|
||||
*/ |
|
||||
@Override |
|
||||
public void prepareLevel(String level) { |
|
||||
|
|
||||
for (int y = 0; y < this.calcNrBricksY(); y++) { |
|
||||
for (int x = 0; x < this.calcNrBricksX(); x++) { |
|
||||
logger.trace("trying to create brick X, Y (" + x + "," + y + ")"); |
|
||||
this.addObject(this.createBrick(x, y)); |
|
||||
} |
|
||||
} |
|
||||
this.ego = this.createEgoObject(); |
|
||||
this.ball = this.createBall(); |
|
||||
this.addObject(this.ego); |
|
||||
this.addObject(this.ball); |
|
||||
logger.info("level preperation succeeded."); |
|
||||
} |
|
||||
|
|
||||
} |
|
@ -1,20 +0,0 @@ |
|||||
package playground; |
|
||||
|
|
||||
|
|
||||
// FIXME JavaDoc |
|
||||
public class LevelMovingHitObjects extends SpaceInvadersLevel { |
|
||||
|
|
||||
|
|
||||
// FIXME implement missing methods |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* "Moving Hitting Objects Level!" is the message. |
|
||||
* |
|
||||
* @return String "Moving & Hitting Objects Level!" |
|
||||
*/ |
|
||||
@Override |
|
||||
protected String getStartupMessage() { |
|
||||
return "Moving & Hitting Objects Level!"; |
|
||||
} |
|
||||
} |
|
@ -1,20 +0,0 @@ |
|||||
package playground; |
|
||||
|
|
||||
|
|
||||
// FIXME JavaDoc |
|
||||
public class LevelMovingObjects extends SpaceInvadersLevel { |
|
||||
|
|
||||
|
|
||||
// FIXME implement prepareLevel() method |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* "Moving Objects Level!" is the message. |
|
||||
* |
|
||||
* @return String "Moving Objects Level!" |
|
||||
*/ |
|
||||
@Override |
|
||||
protected String getStartupMessage() { |
|
||||
return "Moving Objects Level!"; |
|
||||
} |
|
||||
} |
|
@ -1,6 +0,0 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
<classpath> |
|
||||
<classpathentry kind="src" path="src"/> |
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> |
|
||||
<classpathentry kind="output" path="bin"/> |
|
||||
</classpath> |
|
@ -1 +0,0 @@ |
|||||
/bin/ |
|
@ -1,17 +0,0 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
<projectDescription> |
|
||||
<name>GuiProjectW11</name> |
|
||||
<comment></comment> |
|
||||
<projects> |
|
||||
</projects> |
|
||||
<buildSpec> |
|
||||
<buildCommand> |
|
||||
<name>org.eclipse.jdt.core.javabuilder</name> |
|
||||
<arguments> |
|
||||
</arguments> |
|
||||
</buildCommand> |
|
||||
</buildSpec> |
|
||||
<natures> |
|
||||
<nature>org.eclipse.jdt.core.javanature</nature> |
|
||||
</natures> |
|
||||
</projectDescription> |
|
@ -1,14 +0,0 @@ |
|||||
eclipse.preferences.version=1 |
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled |
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=12 |
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve |
|
||||
org.eclipse.jdt.core.compiler.compliance=12 |
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate |
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate |
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate |
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error |
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled |
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error |
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning |
|
||||
org.eclipse.jdt.core.compiler.release=enabled |
|
||||
org.eclipse.jdt.core.compiler.source=12 |
|
@ -1,71 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>All Classes</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="class index"> |
|
||||
<meta name="generator" content="javadoc/AllClassesIndexWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="script.js"></script> |
|
||||
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="all-classes-index-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "./"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="gui/package-summary.html">Package</a></li> |
|
||||
<li>Class</li> |
|
||||
<li>Use</li> |
|
||||
<li><a href="gui/package-tree.html">Tree</a></li> |
|
||||
<li><a href="index-files/index-1.html">Index</a></li> |
|
||||
<li><a href="help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1 title="All&nbsp;Classes" class="title">All Classes</h1> |
|
||||
</div> |
|
||||
<div id="all-classes-table"> |
|
||||
<div class="caption"><span>Class Summary</span></div> |
|
||||
<div class="summary-table two-column-summary"> |
|
||||
<div class="table-header col-first">Class</div> |
|
||||
<div class="table-header col-last">Description</div> |
|
||||
<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="gui/MainGui.html" title="class in gui">MainGui</a></div> |
|
||||
<div class="col-last even-row-color all-classes-table-tab2 all-classes-table"> |
|
||||
<div class="block">a simple GUI that simulates a slow database for name, email entries.</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,67 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>All Packages</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="package index"> |
|
||||
<meta name="generator" content="javadoc/AllPackagesIndexWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="script.js"></script> |
|
||||
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="all-packages-index-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "./"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="gui/package-summary.html">Package</a></li> |
|
||||
<li>Class</li> |
|
||||
<li>Use</li> |
|
||||
<li><a href="gui/package-tree.html">Tree</a></li> |
|
||||
<li><a href="index-files/index-1.html">Index</a></li> |
|
||||
<li><a href="help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1 title="All&nbsp;Packages" class="title">All Packages</h1> |
|
||||
</div> |
|
||||
<div class="caption"><span>Package Summary</span></div> |
|
||||
<div class="summary-table two-column-summary"> |
|
||||
<div class="table-header col-first">Package</div> |
|
||||
<div class="table-header col-last">Description</div> |
|
||||
<div class="col-first even-row-color"><a href="gui/package-summary.html">gui</a></div> |
|
||||
<div class="col-last even-row-color"> </div> |
|
||||
</div> |
|
||||
</main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1 +0,0 @@ |
|||||
gui |
|
@ -1,183 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>MainGui</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="declaration: package: gui, class: MainGui"> |
|
||||
<meta name="generator" content="javadoc/ClassWriterImpl"> |
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="../script.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="class-declaration-page"> |
|
||||
<script type="text/javascript">var evenRowColor = "even-row-color"; |
|
||||
var oddRowColor = "odd-row-color"; |
|
||||
var tableTab = "table-tab"; |
|
||||
var activeTableTab = "active-table-tab"; |
|
||||
var pathtoroot = "../"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="package-summary.html">Package</a></li> |
|
||||
<li class="nav-bar-cell1-rev">Class</li> |
|
||||
<li><a href="class-use/MainGui.html">Use</a></li> |
|
||||
<li><a href="package-tree.html">Tree</a></li> |
|
||||
<li><a href="../index-files/index-1.html">Index</a></li> |
|
||||
<li><a href="../help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div> |
|
||||
<ul class="sub-nav-list"> |
|
||||
<li>Summary: </li> |
|
||||
<li>Nested | </li> |
|
||||
<li>Field | </li> |
|
||||
<li><a href="#constructor.summary">Constr</a> | </li> |
|
||||
<li><a href="#method.summary">Method</a></li> |
|
||||
</ul> |
|
||||
<ul class="sub-nav-list"> |
|
||||
<li>Detail: </li> |
|
||||
<li>Field | </li> |
|
||||
<li><a href="#constructor.detail">Constr</a> | </li> |
|
||||
<li><a href="#method.detail">Method</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<!-- ======== START OF CLASS DATA ======== --> |
|
||||
<div class="header"> |
|
||||
<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">gui</a></div> |
|
||||
<h1 title="Class MainGui" class="title">Class MainGui</h1> |
|
||||
</div> |
|
||||
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> |
|
||||
<div class="inheritance">gui.MainGui</div> |
|
||||
</div> |
|
||||
<section class="description"> |
|
||||
<hr> |
|
||||
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">MainGui</span> |
|
||||
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> |
|
||||
<div class="block">a simple GUI that simulates a slow database for name, email entries. For details see constructor <a href="#%3Cinit%3E()"><code>MainGui()</code></a>. |
|
||||
This class provides a simple static <a href="#main(java.lang.String%5B%5D)"><code>main(String[])</code></a> to start/run the GUI window.</div> |
|
||||
</section> |
|
||||
<section class="summary"> |
|
||||
<ul class="summary-list"> |
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== --> |
|
||||
<li> |
|
||||
<section class="constructor-summary" id="constructor.summary"> |
|
||||
<h2>Constructor Summary</h2> |
|
||||
<div class="caption"><span>Constructors</span></div> |
|
||||
<div class="summary-table two-column-summary"> |
|
||||
<div class="table-header col-first">Constructor</div> |
|
||||
<div class="table-header col-last">Description</div> |
|
||||
<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">MainGui</a></span>()</code></div> |
|
||||
<div class="col-last even-row-color"> |
|
||||
<div class="block">constructor that configures and shows the GUI window.</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
</li> |
|
||||
<!-- ========== METHOD SUMMARY =========== --> |
|
||||
<li> |
|
||||
<section class="method-summary" id="method.summary"> |
|
||||
<h2>Method Summary</h2> |
|
||||
<div id="method-summary-table"> |
|
||||
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> |
|
||||
<div id="method-summary-table.tabpanel" role="tabpanel"> |
|
||||
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> |
|
||||
<div class="table-header col-first">Modifier and Type</div> |
|
||||
<div class="table-header col-second">Method</div> |
|
||||
<div class="table-header col-last">Description</div> |
|
||||
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div> |
|
||||
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#main(java.lang.String%5B%5D)">main</a></span>​(<a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[] args)</code></div> |
|
||||
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"> |
|
||||
<div class="block">a simple main which only creates an instance of <a href="MainGui.html" title="class in gui"><code>MainGui</code></a>.</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="inherited-list"> |
|
||||
<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> |
|
||||
<code><a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> |
|
||||
</section> |
|
||||
</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
<section class="details"> |
|
||||
<ul class="details-list"> |
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== --> |
|
||||
<li> |
|
||||
<section class="constructor-details" id="constructor.detail"> |
|
||||
<h2>Constructor Details</h2> |
|
||||
<ul class="member-list"> |
|
||||
<li> |
|
||||
<section class="detail" id="<init>()"> |
|
||||
<h3>MainGui</h3> |
|
||||
<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">MainGui</span>()</div> |
|
||||
<div class="block">constructor that configures and shows the GUI window. It contains two text inputs for name and |
|
||||
email address and three buttons BACK, ADD and FORWARD. For each button own inner classes are |
|
||||
defined as <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.desktop/java/awt/event/ActionListener.html" title="class or interface in java.awt.event" class="external-link"><code>ActionListener</code></a>: <code>MainGui.BackAction</code>, <code>MainGui.ForwardAction</code>, <code>MainGui.AddAction</code>, which all three call the <code>doWait()</code> method, which simulates a slow database. Thus, it |
|
||||
will have an effect to move the code of the ActionListeners to extra Threads in order to keep |
|
||||
the GUI responsive.</div> |
|
||||
<dl class="notes"> |
|
||||
<dt>See Also:</dt> |
|
||||
<dd><a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Runnable.html" title="class or interface in java.lang" class="external-link"><code>Runnable</code></a>, |
|
||||
<a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Thread.html" title="class or interface in java.lang" class="external-link"><code>Thread</code></a>, |
|
||||
<a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.desktop/java/awt/event/ActionListener.html" title="class or interface in java.awt.event" class="external-link"><code>ActionListener</code></a></dd> |
|
||||
</dl> |
|
||||
</section> |
|
||||
</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
</li> |
|
||||
<!-- ============ METHOD DETAIL ========== --> |
|
||||
<li> |
|
||||
<section class="method-details" id="method.detail"> |
|
||||
<h2>Method Details</h2> |
|
||||
<ul class="member-list"> |
|
||||
<li> |
|
||||
<section class="detail" id="main(java.lang.String[])"> |
|
||||
<h3>main</h3> |
|
||||
<div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">main</span>​<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[] args)</span></div> |
|
||||
<div class="block">a simple main which only creates an instance of <a href="MainGui.html" title="class in gui"><code>MainGui</code></a>.</div> |
|
||||
<dl class="notes"> |
|
||||
<dt>Parameters:</dt> |
|
||||
<dd><code>args</code> - cmd line arguments (ignored)</dd> |
|
||||
</dl> |
|
||||
</section> |
|
||||
</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
<!-- ========= END OF CLASS DATA ========= --> |
|
||||
</main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,60 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>Uses of Class gui.MainGui</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="use: package: gui, class: MainGui"> |
|
||||
<meta name="generator" content="javadoc/ClassUseWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="../../script.js"></script> |
|
||||
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="class-use-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "../../"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="../package-summary.html">Package</a></li> |
|
||||
<li><a href="../MainGui.html" title="class in gui">Class</a></li> |
|
||||
<li class="nav-bar-cell1-rev">Use</li> |
|
||||
<li><a href="../package-tree.html">Tree</a></li> |
|
||||
<li><a href="../../index-files/index-1.html">Index</a></li> |
|
||||
<li><a href="../../help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1 title="Uses of Class gui.MainGui" class="title">Uses of Class<br>gui.MainGui</h1> |
|
||||
</div> |
|
||||
No usage of gui.MainGui</main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,77 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>gui</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="declaration: package: gui"> |
|
||||
<meta name="generator" content="javadoc/PackageWriterImpl"> |
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="../script.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="package-declaration-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "../"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li class="nav-bar-cell1-rev">Package</li> |
|
||||
<li>Class</li> |
|
||||
<li><a href="package-use.html">Use</a></li> |
|
||||
<li><a href="package-tree.html">Tree</a></li> |
|
||||
<li><a href="../index-files/index-1.html">Index</a></li> |
|
||||
<li><a href="../help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1 title="Package" class="title">Package gui</h1> |
|
||||
</div> |
|
||||
<hr> |
|
||||
<div class="package-signature">package <span class="element-name">gui</span></div> |
|
||||
<section class="summary"> |
|
||||
<ul class="summary-list"> |
|
||||
<li> |
|
||||
<div class="caption"><span>Class Summary</span></div> |
|
||||
<div class="summary-table two-column-summary"> |
|
||||
<div class="table-header col-first">Class</div> |
|
||||
<div class="table-header col-last">Description</div> |
|
||||
<div class="col-first even-row-color"><a href="MainGui.html" title="class in gui">MainGui</a></div> |
|
||||
<div class="col-last even-row-color"> |
|
||||
<div class="block">a simple GUI that simulates a slow database for name, email entries.</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
</main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,70 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>gui Class Hierarchy</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="tree: package: gui"> |
|
||||
<meta name="generator" content="javadoc/PackageTreeWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="../script.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="package-tree-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "../"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="package-summary.html">Package</a></li> |
|
||||
<li>Class</li> |
|
||||
<li>Use</li> |
|
||||
<li class="nav-bar-cell1-rev">Tree</li> |
|
||||
<li><a href="../index-files/index-1.html">Index</a></li> |
|
||||
<li><a href="../help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1 class="title">Hierarchy For Package gui</h1> |
|
||||
</div> |
|
||||
<section class="hierarchy"> |
|
||||
<h2 title="Class Hierarchy">Class Hierarchy</h2> |
|
||||
<ul> |
|
||||
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a> |
|
||||
<ul> |
|
||||
<li class="circle">gui.<a href="MainGui.html" title="class in gui"><span class="type-name-link">MainGui</span></a></li> |
|
||||
</ul> |
|
||||
</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
</main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,60 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>Uses of Package gui</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="use: package: gui"> |
|
||||
<meta name="generator" content="javadoc/PackageUseWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="../script.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="package-use-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "../"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="package-summary.html">Package</a></li> |
|
||||
<li>Class</li> |
|
||||
<li class="nav-bar-cell1-rev">Use</li> |
|
||||
<li><a href="package-tree.html">Tree</a></li> |
|
||||
<li><a href="../index-files/index-1.html">Index</a></li> |
|
||||
<li><a href="../help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1 title="Uses of Package gui" class="title">Uses of Package<br>gui</h1> |
|
||||
</div> |
|
||||
No usage of gui</main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,149 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>API Help</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="help"> |
|
||||
<meta name="generator" content="javadoc/HelpWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="script.js"></script> |
|
||||
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="help-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "./"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="gui/package-summary.html">Package</a></li> |
|
||||
<li>Class</li> |
|
||||
<li>Use</li> |
|
||||
<li><a href="gui/package-tree.html">Tree</a></li> |
|
||||
<li><a href="index-files/index-1.html">Index</a></li> |
|
||||
<li class="nav-bar-cell1-rev">Help</li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1 class="title">How This API Document Is Organized</h1> |
|
||||
<div class="sub-title">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div> |
|
||||
</div> |
|
||||
<section class="help-section"> |
|
||||
<h2>Package</h2> |
|
||||
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p> |
|
||||
<ul class="help-section-list"> |
|
||||
<li>Interfaces</li> |
|
||||
<li>Classes</li> |
|
||||
<li>Enums</li> |
|
||||
<li>Exceptions</li> |
|
||||
<li>Errors</li> |
|
||||
<li>Annotation Types</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
<section class="help-section"> |
|
||||
<h2>Class or Interface</h2> |
|
||||
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p> |
|
||||
<ul class="help-section-list"> |
|
||||
<li>Class Inheritance Diagram</li> |
|
||||
<li>Direct Subclasses</li> |
|
||||
<li>All Known Subinterfaces</li> |
|
||||
<li>All Known Implementing Classes</li> |
|
||||
<li>Class or Interface Declaration</li> |
|
||||
<li>Class or Interface Description</li> |
|
||||
</ul> |
|
||||
<br> |
|
||||
<ul class="help-section-list"> |
|
||||
<li>Nested Class Summary</li> |
|
||||
<li>Field Summary</li> |
|
||||
<li>Property Summary</li> |
|
||||
<li>Constructor Summary</li> |
|
||||
<li>Method Summary</li> |
|
||||
</ul> |
|
||||
<br> |
|
||||
<ul class="help-section-list"> |
|
||||
<li>Field Details</li> |
|
||||
<li>Property Details</li> |
|
||||
<li>Constructor Details</li> |
|
||||
<li>Method Details</li> |
|
||||
</ul> |
|
||||
<p>The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p> |
|
||||
</section> |
|
||||
<section class="help-section"> |
|
||||
<h2>Annotation Type</h2> |
|
||||
<p>Each annotation type has its own separate page with the following sections:</p> |
|
||||
<ul class="help-section-list"> |
|
||||
<li>Annotation Type Declaration</li> |
|
||||
<li>Annotation Type Description</li> |
|
||||
<li>Required Element Summary</li> |
|
||||
<li>Optional Element Summary</li> |
|
||||
<li>Element Details</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
<section class="help-section"> |
|
||||
<h2>Enum</h2> |
|
||||
<p>Each enum has its own separate page with the following sections:</p> |
|
||||
<ul class="help-section-list"> |
|
||||
<li>Enum Declaration</li> |
|
||||
<li>Enum Description</li> |
|
||||
<li>Enum Constant Summary</li> |
|
||||
<li>Enum Constant Details</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
<section class="help-section"> |
|
||||
<h2>Use</h2> |
|
||||
<p>Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p> |
|
||||
</section> |
|
||||
<section class="help-section"> |
|
||||
<h2>Tree (Class Hierarchy)</h2> |
|
||||
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p> |
|
||||
<ul class="help-section-list"> |
|
||||
<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li> |
|
||||
<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
<section class="help-section"> |
|
||||
<h2>Index</h2> |
|
||||
<p>The <a href="index-files/index-1.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p> |
|
||||
</section> |
|
||||
<section class="help-section"> |
|
||||
<h2>Search</h2> |
|
||||
<p>You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camel-case" abbreviations. For example:</p> |
|
||||
<ul class="help-section-list"> |
|
||||
<li><code>j.l.obj</code> will match "java.lang.Object"</li> |
|
||||
<li><code>InpStr</code> will match "java.io.InputStream"</li> |
|
||||
<li><code>HM.cK</code> will match "java.util.HashMap.containsKey(Object)"</li> |
|
||||
</ul> |
|
||||
<p>Refer to <a href="https://docs.oracle.com/en/java/javase/16/docs/specs/javadoc/javadoc-search-spec.html">the Javadoc Search Specification</a> for a full description of search features.</p> |
|
||||
</section> |
|
||||
<hr> |
|
||||
<span class="help-footnote">This help file applies to API documentation generated by the standard doclet.</span></main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,66 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>G-Index</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="index: G"> |
|
||||
<meta name="generator" content="javadoc/IndexWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="../script.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="index-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "../"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="../gui/package-summary.html">Package</a></li> |
|
||||
<li>Class</li> |
|
||||
<li>Use</li> |
|
||||
<li><a href="../gui/package-tree.html">Tree</a></li> |
|
||||
<li class="nav-bar-cell1-rev">Index</li> |
|
||||
<li><a href="../help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1>Index</h1> |
|
||||
</div> |
|
||||
<a href="index-1.html">G</a> <a href="index-2.html">M</a> <br><a href="../allclasses-index.html">All Classes</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> |
|
||||
<h2 class="title" id="I:G">G</h2> |
|
||||
<dl class="index"> |
|
||||
<dt><a href="../gui/package-summary.html">gui</a> - package gui</dt> |
|
||||
<dd> </dd> |
|
||||
</dl> |
|
||||
<a href="index-1.html">G</a> <a href="index-2.html">M</a> <br><a href="../allclasses-index.html">All Classes</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,76 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>M-Index</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="index: M"> |
|
||||
<meta name="generator" content="javadoc/IndexWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="../jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="../script.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="index-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "../"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li><a href="../gui/package-summary.html">Package</a></li> |
|
||||
<li>Class</li> |
|
||||
<li>Use</li> |
|
||||
<li><a href="../gui/package-tree.html">Tree</a></li> |
|
||||
<li class="nav-bar-cell1-rev">Index</li> |
|
||||
<li><a href="../help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1>Index</h1> |
|
||||
</div> |
|
||||
<a href="index-1.html">G</a> <a href="index-2.html">M</a> <br><a href="../allclasses-index.html">All Classes</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> |
|
||||
<h2 class="title" id="I:M">M</h2> |
|
||||
<dl class="index"> |
|
||||
<dt><span class="member-name-link"><a href="../gui/MainGui.html#main(java.lang.String%5B%5D)">main(String[])</a></span> - Static method in class gui.<a href="../gui/MainGui.html" title="class in gui">MainGui</a></dt> |
|
||||
<dd> |
|
||||
<div class="block">a simple main which only creates an instance of <a href="../gui/MainGui.html" title="class in gui"><code>MainGui</code></a>.</div> |
|
||||
</dd> |
|
||||
<dt><a href="../gui/MainGui.html" title="class in gui"><span class="type-name-link">MainGui</span></a> - Class in <a href="../gui/package-summary.html">gui</a></dt> |
|
||||
<dd> |
|
||||
<div class="block">a simple GUI that simulates a slow database for name, email entries.</div> |
|
||||
</dd> |
|
||||
<dt><span class="member-name-link"><a href="../gui/MainGui.html#%3Cinit%3E()">MainGui()</a></span> - Constructor for class gui.<a href="../gui/MainGui.html" title="class in gui">MainGui</a></dt> |
|
||||
<dd> |
|
||||
<div class="block">constructor that configures and shows the GUI window.</div> |
|
||||
</dd> |
|
||||
</dl> |
|
||||
<a href="index-1.html">G</a> <a href="index-2.html">M</a> <br><a href="../allclasses-index.html">All Classes</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,27 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>Generated Documentation (Untitled)</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="index redirect"> |
|
||||
<meta name="generator" content="javadoc/IndexRedirectWriter"> |
|
||||
<link rel="canonical" href="gui/package-summary.html"> |
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> |
|
||||
<script type="text/javascript">window.location.replace('gui/package-summary.html')</script> |
|
||||
<noscript> |
|
||||
<meta http-equiv="Refresh" content="0;gui/package-summary.html"> |
|
||||
</noscript> |
|
||||
</head> |
|
||||
<body class="index-redirect-page"> |
|
||||
<main role="main"> |
|
||||
<noscript> |
|
||||
<p>JavaScript is disabled on your browser.</p> |
|
||||
</noscript> |
|
||||
<p><a href="gui/package-summary.html">gui/package-summary.html</a></p> |
|
||||
</main> |
|
||||
</body> |
|
||||
</html> |
|
@ -1,34 +0,0 @@ |
|||||
/* |
|
||||
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. |
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
||||
* |
|
||||
* This code is free software; you can redistribute it and/or modify it |
|
||||
* under the terms of the GNU General Public License version 2 only, as |
|
||||
* published by the Free Software Foundation. Oracle designates this |
|
||||
* particular file as subject to the "Classpath" exception as provided |
|
||||
* by Oracle in the LICENSE file that accompanied this code. |
|
||||
* |
|
||||
* This code 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 |
|
||||
* version 2 for more details (a copy is included in the LICENSE file that |
|
||||
* accompanied this code). |
|
||||
* |
|
||||
* You should have received a copy of the GNU General Public License version |
|
||||
* 2 along with this work; if not, write to the Free Software Foundation, |
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
||||
* |
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
||||
* or visit www.oracle.com if you need additional information or have any |
|
||||
* questions. |
|
||||
*/ |
|
||||
|
|
||||
.ui-state-active, |
|
||||
.ui-widget-content .ui-state-active, |
|
||||
.ui-widget-header .ui-state-active, |
|
||||
a.ui-button:active, |
|
||||
.ui-button:active, |
|
||||
.ui-button.ui-state-active:hover { |
|
||||
/* Overrides the color of selection used in jQuery UI */ |
|
||||
background: #F8981D; |
|
||||
} |
|
@ -1 +0,0 @@ |
|||||
memberSearchIndex = [{"p":"gui","c":"MainGui","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"gui","c":"MainGui","l":"MainGui()","u":"%3Cinit%3E()"}];updateSearchResults(); |
|
@ -1 +0,0 @@ |
|||||
moduleSearchIndex = [];updateSearchResults(); |
|
@ -1,74 +0,0 @@ |
|||||
<!DOCTYPE HTML> |
|
||||
<!-- NewPage --> |
|
||||
<html lang="de"> |
|
||||
<head> |
|
||||
<!-- Generated by javadoc (16) on Thu Jul 01 21:15:45 CEST 2021 --> |
|
||||
<title>Class Hierarchy</title> |
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
||||
<meta name="dc.created" content="2021-07-01"> |
|
||||
<meta name="description" content="class tree"> |
|
||||
<meta name="generator" content="javadoc/TreeWriter"> |
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> |
|
||||
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style"> |
|
||||
<script type="text/javascript" src="script.js"></script> |
|
||||
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script> |
|
||||
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> |
|
||||
</head> |
|
||||
<body class="tree-page"> |
|
||||
<script type="text/javascript">var pathtoroot = "./"; |
|
||||
loadScripts(document, 'script');</script> |
|
||||
<noscript> |
|
||||
<div>JavaScript is disabled on your browser.</div> |
|
||||
</noscript> |
|
||||
<div class="flex-box"> |
|
||||
<header role="banner" class="flex-header"> |
|
||||
<nav role="navigation"> |
|
||||
<!-- ========= START OF TOP NAVBAR ======= --> |
|
||||
<div class="top-nav" id="navbar.top"> |
|
||||
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
|
||||
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation"> |
|
||||
<li>Package</li> |
|
||||
<li>Class</li> |
|
||||
<li>Use</li> |
|
||||
<li class="nav-bar-cell1-rev">Tree</li> |
|
||||
<li><a href="index-files/index-1.html">Index</a></li> |
|
||||
<li><a href="help-doc.html">Help</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="sub-nav"> |
|
||||
<div class="nav-list-search"><label for="search">SEARCH:</label> |
|
||||
<input type="text" id="search" value="search" disabled="disabled"> |
|
||||
<input type="reset" id="reset" value="reset" disabled="disabled"> |
|
||||
</div> |
|
||||
</div> |
|
||||
<!-- ========= END OF TOP NAVBAR ========= --> |
|
||||
<span class="skip-nav" id="skip.navbar.top"> |
|
||||
<!-- --> |
|
||||
</span></nav> |
|
||||
</header> |
|
||||
<div class="flex-content"> |
|
||||
<main role="main"> |
|
||||
<div class="header"> |
|
||||
<h1 class="title">Hierarchy For All Packages</h1> |
|
||||
<span class="package-hierarchy-label">Package Hierarchies:</span> |
|
||||
<ul class="horizontal"> |
|
||||
<li><a href="gui/package-tree.html">gui</a></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<section class="hierarchy"> |
|
||||
<h2 title="Class Hierarchy">Class Hierarchy</h2> |
|
||||
<ul> |
|
||||
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a> |
|
||||
<ul> |
|
||||
<li class="circle">gui.<a href="gui/MainGui.html" title="class in gui"><span class="type-name-link">MainGui</span></a></li> |
|
||||
</ul> |
|
||||
</li> |
|
||||
</ul> |
|
||||
</section> |
|
||||
</main> |
|
||||
</div> |
|
||||
</div> |
|
||||
</body> |
|
||||
</html> |
|
@ -1 +0,0 @@ |
|||||
packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"gui"}];updateSearchResults(); |
|
Before Width: 16 | Height: 16 | Size: 499 B |
Before Width: 16 | Height: 16 | Size: 394 B |
Before Width: 1 | Height: 400 | Size: 335 B |
Before Width: 1 | Height: 400 | Size: 262 B |
Before Width: 1 | Height: 400 | Size: 262 B |
Before Width: 1 | Height: 400 | Size: 262 B |
Before Width: 1 | Height: 400 | Size: 332 B |
Before Width: 1 | Height: 100 | Size: 280 B |
Before Width: 256 | Height: 240 | Size: 6.8 KiB |
Before Width: 256 | Height: 240 | Size: 4.4 KiB |
Before Width: 256 | Height: 240 | Size: 6.8 KiB |
Before Width: 256 | Height: 240 | Size: 6.8 KiB |
Before Width: 256 | Height: 240 | Size: 4.4 KiB |
2
gui/doc/script-dir/jquery-3.5.1.min.js
File diff suppressed because it is too large
View File
7
gui/doc/script-dir/jquery-ui.min.css
File diff suppressed because it is too large
View File
6
gui/doc/script-dir/jquery-ui.min.js
File diff suppressed because it is too large
View File
@ -1,5 +0,0 @@ |
|||||
/*! jQuery UI - v1.12.1 - 2018-12-06 |
|
||||
* http://jqueryui.com |
|
||||
* Copyright jQuery Foundation and other contributors; Licensed MIT */ |
|
||||
|
|
||||
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} |
|
@ -1,132 +0,0 @@ |
|||||
/* |
|
||||
* Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. |
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
||||
* |
|
||||
* This code is free software; you can redistribute it and/or modify it |
|
||||
* under the terms of the GNU General Public License version 2 only, as |
|
||||
* published by the Free Software Foundation. Oracle designates this |
|
||||
* particular file as subject to the "Classpath" exception as provided |
|
||||
* by Oracle in the LICENSE file that accompanied this code. |
|
||||
* |
|
||||
* This code 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 |
|
||||
* version 2 for more details (a copy is included in the LICENSE file that |
|
||||
* accompanied this code). |
|
||||
* |
|
||||
* You should have received a copy of the GNU General Public License version |
|
||||
* 2 along with this work; if not, write to the Free Software Foundation, |
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
||||
* |
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
||||
* or visit www.oracle.com if you need additional information or have any |
|
||||
* questions. |
|
||||
*/ |
|
||||
|
|
||||
var moduleSearchIndex; |
|
||||
var packageSearchIndex; |
|
||||
var typeSearchIndex; |
|
||||
var memberSearchIndex; |
|
||||
var tagSearchIndex; |
|
||||
function loadScripts(doc, tag) { |
|
||||
createElem(doc, tag, 'search.js'); |
|
||||
|
|
||||
createElem(doc, tag, 'module-search-index.js'); |
|
||||
createElem(doc, tag, 'package-search-index.js'); |
|
||||
createElem(doc, tag, 'type-search-index.js'); |
|
||||
createElem(doc, tag, 'member-search-index.js'); |
|
||||
createElem(doc, tag, 'tag-search-index.js'); |
|
||||
} |
|
||||
|
|
||||
function createElem(doc, tag, path) { |
|
||||
var script = doc.createElement(tag); |
|
||||
var scriptElement = doc.getElementsByTagName(tag)[0]; |
|
||||
script.src = pathtoroot + path; |
|
||||
scriptElement.parentNode.insertBefore(script, scriptElement); |
|
||||
} |
|
||||
|
|
||||
function show(tableId, selected, columns) { |
|
||||
if (tableId !== selected) { |
|
||||
document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') |
|
||||
.forEach(function(elem) { |
|
||||
elem.style.display = 'none'; |
|
||||
}); |
|
||||
} |
|
||||
document.querySelectorAll('div.' + selected) |
|
||||
.forEach(function(elem, index) { |
|
||||
elem.style.display = ''; |
|
||||
var isEvenRow = index % (columns * 2) < columns; |
|
||||
elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); |
|
||||
elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); |
|
||||
}); |
|
||||
updateTabs(tableId, selected); |
|
||||
} |
|
||||
|
|
||||
function updateTabs(tableId, selected) { |
|
||||
document.querySelector('div#' + tableId +' .summary-table') |
|
||||
.setAttribute('aria-labelledby', selected); |
|
||||
document.querySelectorAll('button[id^="' + tableId + '"]') |
|
||||
.forEach(function(tab, index) { |
|
||||
if (selected === tab.id || (tableId === selected && index === 0)) { |
|
||||
tab.className = activeTableTab; |
|
||||
tab.setAttribute('aria-selected', true); |
|
||||
tab.setAttribute('tabindex',0); |
|
||||
} else { |
|
||||
tab.className = tableTab; |
|
||||
tab.setAttribute('aria-selected', false); |
|
||||
tab.setAttribute('tabindex',-1); |
|
||||
} |
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
function switchTab(e) { |
|
||||
var selected = document.querySelector('[aria-selected=true]'); |
|
||||
if (selected) { |
|
||||
if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { |
|
||||
// left or up arrow key pressed: move focus to previous tab
|
|
||||
selected.previousSibling.click(); |
|
||||
selected.previousSibling.focus(); |
|
||||
e.preventDefault(); |
|
||||
} else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { |
|
||||
// right or down arrow key pressed: move focus to next tab
|
|
||||
selected.nextSibling.click(); |
|
||||
selected.nextSibling.focus(); |
|
||||
e.preventDefault(); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
var updateSearchResults = function() {}; |
|
||||
|
|
||||
function indexFilesLoaded() { |
|
||||
return moduleSearchIndex |
|
||||
&& packageSearchIndex |
|
||||
&& typeSearchIndex |
|
||||
&& memberSearchIndex |
|
||||
&& tagSearchIndex; |
|
||||
} |
|
||||
|
|
||||
// Workaround for scroll position not being included in browser history (8249133)
|
|
||||
document.addEventListener("DOMContentLoaded", function(e) { |
|
||||
var contentDiv = document.querySelector("div.flex-content"); |
|
||||
window.addEventListener("popstate", function(e) { |
|
||||
if (e.state !== null) { |
|
||||
contentDiv.scrollTop = e.state; |
|
||||
} |
|
||||
}); |
|
||||
window.addEventListener("hashchange", function(e) { |
|
||||
history.replaceState(contentDiv.scrollTop, document.title); |
|
||||
}); |
|
||||
contentDiv.addEventListener("scroll", function(e) { |
|
||||
var timeoutID; |
|
||||
if (!timeoutID) { |
|
||||
timeoutID = setTimeout(function() { |
|
||||
history.replaceState(contentDiv.scrollTop, document.title); |
|
||||
timeoutID = null; |
|
||||
}, 100); |
|
||||
} |
|
||||
}); |
|
||||
if (!location.hash) { |
|
||||
history.replaceState(contentDiv.scrollTop, document.title); |
|
||||
} |
|
||||
}); |
|
@ -1,354 +0,0 @@ |
|||||
/* |
|
||||
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. |
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
||||
* |
|
||||
* This code is free software; you can redistribute it and/or modify it |
|
||||
* under the terms of the GNU General Public License version 2 only, as |
|
||||
* published by the Free Software Foundation. Oracle designates this |
|
||||
* particular file as subject to the "Classpath" exception as provided |
|
||||
* by Oracle in the LICENSE file that accompanied this code. |
|
||||
* |
|
||||
* This code 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 |
|
||||
* version 2 for more details (a copy is included in the LICENSE file that |
|
||||
* accompanied this code). |
|
||||
* |
|
||||
* You should have received a copy of the GNU General Public License version |
|
||||
* 2 along with this work; if not, write to the Free Software Foundation, |
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
||||
* |
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
||||
* or visit www.oracle.com if you need additional information or have any |
|
||||
* questions. |
|
||||
*/ |
|
||||
|
|
||||
var noResult = {l: "No results found"}; |
|
||||
var loading = {l: "Loading search index..."}; |
|
||||
var catModules = "Modules"; |
|
||||
var catPackages = "Packages"; |
|
||||
var catTypes = "Types"; |
|
||||
var catMembers = "Members"; |
|
||||
var catSearchTags = "Search Tags"; |
|
||||
var highlight = "<span class=\"result-highlight\">$&</span>"; |
|
||||
var searchPattern = ""; |
|
||||
var fallbackPattern = ""; |
|
||||
var RANKING_THRESHOLD = 2; |
|
||||
var NO_MATCH = 0xffff; |
|
||||
var MIN_RESULTS = 3; |
|
||||
var MAX_RESULTS = 500; |
|
||||
var UNNAMED = "<Unnamed>"; |
|
||||
function escapeHtml(str) { |
|
||||
return str.replace(/</g, "<").replace(/>/g, ">"); |
|
||||
} |
|
||||
function getHighlightedText(item, matcher, fallbackMatcher) { |
|
||||
var escapedItem = escapeHtml(item); |
|
||||
var highlighted = escapedItem.replace(matcher, highlight); |
|
||||
if (highlighted === escapedItem) { |
|
||||
highlighted = escapedItem.replace(fallbackMatcher, highlight) |
|
||||
} |
|
||||
return highlighted; |
|
||||
} |
|
||||
function getURLPrefix(ui) { |
|
||||
var urlPrefix=""; |
|
||||
var slash = "/"; |
|
||||
if (ui.item.category === catModules) { |
|
||||
return ui.item.l + slash; |
|
||||
} else if (ui.item.category === catPackages && ui.item.m) { |
|
||||
return ui.item.m + slash; |
|
||||
} else if (ui.item.category === catTypes || ui.item.category === catMembers) { |
|
||||
if (ui.item.m) { |
|
||||
urlPrefix = ui.item.m + slash; |
|
||||
} else { |
|
||||
$.each(packageSearchIndex, function(index, item) { |
|
||||
if (item.m && ui.item.p === item.l) { |
|
||||
urlPrefix = item.m + slash; |
|
||||
} |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
return urlPrefix; |
|
||||
} |
|
||||
function createSearchPattern(term) { |
|
||||
var pattern = ""; |
|
||||
var isWordToken = false; |
|
||||
term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { |
|
||||
if (index > 0) { |
|
||||
// whitespace between identifiers is significant
|
|
||||
pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; |
|
||||
} |
|
||||
var tokens = w.split(/(?=[A-Z,.()<>[\/])/); |
|
||||
for (var i = 0; i < tokens.length; i++) { |
|
||||
var s = tokens[i]; |
|
||||
if (s === "") { |
|
||||
continue; |
|
||||
} |
|
||||
pattern += $.ui.autocomplete.escapeRegex(s); |
|
||||
isWordToken = /\w$/.test(s); |
|
||||
if (isWordToken) { |
|
||||
pattern += "([a-z0-9_$<>\\[\\]]*?)"; |
|
||||
} |
|
||||
} |
|
||||
}); |
|
||||
return pattern; |
|
||||
} |
|
||||
function createMatcher(pattern, flags) { |
|
||||
var isCamelCase = /[A-Z]/.test(pattern); |
|
||||
return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); |
|
||||
} |
|
||||
var watermark = 'Search'; |
|
||||
$(function() { |
|
||||
var search = $("#search"); |
|
||||
var reset = $("#reset"); |
|
||||
search.val(''); |
|
||||
search.prop("disabled", false); |
|
||||
reset.prop("disabled", false); |
|
||||
search.val(watermark).addClass('watermark'); |
|
||||
search.blur(function() { |
|
||||
if ($(this).val().length === 0) { |
|
||||
$(this).val(watermark).addClass('watermark'); |
|
||||
} |
|
||||
}); |
|
||||
search.on('click keydown paste', function() { |
|
||||
if ($(this).val() === watermark) { |
|
||||
$(this).val('').removeClass('watermark'); |
|
||||
} |
|
||||
}); |
|
||||
reset.click(function() { |
|
||||
search.val('').focus(); |
|
||||
}); |
|
||||
search.focus()[0].setSelectionRange(0, 0); |
|
||||
}); |
|
||||
$.widget("custom.catcomplete", $.ui.autocomplete, { |
|
||||
_create: function() { |
|
||||
this._super(); |
|
||||
this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); |
|
||||
}, |
|
||||
_renderMenu: function(ul, items) { |
|
||||
var rMenu = this; |
|
||||
var currentCategory = ""; |
|
||||
rMenu.menu.bindings = $(); |
|
||||
$.each(items, function(index, item) { |
|
||||
var li; |
|
||||
if (item.category && item.category !== currentCategory) { |
|
||||
ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>"); |
|
||||
currentCategory = item.category; |
|
||||
} |
|
||||
li = rMenu._renderItemData(ul, item); |
|
||||
if (item.category) { |
|
||||
li.attr("aria-label", item.category + " : " + item.l); |
|
||||
li.attr("class", "result-item"); |
|
||||
} else { |
|
||||
li.attr("aria-label", item.l); |
|
||||
li.attr("class", "result-item"); |
|
||||
} |
|
||||
}); |
|
||||
}, |
|
||||
_renderItem: function(ul, item) { |
|
||||
var label = ""; |
|
||||
var matcher = createMatcher(escapeHtml(searchPattern), "g"); |
|
||||
var fallbackMatcher = new RegExp(fallbackPattern, "gi") |
|
||||
if (item.category === catModules) { |
|
||||
label = getHighlightedText(item.l, matcher, fallbackMatcher); |
|
||||
} else if (item.category === catPackages) { |
|
||||
label = getHighlightedText(item.l, matcher, fallbackMatcher); |
|
||||
} else if (item.category === catTypes) { |
|
||||
label = (item.p && item.p !== UNNAMED) |
|
||||
? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) |
|
||||
: getHighlightedText(item.l, matcher, fallbackMatcher); |
|
||||
} else if (item.category === catMembers) { |
|
||||
label = (item.p && item.p !== UNNAMED) |
|
||||
? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) |
|
||||
: getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); |
|
||||
} else if (item.category === catSearchTags) { |
|
||||
label = getHighlightedText(item.l, matcher, fallbackMatcher); |
|
||||
} else { |
|
||||
label = item.l; |
|
||||
} |
|
||||
var li = $("<li/>").appendTo(ul); |
|
||||
var div = $("<div/>").appendTo(li); |
|
||||
if (item.category === catSearchTags && item.h) { |
|
||||
if (item.d) { |
|
||||
div.html(label + "<span class=\"search-tag-holder-result\"> (" + item.h + ")</span><br><span class=\"search-tag-desc-result\">" |
|
||||
+ item.d + "</span><br>"); |
|
||||
} else { |
|
||||
div.html(label + "<span class=\"search-tag-holder-result\"> (" + item.h + ")</span>"); |
|
||||
} |
|
||||
} else { |
|
||||
if (item.m) { |
|
||||
div.html(item.m + "/" + label); |
|
||||
} else { |
|
||||
div.html(label); |
|
||||
} |
|
||||
} |
|
||||
return li; |
|
||||
} |
|
||||
}); |
|
||||
function rankMatch(match, category) { |
|
||||
if (!match) { |
|
||||
return NO_MATCH; |
|
||||
} |
|
||||
var index = match.index; |
|
||||
var input = match.input; |
|
||||
var leftBoundaryMatch = 2; |
|
||||
var periferalMatch = 0; |
|
||||
// make sure match is anchored on a left word boundary
|
|
||||
if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { |
|
||||
leftBoundaryMatch = 0; |
|
||||
} else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { |
|
||||
leftBoundaryMatch = 1; |
|
||||
} |
|
||||
var matchEnd = index + match[0].length; |
|
||||
var leftParen = input.indexOf("("); |
|
||||
var endOfName = leftParen > -1 ? leftParen : input.length; |
|
||||
// exclude peripheral matches
|
|
||||
if (category !== catModules && category !== catSearchTags) { |
|
||||
var delim = category === catPackages ? "/" : "."; |
|
||||
if (leftParen > -1 && leftParen < index) { |
|
||||
periferalMatch += 2; |
|
||||
} else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { |
|
||||
periferalMatch += 2; |
|
||||
} |
|
||||
} |
|
||||
var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match
|
|
||||
for (var i = 1; i < match.length; i++) { |
|
||||
// lower ranking if parts of the name are missing
|
|
||||
if (match[i]) |
|
||||
delta += match[i].length; |
|
||||
} |
|
||||
if (category === catTypes) { |
|
||||
// lower ranking if a type name contains unmatched camel-case parts
|
|
||||
if (/[A-Z]/.test(input.substring(matchEnd))) |
|
||||
delta += 5; |
|
||||
if (/[A-Z]/.test(input.substring(0, index))) |
|
||||
delta += 5; |
|
||||
} |
|
||||
return leftBoundaryMatch + periferalMatch + (delta / 200); |
|
||||
|
|
||||
} |
|
||||
function doSearch(request, response) { |
|
||||
var result = []; |
|
||||
searchPattern = createSearchPattern(request.term); |
|
||||
fallbackPattern = createSearchPattern(request.term.toLowerCase()); |
|
||||
if (searchPattern === "") { |
|
||||
return this.close(); |
|
||||
} |
|
||||
var camelCaseMatcher = createMatcher(searchPattern, ""); |
|
||||
var fallbackMatcher = new RegExp(fallbackPattern, "i"); |
|
||||
|
|
||||
function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { |
|
||||
if (indexArray) { |
|
||||
var newResults = []; |
|
||||
$.each(indexArray, function (i, item) { |
|
||||
item.category = category; |
|
||||
var ranking = rankMatch(matcher.exec(nameFunc(item)), category); |
|
||||
if (ranking < RANKING_THRESHOLD) { |
|
||||
newResults.push({ranking: ranking, item: item}); |
|
||||
} |
|
||||
return newResults.length <= MAX_RESULTS; |
|
||||
}); |
|
||||
return newResults.sort(function(e1, e2) { |
|
||||
return e1.ranking - e2.ranking; |
|
||||
}).map(function(e) { |
|
||||
return e.item; |
|
||||
}); |
|
||||
} |
|
||||
return []; |
|
||||
} |
|
||||
function searchIndex(indexArray, category, nameFunc) { |
|
||||
var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); |
|
||||
result = result.concat(primaryResults); |
|
||||
if (primaryResults.length <= MIN_RESULTS && camelCaseMatcher.flags.indexOf("i") === -1) { |
|
||||
var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); |
|
||||
result = result.concat(secondaryResults.filter(function (item) { |
|
||||
return primaryResults.indexOf(item) === -1; |
|
||||
})); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); |
|
||||
searchIndex(packageSearchIndex, catPackages, function(item) { |
|
||||
return (item.m && request.term.indexOf("/") > -1) |
|
||||
? (item.m + "/" + item.l) : item.l; |
|
||||
}); |
|
||||
searchIndex(typeSearchIndex, catTypes, function(item) { |
|
||||
return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; |
|
||||
}); |
|
||||
searchIndex(memberSearchIndex, catMembers, function(item) { |
|
||||
return request.term.indexOf(".") > -1 |
|
||||
? item.p + "." + item.c + "." + item.l : item.l; |
|
||||
}); |
|
||||
searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); |
|
||||
|
|
||||
if (!indexFilesLoaded()) { |
|
||||
updateSearchResults = function() { |
|
||||
doSearch(request, response); |
|
||||
} |
|
||||
result.unshift(loading); |
|
||||
} else { |
|
||||
updateSearchResults = function() {}; |
|
||||
} |
|
||||
response(result); |
|
||||
} |
|
||||
$(function() { |
|
||||
$("#search").catcomplete({ |
|
||||
minLength: 1, |
|
||||
delay: 300, |
|
||||
source: doSearch, |
|
||||
response: function(event, ui) { |
|
||||
if (!ui.content.length) { |
|
||||
ui.content.push(noResult); |
|
||||
} else { |
|
||||
$("#search").empty(); |
|
||||
} |
|
||||
}, |
|
||||
autoFocus: true, |
|
||||
focus: function(event, ui) { |
|
||||
return false; |
|
||||
}, |
|
||||
position: { |
|
||||
collision: "flip" |
|
||||
}, |
|
||||
select: function(event, ui) { |
|
||||
if (ui.item.category) { |
|
||||
var url = getURLPrefix(ui); |
|
||||
if (ui.item.category === catModules) { |
|
||||
url += "module-summary.html"; |
|
||||
} else if (ui.item.category === catPackages) { |
|
||||
if (ui.item.u) { |
|
||||
url = ui.item.u; |
|
||||
} else { |
|
||||
url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; |
|
||||
} |
|
||||
} else if (ui.item.category === catTypes) { |
|
||||
if (ui.item.u) { |
|
||||
url = ui.item.u; |
|
||||
} else if (ui.item.p === UNNAMED) { |
|
||||
url += ui.item.l + ".html"; |
|
||||
} else { |
|
||||
url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; |
|
||||
} |
|
||||
} else if (ui.item.category === catMembers) { |
|
||||
if (ui.item.p === UNNAMED) { |
|
||||
url += ui.item.c + ".html" + "#"; |
|
||||
} else { |
|
||||
url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; |
|
||||
} |
|
||||
if (ui.item.u) { |
|
||||
url += ui.item.u; |
|
||||
} else { |
|
||||
url += ui.item.l; |
|
||||
} |
|
||||
} else if (ui.item.category === catSearchTags) { |
|
||||
url += ui.item.u; |
|
||||
} |
|
||||
if (top !== window) { |
|
||||
parent.classFrame.location = pathtoroot + url; |
|
||||
} else { |
|
||||
window.location.href = pathtoroot + url; |
|
||||
} |
|
||||
$("#search").focus(); |
|
||||
} |
|
||||
} |
|
||||
}); |
|
||||
}); |
|
@ -1,827 +0,0 @@ |
|||||
/* |
|
||||
* Javadoc style sheet |
|
||||
*/ |
|
||||
|
|
||||
@import url('resources/fonts/dejavu.css'); |
|
||||
|
|
||||
/* |
|
||||
* Styles for individual HTML elements. |
|
||||
* |
|
||||
* These are styles that are specific to individual HTML elements. Changing them affects the style of a particular |
|
||||
* HTML element throughout the page. |
|
||||
*/ |
|
||||
|
|
||||
body { |
|
||||
background-color:#ffffff; |
|
||||
color:#353833; |
|
||||
font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; |
|
||||
font-size:14px; |
|
||||
margin:0; |
|
||||
padding:0; |
|
||||
height:100%; |
|
||||
width:100%; |
|
||||
} |
|
||||
iframe { |
|
||||
margin:0; |
|
||||
padding:0; |
|
||||
height:100%; |
|
||||
width:100%; |
|
||||
overflow-y:scroll; |
|
||||
border:none; |
|
||||
} |
|
||||
a:link, a:visited { |
|
||||
text-decoration:none; |
|
||||
color:#4A6782; |
|
||||
} |
|
||||
a[href]:hover, a[href]:focus { |
|
||||
text-decoration:none; |
|
||||
color:#bb7a2a; |
|
||||
} |
|
||||
a[name] { |
|
||||
color:#353833; |
|
||||
} |
|
||||
pre { |
|
||||
font-family:'DejaVu Sans Mono', monospace; |
|
||||
font-size:14px; |
|
||||
} |
|
||||
h1 { |
|
||||
font-size:20px; |
|
||||
} |
|
||||
h2 { |
|
||||
font-size:18px; |
|
||||
} |
|
||||
h3 { |
|
||||
font-size:16px; |
|
||||
} |
|
||||
h4 { |
|
||||
font-size:13px; |
|
||||
} |
|
||||
h5 { |
|
||||
font-size:12px; |
|
||||
} |
|
||||
h6 { |
|
||||
font-size:11px; |
|
||||
} |
|
||||
ul { |
|
||||
list-style-type:disc; |
|
||||
} |
|
||||
code, tt { |
|
||||
font-family:'DejaVu Sans Mono', monospace; |
|
||||
font-size:14px; |
|
||||
padding-top:4px; |
|
||||
margin-top:8px; |
|
||||
line-height:1.4em; |
|
||||
} |
|
||||
dt code { |
|
||||
font-family:'DejaVu Sans Mono', monospace; |
|
||||
font-size:14px; |
|
||||
padding-top:4px; |
|
||||
} |
|
||||
.summary-table dt code { |
|
||||
font-family:'DejaVu Sans Mono', monospace; |
|
||||
font-size:14px; |
|
||||
vertical-align:top; |
|
||||
padding-top:4px; |
|
||||
} |
|
||||
sup { |
|
||||
font-size:8px; |
|
||||
} |
|
||||
button { |
|
||||
font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; |
|
||||
font-size: 14px; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for HTML generated by javadoc. |
|
||||
* |
|
||||
* These are style classes that are used by the standard doclet to generate HTML documentation. |
|
||||
*/ |
|
||||
|
|
||||
/* |
|
||||
* Styles for document title and copyright. |
|
||||
*/ |
|
||||
.clear { |
|
||||
clear:both; |
|
||||
height:0; |
|
||||
overflow:hidden; |
|
||||
} |
|
||||
.about-language { |
|
||||
float:right; |
|
||||
padding:0 21px 8px 8px; |
|
||||
font-size:11px; |
|
||||
margin-top:-9px; |
|
||||
height:2.9em; |
|
||||
} |
|
||||
.legal-copy { |
|
||||
margin-left:.5em; |
|
||||
} |
|
||||
.tab { |
|
||||
background-color:#0066FF; |
|
||||
color:#ffffff; |
|
||||
padding:8px; |
|
||||
width:5em; |
|
||||
font-weight:bold; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for navigation bar. |
|
||||
*/ |
|
||||
@media screen { |
|
||||
.flex-box { |
|
||||
position:fixed; |
|
||||
display:flex; |
|
||||
flex-direction:column; |
|
||||
height: 100%; |
|
||||
width: 100%; |
|
||||
} |
|
||||
.flex-header { |
|
||||
flex: 0 0 auto; |
|
||||
} |
|
||||
.flex-content { |
|
||||
flex: 1 1 auto; |
|
||||
overflow-y: auto; |
|
||||
} |
|
||||
} |
|
||||
.top-nav { |
|
||||
background-color:#4D7A97; |
|
||||
color:#FFFFFF; |
|
||||
float:left; |
|
||||
padding:0; |
|
||||
width:100%; |
|
||||
clear:right; |
|
||||
min-height:2.8em; |
|
||||
padding-top:10px; |
|
||||
overflow:hidden; |
|
||||
font-size:12px; |
|
||||
} |
|
||||
.sub-nav { |
|
||||
background-color:#dee3e9; |
|
||||
float:left; |
|
||||
width:100%; |
|
||||
overflow:hidden; |
|
||||
font-size:12px; |
|
||||
} |
|
||||
.sub-nav div { |
|
||||
clear:left; |
|
||||
float:left; |
|
||||
padding:0 0 5px 6px; |
|
||||
text-transform:uppercase; |
|
||||
} |
|
||||
.sub-nav .nav-list { |
|
||||
padding-top:5px; |
|
||||
} |
|
||||
ul.nav-list { |
|
||||
display:block; |
|
||||
margin:0 25px 0 0; |
|
||||
padding:0; |
|
||||
} |
|
||||
ul.sub-nav-list { |
|
||||
float:left; |
|
||||
margin:0 25px 0 0; |
|
||||
padding:0; |
|
||||
} |
|
||||
ul.nav-list li { |
|
||||
list-style:none; |
|
||||
float:left; |
|
||||
padding: 5px 6px; |
|
||||
text-transform:uppercase; |
|
||||
} |
|
||||
.sub-nav .nav-list-search { |
|
||||
float:right; |
|
||||
margin:0 0 0 0; |
|
||||
padding:5px 6px; |
|
||||
clear:none; |
|
||||
} |
|
||||
.nav-list-search label { |
|
||||
position:relative; |
|
||||
right:-16px; |
|
||||
} |
|
||||
ul.sub-nav-list li { |
|
||||
list-style:none; |
|
||||
float:left; |
|
||||
padding-top:10px; |
|
||||
} |
|
||||
.top-nav a:link, .top-nav a:active, .top-nav a:visited { |
|
||||
color:#FFFFFF; |
|
||||
text-decoration:none; |
|
||||
text-transform:uppercase; |
|
||||
} |
|
||||
.top-nav a:hover { |
|
||||
text-decoration:none; |
|
||||
color:#bb7a2a; |
|
||||
text-transform:uppercase; |
|
||||
} |
|
||||
.nav-bar-cell1-rev { |
|
||||
background-color:#F8981D; |
|
||||
color:#253441; |
|
||||
margin: auto 5px; |
|
||||
} |
|
||||
.skip-nav { |
|
||||
position:absolute; |
|
||||
top:auto; |
|
||||
left:-9999px; |
|
||||
overflow:hidden; |
|
||||
} |
|
||||
/* |
|
||||
* Hide navigation links and search box in print layout |
|
||||
*/ |
|
||||
@media print { |
|
||||
ul.nav-list, div.sub-nav { |
|
||||
display:none; |
|
||||
} |
|
||||
} |
|
||||
/* |
|
||||
* Styles for page header and footer. |
|
||||
*/ |
|
||||
.title { |
|
||||
color:#2c4557; |
|
||||
margin:10px 0; |
|
||||
} |
|
||||
.sub-title { |
|
||||
margin:5px 0 0 0; |
|
||||
} |
|
||||
.header ul { |
|
||||
margin:0 0 15px 0; |
|
||||
padding:0; |
|
||||
} |
|
||||
.header ul li, .footer ul li { |
|
||||
list-style:none; |
|
||||
font-size:13px; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for headings. |
|
||||
*/ |
|
||||
body.class-declaration-page .summary h2, |
|
||||
body.class-declaration-page .details h2, |
|
||||
body.class-use-page h2, |
|
||||
body.module-declaration-page .block-list h2 { |
|
||||
font-style: italic; |
|
||||
padding:0; |
|
||||
margin:15px 0; |
|
||||
} |
|
||||
body.class-declaration-page .summary h3, |
|
||||
body.class-declaration-page .details h3, |
|
||||
body.class-declaration-page .summary .inherited-list h2 { |
|
||||
background-color:#dee3e9; |
|
||||
border:1px solid #d0d9e0; |
|
||||
margin:0 0 6px -8px; |
|
||||
padding:7px 5px; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for page layout containers. |
|
||||
*/ |
|
||||
main { |
|
||||
clear:both; |
|
||||
padding:10px 20px; |
|
||||
position:relative; |
|
||||
} |
|
||||
dl.notes > dt { |
|
||||
font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; |
|
||||
font-size:12px; |
|
||||
font-weight:bold; |
|
||||
margin:10px 0 0 0; |
|
||||
color:#4E4E4E; |
|
||||
} |
|
||||
dl.notes > dd { |
|
||||
margin:5px 0 10px 0; |
|
||||
font-size:14px; |
|
||||
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; |
|
||||
} |
|
||||
dl.name-value > dt { |
|
||||
margin-left:1px; |
|
||||
font-size:1.1em; |
|
||||
display:inline; |
|
||||
font-weight:bold; |
|
||||
} |
|
||||
dl.name-value > dd { |
|
||||
margin:0 0 0 1px; |
|
||||
font-size:1.1em; |
|
||||
display:inline; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for lists. |
|
||||
*/ |
|
||||
li.circle { |
|
||||
list-style:circle; |
|
||||
} |
|
||||
ul.horizontal li { |
|
||||
display:inline; |
|
||||
font-size:0.9em; |
|
||||
} |
|
||||
div.inheritance { |
|
||||
margin:0; |
|
||||
padding:0; |
|
||||
} |
|
||||
div.inheritance div.inheritance { |
|
||||
margin-left:2em; |
|
||||
} |
|
||||
ul.block-list, |
|
||||
ul.details-list, |
|
||||
ul.member-list, |
|
||||
ul.summary-list { |
|
||||
margin:10px 0 10px 0; |
|
||||
padding:0; |
|
||||
} |
|
||||
ul.block-list > li, |
|
||||
ul.details-list > li, |
|
||||
ul.member-list > li, |
|
||||
ul.summary-list > li { |
|
||||
list-style:none; |
|
||||
margin-bottom:15px; |
|
||||
line-height:1.4; |
|
||||
} |
|
||||
.summary-table dl, .summary-table dl dt, .summary-table dl dd { |
|
||||
margin-top:0; |
|
||||
margin-bottom:1px; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for tables. |
|
||||
*/ |
|
||||
.summary-table { |
|
||||
width:100%; |
|
||||
border-spacing:0; |
|
||||
border-left:1px solid #EEE; |
|
||||
border-right:1px solid #EEE; |
|
||||
border-bottom:1px solid #EEE; |
|
||||
} |
|
||||
.summary-table { |
|
||||
padding:0; |
|
||||
} |
|
||||
.caption { |
|
||||
position:relative; |
|
||||
text-align:left; |
|
||||
background-repeat:no-repeat; |
|
||||
color:#253441; |
|
||||
font-weight:bold; |
|
||||
clear:none; |
|
||||
overflow:hidden; |
|
||||
padding:0px; |
|
||||
padding-top:10px; |
|
||||
padding-left:1px; |
|
||||
margin:0px; |
|
||||
white-space:pre; |
|
||||
} |
|
||||
.caption a:link, .caption a:visited { |
|
||||
color:#1f389c; |
|
||||
} |
|
||||
.caption a:hover, |
|
||||
.caption a:active { |
|
||||
color:#FFFFFF; |
|
||||
} |
|
||||
.caption span { |
|
||||
white-space:nowrap; |
|
||||
padding-top:5px; |
|
||||
padding-left:12px; |
|
||||
padding-right:12px; |
|
||||
padding-bottom:7px; |
|
||||
display:inline-block; |
|
||||
float:left; |
|
||||
background-color:#F8981D; |
|
||||
border: none; |
|
||||
height:16px; |
|
||||
} |
|
||||
|
|
||||
div.table-tabs > button { |
|
||||
border: none; |
|
||||
cursor: pointer; |
|
||||
padding: 5px 12px 7px 12px; |
|
||||
font-weight: bold; |
|
||||
margin-right: 3px; |
|
||||
} |
|
||||
div.table-tabs > button.active-table-tab { |
|
||||
background: #F8981D; |
|
||||
color: #253441; |
|
||||
} |
|
||||
div.table-tabs > button.table-tab { |
|
||||
background: #4D7A97; |
|
||||
color: #FFFFFF; |
|
||||
} |
|
||||
.two-column-summary { |
|
||||
display: grid; |
|
||||
grid-template-columns: minmax(15%, max-content) minmax(15%, auto); |
|
||||
} |
|
||||
.three-column-summary { |
|
||||
display: grid; |
|
||||
grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); |
|
||||
} |
|
||||
.four-column-summary { |
|
||||
display: grid; |
|
||||
grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); |
|
||||
} |
|
||||
@media screen and (max-width: 600px) { |
|
||||
.two-column-summary { |
|
||||
display: grid; |
|
||||
grid-template-columns: 1fr; |
|
||||
} |
|
||||
} |
|
||||
@media screen and (max-width: 800px) { |
|
||||
.three-column-summary { |
|
||||
display: grid; |
|
||||
grid-template-columns: minmax(10%, max-content) minmax(25%, auto); |
|
||||
} |
|
||||
.three-column-summary .col-last { |
|
||||
grid-column-end: span 2; |
|
||||
} |
|
||||
} |
|
||||
@media screen and (max-width: 1000px) { |
|
||||
.four-column-summary { |
|
||||
display: grid; |
|
||||
grid-template-columns: minmax(15%, max-content) minmax(15%, auto); |
|
||||
} |
|
||||
} |
|
||||
.summary-table > div { |
|
||||
text-align:left; |
|
||||
padding: 8px 3px 3px 7px; |
|
||||
} |
|
||||
.col-first, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name { |
|
||||
vertical-align:top; |
|
||||
padding-right:0; |
|
||||
padding-top:8px; |
|
||||
padding-bottom:3px; |
|
||||
} |
|
||||
.table-header { |
|
||||
background:#dee3e9; |
|
||||
font-weight: bold; |
|
||||
} |
|
||||
.col-first, .col-first { |
|
||||
font-size:13px; |
|
||||
} |
|
||||
.col-second, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name, .col-last { |
|
||||
font-size:13px; |
|
||||
} |
|
||||
.col-first, .col-second, .col-constructor-name { |
|
||||
vertical-align:top; |
|
||||
overflow: auto; |
|
||||
} |
|
||||
.col-last { |
|
||||
white-space:normal; |
|
||||
} |
|
||||
.col-first a:link, .col-first a:visited, |
|
||||
.col-second a:link, .col-second a:visited, |
|
||||
.col-first a:link, .col-first a:visited, |
|
||||
.col-second a:link, .col-second a:visited, |
|
||||
.col-constructor-name a:link, .col-constructor-name a:visited, |
|
||||
.col-deprecated-item-name a:link, .col-deprecated-item-name a:visited, |
|
||||
.constant-values-container a:link, .constant-values-container a:visited, |
|
||||
.all-classes-container a:link, .all-classes-container a:visited, |
|
||||
.all-packages-container a:link, .all-packages-container a:visited { |
|
||||
font-weight:bold; |
|
||||
} |
|
||||
.table-sub-heading-color { |
|
||||
background-color:#EEEEFF; |
|
||||
} |
|
||||
.even-row-color, .even-row-color .table-header { |
|
||||
background-color:#FFFFFF; |
|
||||
} |
|
||||
.odd-row-color, .odd-row-color .table-header { |
|
||||
background-color:#EEEEEF; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for contents. |
|
||||
*/ |
|
||||
.deprecated-content { |
|
||||
margin:0; |
|
||||
padding:10px 0; |
|
||||
} |
|
||||
div.block { |
|
||||
font-size:14px; |
|
||||
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; |
|
||||
} |
|
||||
.col-last div { |
|
||||
padding-top:0; |
|
||||
} |
|
||||
.col-last a { |
|
||||
padding-bottom:3px; |
|
||||
} |
|
||||
.module-signature, |
|
||||
.package-signature, |
|
||||
.type-signature, |
|
||||
.member-signature { |
|
||||
font-family:'DejaVu Sans Mono', monospace; |
|
||||
font-size:14px; |
|
||||
margin:14px 0; |
|
||||
white-space: pre-wrap; |
|
||||
} |
|
||||
.module-signature, |
|
||||
.package-signature, |
|
||||
.type-signature { |
|
||||
margin-top: 0; |
|
||||
} |
|
||||
.member-signature .type-parameters-long, |
|
||||
.member-signature .parameters, |
|
||||
.member-signature .exceptions { |
|
||||
display: inline-block; |
|
||||
vertical-align: top; |
|
||||
white-space: pre; |
|
||||
} |
|
||||
.member-signature .type-parameters { |
|
||||
white-space: normal; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for formatting effect. |
|
||||
*/ |
|
||||
.source-line-no { |
|
||||
color:green; |
|
||||
padding:0 30px 0 0; |
|
||||
} |
|
||||
h1.hidden { |
|
||||
visibility:hidden; |
|
||||
overflow:hidden; |
|
||||
font-size:10px; |
|
||||
} |
|
||||
.block { |
|
||||
display:block; |
|
||||
margin:0 10px 5px 0; |
|
||||
color:#474747; |
|
||||
} |
|
||||
.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, |
|
||||
.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, |
|
||||
.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link { |
|
||||
font-weight:bold; |
|
||||
} |
|
||||
.deprecation-comment, .help-footnote, .interface-name { |
|
||||
font-style:italic; |
|
||||
} |
|
||||
.deprecation-block { |
|
||||
font-size:14px; |
|
||||
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; |
|
||||
border-style:solid; |
|
||||
border-width:thin; |
|
||||
border-radius:10px; |
|
||||
padding:10px; |
|
||||
margin-bottom:10px; |
|
||||
margin-right:10px; |
|
||||
display:inline-block; |
|
||||
} |
|
||||
div.block div.deprecation-comment, div.block div.block span.emphasized-phrase, |
|
||||
div.block div.block span.interface-name { |
|
||||
font-style:normal; |
|
||||
} |
|
||||
/* |
|
||||
* Styles specific to HTML5 elements. |
|
||||
*/ |
|
||||
main, nav, header, footer, section { |
|
||||
display:block; |
|
||||
} |
|
||||
/* |
|
||||
* Styles for javadoc search. |
|
||||
*/ |
|
||||
.ui-autocomplete-category { |
|
||||
font-weight:bold; |
|
||||
font-size:15px; |
|
||||
padding:7px 0 7px 3px; |
|
||||
background-color:#4D7A97; |
|
||||
color:#FFFFFF; |
|
||||
} |
|
||||
.result-item { |
|
||||
font-size:13px; |
|
||||
} |
|
||||
.ui-autocomplete { |
|
||||
max-height:85%; |
|
||||
max-width:65%; |
|
||||
overflow-y:scroll; |
|
||||
overflow-x:scroll; |
|
||||
white-space:nowrap; |
|
||||
box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); |
|
||||
} |
|
||||
ul.ui-autocomplete { |
|
||||
position:fixed; |
|
||||
z-index:999999; |
|
||||
} |
|
||||
ul.ui-autocomplete li { |
|
||||
float:left; |
|
||||
clear:both; |
|
||||
width:100%; |
|
||||
} |
|
||||
.result-highlight { |
|
||||
font-weight:bold; |
|
||||
} |
|
||||
#search { |
|
||||
background-image:url('resources/glass.png'); |
|
||||
background-size:13px; |
|
||||
background-repeat:no-repeat; |
|
||||
background-position:2px 3px; |
|
||||
padding-left:20px; |
|
||||
position:relative; |
|
||||
right:-18px; |
|
||||
width:400px; |
|
||||
} |
|
||||
#reset { |
|
||||
background-color: rgb(255,255,255); |
|
||||
background-image:url('resources/x.png'); |
|
||||
background-position:center; |
|
||||
background-repeat:no-repeat; |
|
||||
background-size:12px; |
|
||||
border:0 none; |
|
||||
width:16px; |
|
||||
height:16px; |
|
||||
position:relative; |
|
||||
left:-4px; |
|
||||
top:-4px; |
|
||||
font-size:0px; |
|
||||
} |
|
||||
.watermark { |
|
||||
color:#545454; |
|
||||
} |
|
||||
.search-tag-desc-result { |
|
||||
font-style:italic; |
|
||||
font-size:11px; |
|
||||
} |
|
||||
.search-tag-holder-result { |
|
||||
font-style:italic; |
|
||||
font-size:12px; |
|
||||
} |
|
||||
.search-tag-result:target { |
|
||||
background-color:yellow; |
|
||||
} |
|
||||
.module-graph span { |
|
||||
display:none; |
|
||||
position:absolute; |
|
||||
} |
|
||||
.module-graph:hover span { |
|
||||
display:block; |
|
||||
margin: -100px 0 0 100px; |
|
||||
z-index: 1; |
|
||||
} |
|
||||
.inherited-list { |
|
||||
margin: 10px 0 10px 0; |
|
||||
} |
|
||||
section.description { |
|
||||
line-height: 1.4; |
|
||||
} |
|
||||
.summary section[class$="-summary"], .details section[class$="-details"], |
|
||||
.class-uses .detail, .serialized-class-details { |
|
||||
padding: 0px 20px 5px 10px; |
|
||||
border: 1px solid #ededed; |
|
||||
background-color: #f8f8f8; |
|
||||
} |
|
||||
.inherited-list, section[class$="-details"] .detail { |
|
||||
padding:0 0 5px 8px; |
|
||||
background-color:#ffffff; |
|
||||
border:none; |
|
||||
} |
|
||||
.vertical-separator { |
|
||||
padding: 0 5px; |
|
||||
} |
|
||||
ul.help-section-list { |
|
||||
margin: 0; |
|
||||
} |
|
||||
/* |
|
||||
* Indicator icon for external links. |
|
||||
*/ |
|
||||
main a[href*="://"]::after { |
|
||||
content:""; |
|
||||
display:inline-block; |
|
||||
background-image:url('data:image/svg+xml; utf8, \ |
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\ |
|
||||
<path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \ |
|
||||
132-240 240 120 120 240-240 132 132V0z" fill="%234a6782"/>\ |
|
||||
</svg>'); |
|
||||
background-size:100% 100%; |
|
||||
width:7px; |
|
||||
height:7px; |
|
||||
margin-left:2px; |
|
||||
margin-bottom:4px; |
|
||||
} |
|
||||
main a[href*="://"]:hover::after, |
|
||||
main a[href*="://"]:focus::after { |
|
||||
background-image:url('data:image/svg+xml; utf8, \ |
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\ |
|
||||
<path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \ |
|
||||
132-240 240 120 120 240-240 132 132V0z" fill="%23bb7a2a"/>\ |
|
||||
</svg>'); |
|
||||
} |
|
||||
|
|
||||
/* |
|
||||
* Styles for user-provided tables. |
|
||||
* |
|
||||
* borderless: |
|
||||
* No borders, vertical margins, styled caption. |
|
||||
* This style is provided for use with existing doc comments. |
|
||||
* In general, borderless tables should not be used for layout purposes. |
|
||||
* |
|
||||
* plain: |
|
||||
* Plain borders around table and cells, vertical margins, styled caption. |
|
||||
* Best for small tables or for complex tables for tables with cells that span |
|
||||
* rows and columns, when the "striped" style does not work well. |
|
||||
* |
|
||||
* striped: |
|
||||
* Borders around the table and vertical borders between cells, striped rows, |
|
||||
* vertical margins, styled caption. |
|
||||
* Best for tables that have a header row, and a body containing a series of simple rows. |
|
||||
*/ |
|
||||
|
|
||||
table.borderless, |
|
||||
table.plain, |
|
||||
table.striped { |
|
||||
margin-top: 10px; |
|
||||
margin-bottom: 10px; |
|
||||
} |
|
||||
table.borderless > caption, |
|
||||
table.plain > caption, |
|
||||
table.striped > caption { |
|
||||
font-weight: bold; |
|
||||
font-size: smaller; |
|
||||
} |
|
||||
table.borderless th, table.borderless td, |
|
||||
table.plain th, table.plain td, |
|
||||
table.striped th, table.striped td { |
|
||||
padding: 2px 5px; |
|
||||
} |
|
||||
table.borderless, |
|
||||
table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, |
|
||||
table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { |
|
||||
border: none; |
|
||||
} |
|
||||
table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { |
|
||||
background-color: transparent; |
|
||||
} |
|
||||
table.plain { |
|
||||
border-collapse: collapse; |
|
||||
border: 1px solid black; |
|
||||
} |
|
||||
table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { |
|
||||
background-color: transparent; |
|
||||
} |
|
||||
table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, |
|
||||
table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { |
|
||||
border: 1px solid black; |
|
||||
} |
|
||||
table.striped { |
|
||||
border-collapse: collapse; |
|
||||
border: 1px solid black; |
|
||||
} |
|
||||
table.striped > thead { |
|
||||
background-color: #E3E3E3; |
|
||||
} |
|
||||
table.striped > thead > tr > th, table.striped > thead > tr > td { |
|
||||
border: 1px solid black; |
|
||||
} |
|
||||
table.striped > tbody > tr:nth-child(even) { |
|
||||
background-color: #EEE |
|
||||
} |
|
||||
table.striped > tbody > tr:nth-child(odd) { |
|
||||
background-color: #FFF |
|
||||
} |
|
||||
table.striped > tbody > tr > th, table.striped > tbody > tr > td { |
|
||||
border-left: 1px solid black; |
|
||||
border-right: 1px solid black; |
|
||||
} |
|
||||
table.striped > tbody > tr > th { |
|
||||
font-weight: normal; |
|
||||
} |
|
||||
/** |
|
||||
* Tweak font sizes and paddings for small screens. |
|
||||
*/ |
|
||||
@media screen and (max-width: 1050px) { |
|
||||
#search { |
|
||||
width: 300px; |
|
||||
} |
|
||||
} |
|
||||
@media screen and (max-width: 800px) { |
|
||||
#search { |
|
||||
width: 200px; |
|
||||
} |
|
||||
.top-nav, |
|
||||
.bottom-nav { |
|
||||
font-size: 11px; |
|
||||
padding-top: 6px; |
|
||||
} |
|
||||
.sub-nav { |
|
||||
font-size: 11px; |
|
||||
} |
|
||||
.about-language { |
|
||||
padding-right: 16px; |
|
||||
} |
|
||||
ul.nav-list li, |
|
||||
.sub-nav .nav-list-search { |
|
||||
padding: 6px; |
|
||||
} |
|
||||
ul.sub-nav-list li { |
|
||||
padding-top: 5px; |
|
||||
} |
|
||||
main { |
|
||||
padding: 10px; |
|
||||
} |
|
||||
.summary section[class$="-summary"], .details section[class$="-details"], |
|
||||
.class-uses .detail, .serialized-class-details { |
|
||||
padding: 0 8px 5px 8px; |
|
||||
} |
|
||||
body { |
|
||||
-webkit-text-size-adjust: none; |
|
||||
} |
|
||||
} |
|
||||
@media screen and (max-width: 500px) { |
|
||||
#search { |
|
||||
width: 150px; |
|
||||
} |
|
||||
.top-nav, |
|
||||
.bottom-nav { |
|
||||
font-size: 10px; |
|
||||
} |
|
||||
.sub-nav { |
|
||||
font-size: 10px; |
|
||||
} |
|
||||
.about-language { |
|
||||
font-size: 10px; |
|
||||
padding-right: 12px; |
|
||||
} |
|
||||
} |
|
@ -1 +0,0 @@ |
|||||
tagSearchIndex = [];updateSearchResults(); |
|
@ -1 +0,0 @@ |
|||||
typeSearchIndex = [{"l":"All Classes","u":"allclasses-index.html"},{"p":"gui","l":"MainGui"}];updateSearchResults(); |
|
@ -1,228 +0,0 @@ |
|||||
package gui; |
|
||||
|
|
||||
|
|
||||
import javax.swing.*; |
|
||||
import java.awt.event.*; |
|
||||
import java.util.*; |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* a simple GUI that simulates a slow database for name, email entries. For details see constructor {@link MainGui#MainGui() }. |
|
||||
* This class provides a simple static {@link #main(String[])} to start/run the GUI window. |
|
||||
*/ |
|
||||
public class MainGui { |
|
||||
|
|
||||
private JFrame frame = null; |
|
||||
private JPanel cp = new JPanel(); |
|
||||
private JPanel topPanel = new JPanel(); |
|
||||
private JPanel middlePanel = new JPanel(); |
|
||||
private JPanel bottomPanel = new JPanel(); |
|
||||
|
|
||||
private JTextField tfName = new JTextField("", 20); |
|
||||
private JTextField tfMail = new JTextField("", 20); |
|
||||
|
|
||||
private JButton btBack = new JButton("<--"); |
|
||||
private JButton btForward = new JButton("-->"); |
|
||||
private JButton btAdd = new JButton("Neu"); |
|
||||
private ArrayList<DBEntry> database = new ArrayList<DBEntry>(); |
|
||||
|
|
||||
private int index = 0; |
|
||||
|
|
||||
private JMenuItem menuNew = new JMenuItem("Neu"); |
|
||||
private JMenuItem menuEnd = new JMenuItem("Ende"); |
|
||||
|
|
||||
/** inner class representing one entry to DB */ |
|
||||
private class DBEntry { |
|
||||
String name; |
|
||||
String email; |
|
||||
} |
|
||||
|
|
||||
/** inner class to be used for ActionListener back */ |
|
||||
private class BackAction implements ActionListener { |
|
||||
@Override |
|
||||
public void actionPerformed(ActionEvent e) { |
|
||||
// always save current entry before loading next |
|
||||
DBEntry entry = new DBEntry(); // we create a new DBEntry object instead manipulating the |
|
||||
// existing one to simulate real new reference to a new object. |
|
||||
entry.name = tfName.getText(); |
|
||||
entry.email = tfMail.getText(); |
|
||||
saveFieldsToDB(entry, index); |
|
||||
|
|
||||
if (index >= 1) { |
|
||||
index--; |
|
||||
DBEntry entryLoaded = getEntryFromDB(index); |
|
||||
tfName.setText(entryLoaded.name); |
|
||||
tfMail.setText(entryLoaded.email); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** inner class to be used for ActionListener forward */ |
|
||||
private class ForwardAction implements ActionListener { |
|
||||
@Override |
|
||||
public void actionPerformed(ActionEvent e) { |
|
||||
|
|
||||
// always save current entry before loading next |
|
||||
DBEntry entry = new DBEntry(); // we create a new DBEntry object instead manipulating the |
|
||||
// existing one to simulate real new reference to a new object. |
|
||||
entry.name = tfName.getText(); |
|
||||
entry.email = tfMail.getText(); |
|
||||
saveFieldsToDB(entry, index); |
|
||||
|
|
||||
if (index < database.size() - 1) { |
|
||||
index++; |
|
||||
DBEntry entryLoaded = getEntryFromDB(index); |
|
||||
tfName.setText(entryLoaded.name); |
|
||||
tfMail.setText(entryLoaded.email); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
/** inner class to be used for ActionListener exit program */ |
|
||||
private class EndAction implements ActionListener { |
|
||||
|
|
||||
@Override |
|
||||
public void actionPerformed(ActionEvent e) { |
|
||||
System.exit(0); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/** inner class to be used for ActionListener add */ |
|
||||
private class AddAction implements ActionListener { |
|
||||
|
|
||||
@Override |
|
||||
public void actionPerformed(ActionEvent e) { |
|
||||
// always save current entry before loading next |
|
||||
DBEntry entry = new DBEntry(); // we create a new DBEntry object instead manipulating the |
|
||||
// existing one to simulate real new reference to a new object. |
|
||||
entry.name = tfName.getText(); |
|
||||
entry.email = tfMail.getText(); |
|
||||
saveFieldsToDB(entry, index); |
|
||||
|
|
||||
addEmptyEntryToDB(); |
|
||||
index = database.size() - 1; |
|
||||
DBEntry entryLoaded = getEntryFromDB(index); |
|
||||
tfName.setText(entryLoaded.name); |
|
||||
tfMail.setText(entryLoaded.email); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
/** manipulation of DB and simulates slow connection by Thread.wait() */ |
|
||||
private void saveFieldsToDB(DBEntry entry, int index) { |
|
||||
database.set(index, entry); |
|
||||
doWait(); |
|
||||
} |
|
||||
|
|
||||
/** add an empty entry at end of db (quickly) */ |
|
||||
private void addEmptyEntryToDB() { |
|
||||
DBEntry dbEntry = new DBEntry(); |
|
||||
dbEntry.name = ""; |
|
||||
dbEntry.email = ""; |
|
||||
database.add(dbEntry); |
|
||||
} |
|
||||
|
|
||||
/** reads from DB (quickly) */ |
|
||||
private DBEntry getEntryFromDB(int index) { |
|
||||
return this.database.get(index); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
|
|
||||
/** performing a Thread.wait() for 3 sec */ |
|
||||
private void doWait() { |
|
||||
try { |
|
||||
synchronized (database) { |
|
||||
database.wait(3 * 1000); // simulates "slow" database by waiting 3sec before this Thread |
|
||||
// continues. wait needs monitor of the object, thus synchronized |
|
||||
} |
|
||||
} catch (InterruptedException e1) { |
|
||||
// intentionally blank; wait did not work or was earlier interrupted. No problem for us. |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* constructor that configures and shows the GUI window. It contains two text inputs for name and |
|
||||
* email address and three buttons BACK, ADD and FORWARD. For each button own inner classes are |
|
||||
* defined as {@link ActionListener}: {@link BackAction}, {@link ForwardAction }, {@link AddAction |
|
||||
* }, which all three call the {@link #doWait()} method, which simulates a slow database. Thus, it |
|
||||
* will have an effect to move the code of the ActionListeners to extra Threads in order to keep |
|
||||
* the GUI responsive. |
|
||||
* |
|
||||
* @see Runnable |
|
||||
* @see Thread |
|
||||
* @see ActionListener |
|
||||
* |
|
||||
*/ |
|
||||
public MainGui() { |
|
||||
|
|
||||
// dummy data to "database" |
|
||||
DBEntry e1 = new DBEntry(); |
|
||||
e1.name = "Dummy1"; |
|
||||
e1.email = "dummy@test.de"; |
|
||||
DBEntry e2 = new DBEntry(); |
|
||||
e2.name = "Dummy2"; |
|
||||
e2.email = "dummy2@somewhere.com"; |
|
||||
this.database.add(e1); |
|
||||
this.database.add(e2); |
|
||||
|
|
||||
// setup the GUI |
|
||||
this.frame = new JFrame("SimpleDB"); |
|
||||
this.frame.setContentPane(this.cp); |
|
||||
this.cp.setLayout(new BoxLayout(this.cp, BoxLayout.Y_AXIS)); |
|
||||
|
|
||||
this.topPanel.add(new JLabel("Name")); |
|
||||
this.topPanel.add(this.tfName); |
|
||||
this.middlePanel.add(new JLabel("E-Mail-Adresse")); |
|
||||
this.middlePanel.add(this.tfMail); |
|
||||
this.cp.add(this.topPanel); |
|
||||
this.cp.add(this.middlePanel); |
|
||||
|
|
||||
this.bottomPanel.add(this.btBack); |
|
||||
this.bottomPanel.add(this.btAdd); |
|
||||
this.bottomPanel.add(this.btForward); |
|
||||
this.cp.add(this.bottomPanel); |
|
||||
|
|
||||
// set menu |
|
||||
JMenuBar jmb = new JMenuBar(); |
|
||||
JMenu menu = new JMenu("Datei"); |
|
||||
this.frame.setJMenuBar(jmb); |
|
||||
jmb.add(menu); |
|
||||
menu.add(menuNew); |
|
||||
menu.addSeparator(); |
|
||||
menu.add(menuEnd); |
|
||||
|
|
||||
// register all ActionListeners to GUI components |
|
||||
this.btBack.addActionListener(new BackAction()); |
|
||||
this.btForward.addActionListener(new ForwardAction()); |
|
||||
|
|
||||
ActionListener actionAdd = new AddAction(); |
|
||||
this.btAdd.addActionListener(actionAdd); |
|
||||
this.menuNew.addActionListener(actionAdd); |
|
||||
|
|
||||
menuEnd.addActionListener(new EndAction()); |
|
||||
|
|
||||
// initially show current db fields (of index 0) |
|
||||
DBEntry entry = getEntryFromDB(index); |
|
||||
tfName.setText(entry.name); |
|
||||
tfMail.setText(entry.email); |
|
||||
|
|
||||
|
|
||||
this.frame.setSize(800, 200); |
|
||||
this.frame.setVisible(true); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* a simple main which only creates an instance of {@link MainGui}. |
|
||||
* |
|
||||
* @param args cmd line arguments (ignored) |
|
||||
*/ |
|
||||
public static void main(String[] args) { |
|
||||
new MainGui(); |
|
||||
} |
|
||||
} |
|
||||
|
|