JScratch
Loading...
Searching...
No Matches
com.jscratch.ui.CodeWorkspace Class Reference
Inheritance diagram for com.jscratch.ui.CodeWorkspace:

Classes

class  BlockSnippet
class  SlotRange
class  CustomParser
class  BlockTransferable
class  RestrictedTransferHandler

Public Member Functions

 CodeWorkspace (Project project, Runnable onAutoCompile)
void setCompilationErrors (List< CompilationResult.CompilationError > errors)
void loadSpriteCode (SpriteData sprite)
void saveCurrentCode ()

Static Public Attributes

static final DataFlavor BLOCK_FLAVOR = new DataFlavor(BlockSnippet.class, "BlockSnippet")

Private Member Functions

void triggerAutoCompile ()
void updateHoverHighlight (Point p)
void clearHoverHighlight ()
void clearDropHighlight ()
void applyDropHighlight (SlotRange slot)
void loadLiteralBlocks ()
JComponent createBlockUI (final BlockSnippet block)
Color getCategoryColor (String category)
void scheduleSlotRefresh ()
void refreshSlots ()
void setupAutocomplete ()
void addImportPathCompletions (CompletionProvider provider, List< Completion > list, String line, String prefix)
String getExpressionBeforeDot (String text, int dotIdx)
boolean isClass (String expr)
Class<?> resolveType (String expr)
String findVariableType (String varName)
void addTypeMembers (CompletionProvider provider, List< Completion > list, Class<?> clazz, boolean staticOnly)
boolean isInStaticContext ()
void addGlobalCompletions (CompletionProvider provider, List< Completion > list)
String createMethodDesc (Method m)

Private Attributes

RSyntaxTextArea codeEditor
JTabbedPane paletteTabs
Project project
SpriteData currentSprite
AutoCompletion autoCompletion
final List< SlotRangecurrentSlots = new ArrayList<>()
Object activeHoverHighlight
Object activeDropHighlight
final Highlighter.HighlightPainter slotPainter
final Highlighter.HighlightPainter dropPainter
boolean isUpdatingSlots = false
Timer autoCompileTimer
Runnable onAutoCompile
CustomParser errorParser
String lastCompiledText = ""

Detailed Description

Definition at line 45 of file CodeWorkspace.java.

Constructor & Destructor Documentation

◆ CodeWorkspace()

com.jscratch.ui.CodeWorkspace.CodeWorkspace ( Project project,
Runnable onAutoCompile )

Definition at line 110 of file CodeWorkspace.java.

Member Function Documentation

◆ addGlobalCompletions()

void com.jscratch.ui.CodeWorkspace.addGlobalCompletions ( CompletionProvider provider,
List< Completion > list )
private

Definition at line 751 of file CodeWorkspace.java.

◆ addImportPathCompletions()

void com.jscratch.ui.CodeWorkspace.addImportPathCompletions ( CompletionProvider provider,
List< Completion > list,
String line,
String prefix )
private

Definition at line 569 of file CodeWorkspace.java.

◆ addTypeMembers()

void com.jscratch.ui.CodeWorkspace.addTypeMembers ( CompletionProvider provider,
List< Completion > list,
Class<?> clazz,
boolean staticOnly )
private

Definition at line 672 of file CodeWorkspace.java.

◆ applyDropHighlight()

void com.jscratch.ui.CodeWorkspace.applyDropHighlight ( SlotRange slot)
private

Definition at line 250 of file CodeWorkspace.java.

◆ clearDropHighlight()

void com.jscratch.ui.CodeWorkspace.clearDropHighlight ( )
private

Definition at line 243 of file CodeWorkspace.java.

◆ clearHoverHighlight()

void com.jscratch.ui.CodeWorkspace.clearHoverHighlight ( )
private

Definition at line 236 of file CodeWorkspace.java.

◆ createBlockUI()

JComponent com.jscratch.ui.CodeWorkspace.createBlockUI ( final BlockSnippet block)
private

Definition at line 299 of file CodeWorkspace.java.

◆ createMethodDesc()

String com.jscratch.ui.CodeWorkspace.createMethodDesc ( Method m)
private

Definition at line 792 of file CodeWorkspace.java.

◆ findVariableType()

String com.jscratch.ui.CodeWorkspace.findVariableType ( String varName)
private

Definition at line 659 of file CodeWorkspace.java.

◆ getCategoryColor()

Color com.jscratch.ui.CodeWorkspace.getCategoryColor ( String category)
private

Definition at line 320 of file CodeWorkspace.java.

◆ getExpressionBeforeDot()

String com.jscratch.ui.CodeWorkspace.getExpressionBeforeDot ( String text,
int dotIdx )
private

Definition at line 607 of file CodeWorkspace.java.

◆ isClass()

boolean com.jscratch.ui.CodeWorkspace.isClass ( String expr)
private

Definition at line 617 of file CodeWorkspace.java.

◆ isInStaticContext()

boolean com.jscratch.ui.CodeWorkspace.isInStaticContext ( )
private

Definition at line 730 of file CodeWorkspace.java.

◆ loadLiteralBlocks()

void com.jscratch.ui.CodeWorkspace.loadLiteralBlocks ( )
private

Definition at line 257 of file CodeWorkspace.java.

◆ loadSpriteCode()

void com.jscratch.ui.CodeWorkspace.loadSpriteCode ( SpriteData sprite)

Definition at line 495 of file CodeWorkspace.java.

◆ refreshSlots()

void com.jscratch.ui.CodeWorkspace.refreshSlots ( )
private

Definition at line 343 of file CodeWorkspace.java.

◆ resolveType()

Class<?> com.jscratch.ui.CodeWorkspace.resolveType ( String expr)
private

Definition at line 631 of file CodeWorkspace.java.

◆ saveCurrentCode()

void com.jscratch.ui.CodeWorkspace.saveCurrentCode ( )

Definition at line 505 of file CodeWorkspace.java.

◆ scheduleSlotRefresh()

void com.jscratch.ui.CodeWorkspace.scheduleSlotRefresh ( )
private

Definition at line 338 of file CodeWorkspace.java.

◆ setCompilationErrors()

void com.jscratch.ui.CodeWorkspace.setCompilationErrors ( List< CompilationResult.CompilationError > errors)

Definition at line 181 of file CodeWorkspace.java.

◆ setupAutocomplete()

void com.jscratch.ui.CodeWorkspace.setupAutocomplete ( )
private

Definition at line 509 of file CodeWorkspace.java.

◆ triggerAutoCompile()

void com.jscratch.ui.CodeWorkspace.triggerAutoCompile ( )
private

Definition at line 176 of file CodeWorkspace.java.

◆ updateHoverHighlight()

void com.jscratch.ui.CodeWorkspace.updateHoverHighlight ( Point p)
private

Definition at line 218 of file CodeWorkspace.java.

Member Data Documentation

◆ activeDropHighlight

Object com.jscratch.ui.CodeWorkspace.activeDropHighlight
private

Definition at line 54 of file CodeWorkspace.java.

◆ activeHoverHighlight

Object com.jscratch.ui.CodeWorkspace.activeHoverHighlight
private

Definition at line 53 of file CodeWorkspace.java.

◆ autoCompileTimer

Timer com.jscratch.ui.CodeWorkspace.autoCompileTimer
private

Definition at line 82 of file CodeWorkspace.java.

◆ autoCompletion

AutoCompletion com.jscratch.ui.CodeWorkspace.autoCompletion
private

Definition at line 50 of file CodeWorkspace.java.

◆ BLOCK_FLAVOR

final DataFlavor com.jscratch.ui.CodeWorkspace.BLOCK_FLAVOR = new DataFlavor(BlockSnippet.class, "BlockSnippet")
static

Definition at line 87 of file CodeWorkspace.java.

◆ codeEditor

RSyntaxTextArea com.jscratch.ui.CodeWorkspace.codeEditor
private

Definition at line 46 of file CodeWorkspace.java.

◆ currentSlots

final List<SlotRange> com.jscratch.ui.CodeWorkspace.currentSlots = new ArrayList<>()
private

Definition at line 52 of file CodeWorkspace.java.

◆ currentSprite

SpriteData com.jscratch.ui.CodeWorkspace.currentSprite
private

Definition at line 49 of file CodeWorkspace.java.

◆ dropPainter

final Highlighter.HighlightPainter com.jscratch.ui.CodeWorkspace.dropPainter
private
Initial value:
= new Highlighter.HighlightPainter() {
@Override public void paint(Graphics g, int p0, int p1, Shape bounds, JTextComponent c) {
try {
Rectangle r0 = c.modelToView(p0);
Rectangle r1 = c.modelToView(p1);
if (r0 == null || r1 == null) return;
g.setColor(new Color(0, 255, 0, 50));
g.fillRect(0, r0.y, c.getWidth(), (r1.y + r1.height) - r0.y);
} catch (Exception e) {}
}
}

Definition at line 68 of file CodeWorkspace.java.

◆ errorParser

CustomParser com.jscratch.ui.CodeWorkspace.errorParser
private

Definition at line 84 of file CodeWorkspace.java.

◆ isUpdatingSlots

boolean com.jscratch.ui.CodeWorkspace.isUpdatingSlots = false
private

Definition at line 80 of file CodeWorkspace.java.

◆ lastCompiledText

String com.jscratch.ui.CodeWorkspace.lastCompiledText = ""
private

Definition at line 85 of file CodeWorkspace.java.

◆ onAutoCompile

Runnable com.jscratch.ui.CodeWorkspace.onAutoCompile
private

Definition at line 83 of file CodeWorkspace.java.

◆ paletteTabs

JTabbedPane com.jscratch.ui.CodeWorkspace.paletteTabs
private

Definition at line 47 of file CodeWorkspace.java.

◆ project

Project com.jscratch.ui.CodeWorkspace.project
private

Definition at line 48 of file CodeWorkspace.java.

◆ slotPainter

final Highlighter.HighlightPainter com.jscratch.ui.CodeWorkspace.slotPainter
private
Initial value:
= new Highlighter.HighlightPainter() {
@Override public void paint(Graphics g, int p0, int p1, Shape bounds, JTextComponent c) {
try {
Rectangle r0 = c.modelToView(p0);
Rectangle r1 = c.modelToView(p1);
if (r0 == null || r1 == null) return;
g.setColor(new Color(0, 120, 215, 30));
g.fillRect(0, r0.y, c.getWidth(), (r1.y + r1.height) - r0.y);
} catch (Exception e) {}
}
}

Definition at line 56 of file CodeWorkspace.java.


The documentation for this class was generated from the following file: