2018-09-02 13:36:49 +02:00
package it.cavallium.warppi.gui.screens ;
2016-09-02 20:32:37 +02:00
2019-02-27 23:29:03 +01:00
import it.cavallium.warppi.WarpPI ;
2019-04-09 22:38:22 +02:00
import it.cavallium.warppi.device.display.DisplayOutputDevice ;
2018-09-02 13:36:49 +02:00
import it.cavallium.warppi.StaticVars ;
import it.cavallium.warppi.event.KeyPressedEvent ;
2018-10-05 16:00:15 +02:00
import it.cavallium.warppi.gui.HistoryBehavior ;
2016-09-02 20:32:37 +02:00
2018-03-29 19:20:28 +02:00
public class SolveForXScreen extends Screen {
2016-09-02 20:32:37 +02:00
@SuppressWarnings ( " unused " )
2017-01-31 22:29:49 +01:00
private final MathInputScreen es ;
2016-09-02 20:32:37 +02:00
2018-09-22 11:17:30 +02:00
public SolveForXScreen ( final MathInputScreen es ) {
2016-09-02 20:32:37 +02:00
super ( ) ;
2018-10-05 16:00:15 +02:00
historyBehavior = HistoryBehavior . DONT_KEEP_IN_HISTORY ;
2017-01-31 22:29:49 +01:00
2016-09-02 20:32:37 +02:00
this . es = es ;
}
2017-01-31 22:29:49 +01:00
2016-09-02 20:32:37 +02:00
@Override
2017-01-31 22:29:49 +01:00
public void created ( ) throws InterruptedException { }
2016-09-02 20:32:37 +02:00
@Override
2018-03-17 00:09:40 +01:00
public void initialized ( ) throws InterruptedException { }
2016-09-02 20:32:37 +02:00
2018-10-23 17:28:05 +02:00
@Override
public void graphicInitialized ( ) throws InterruptedException { }
2016-09-02 20:32:37 +02:00
@Override
public void render ( ) {
2019-04-09 22:38:22 +02:00
DisplayOutputDevice display = d . display ;
2019-02-27 23:29:03 +01:00
WarpPI . INSTANCE . getHardwareDevice ( ) . getDisplayManager ( ) . renderer . glColor4i ( 0 , 0 , 0 , 64 ) ;
2019-04-09 22:38:22 +02:00
WarpPI . INSTANCE . getHardwareDevice ( ) . getDisplayManager ( ) . renderer . glDrawStringCenter ( display . getDisplaySize ( ) [ 0 ] / 2 + 1 , display . getDisplaySize ( ) [ 1 ] / 4 , " WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE. " ) ;
WarpPI . INSTANCE . getHardwareDevice ( ) . getDisplayManager ( ) . renderer . glDrawStringCenter ( display . getDisplaySize ( ) [ 0 ] / 2 , display . getDisplaySize ( ) [ 1 ] / 4 + 1 , " WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE. " ) ;
WarpPI . INSTANCE . getHardwareDevice ( ) . getDisplayManager ( ) . renderer . glDrawStringCenter ( display . getDisplaySize ( ) [ 0 ] / 2 + 1 , display . getDisplaySize ( ) [ 1 ] / 4 + 1 , " WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE. " ) ;
2019-02-27 23:29:03 +01:00
WarpPI . INSTANCE . getHardwareDevice ( ) . getDisplayManager ( ) . renderer . glColor3i ( 255 , 0 , 0 ) ;
2019-04-09 22:38:22 +02:00
WarpPI . INSTANCE . getHardwareDevice ( ) . getDisplayManager ( ) . renderer . glDrawStringCenter ( display . getDisplaySize ( ) [ 0 ] / 2 , display . getDisplaySize ( ) [ 1 ] / 4 , " WORK IN PROGRESS. THIS SCREEN MUST HAVE A GUI TO SELECT THE VARIABLE TO SOLVE. " ) ;
2016-09-02 20:32:37 +02:00
}
@Override
2018-09-22 11:17:30 +02:00
public void beforeRender ( final float dt ) {
2017-01-31 22:29:49 +01:00
2016-09-02 20:32:37 +02:00
}
@Override
public boolean mustBeRefreshed ( ) {
return true ;
}
@Override
2018-09-22 11:17:30 +02:00
public boolean onKeyPressed ( final KeyPressedEvent k ) {
2018-06-30 18:46:53 +02:00
switch ( k . getKey ( ) ) {
2016-09-02 20:32:37 +02:00
case LETTER_X :
2017-02-02 12:51:05 +01:00
//TODO: far funzionare questa parte
2018-09-11 19:19:24 +02:00
/ * Engine . INSTANCE . getHardwareDevice ( ) . getDisplayManager ( ) . goBack ( ) ;
2016-09-02 20:32:37 +02:00
try {
2017-01-17 22:32:40 +01:00
es . calc . solveExpression ( 'X' ) ;
2017-01-31 22:29:49 +01:00
} catch ( final Error e ) {
2018-09-11 19:19:24 +02:00
final Screen scr = Engine . INSTANCE . getHardwareDevice ( ) . getDisplayManager ( ) . getScreen ( ) ;
2016-12-04 22:22:16 +01:00
if ( scr instanceof MathInputScreen ) {
2017-01-31 22:29:49 +01:00
final MathInputScreen escr = ( MathInputScreen ) scr ;
2016-09-02 20:32:37 +02:00
escr . errorLevel = 1 ;
2017-01-17 22:32:40 +01:00
//escr.err2 = e; //TODO: What is this variable, and why it doesn't exists?
2016-09-02 20:32:37 +02:00
} else {
e . printStackTrace ( ) ;
}
}
2017-02-02 12:51:05 +01:00
* /
2016-09-02 20:32:37 +02:00
return true ;
default :
return false ;
}
}
2018-10-04 12:38:54 +02:00
@Override
public String getSessionTitle ( ) {
return " Solve for X " ;
}
2016-09-02 20:32:37 +02:00
}