added input defaulting and error alerts
This commit is contained in:
parent
7a14183696
commit
82ad8f8023
|
@ -50,13 +50,20 @@
|
||||||
- (IBAction)setTime:(id)sender
|
- (IBAction)setTime:(id)sender
|
||||||
{
|
{
|
||||||
CelestiaSimulation *sim;
|
CelestiaSimulation *sim;
|
||||||
sim = [[CelestiaAppCore sharedAppCore] simulation];
|
|
||||||
// NSLog( [dateField stringValue] );
|
|
||||||
NSString* fmtString = @"%m/%d/%Y %H:%M:%S";
|
|
||||||
NSString* dateString = [dateField stringValue];
|
NSString* dateString = [dateField stringValue];
|
||||||
NSString* timeString = [timeField stringValue];
|
NSString* timeString = [timeField stringValue];
|
||||||
|
NSString* inputString = [ [ dateString stringByAppendingString: @" " ]
|
||||||
|
stringByAppendingString: timeString ];
|
||||||
|
NSString* fmtString = @"%m/%d/%Y %H:%M:%S";
|
||||||
|
NSCalendarDate* cdate = [NSCalendarDate dateWithString: inputString calendarFormat: fmtString ];
|
||||||
|
NSNumber* jd = [ Astro julianDate: cdate];
|
||||||
|
|
||||||
|
sim = [[CelestiaAppCore sharedAppCore] simulation];
|
||||||
if ( [dateString isEqualToString: @""] && [timeString isEqualToString: @""])
|
if ( [dateString isEqualToString: @""] && [timeString isEqualToString: @""])
|
||||||
|
{
|
||||||
|
NSRunAlertPanel(@"No Date or Time Entered",@"Please enter a date and/or time.",nil,nil,nil);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
if ( [timeString isEqualToString: @""] )
|
if ( [timeString isEqualToString: @""] )
|
||||||
{
|
{
|
||||||
NSLog(@"emptyTime");
|
NSLog(@"emptyTime");
|
||||||
|
@ -74,79 +81,16 @@
|
||||||
NSLog(timeString);
|
NSLog(timeString);
|
||||||
|
|
||||||
}
|
}
|
||||||
NSString* inputString = [ [ dateString stringByAppendingString: @" " ]
|
|
||||||
stringByAppendingString: timeString ];
|
|
||||||
NSCalendarDate* cdate = [NSCalendarDate dateWithString: inputString calendarFormat: fmtString ];
|
|
||||||
if ( cdate == NULL )
|
if ( cdate == NULL )
|
||||||
{
|
{
|
||||||
NSLog(@"bad date");
|
// NSLog(@"bad date");
|
||||||
|
NSRunAlertPanel(@"Improper Date or Time Format",@"Please enter the date as \"mm/dd/yyyy\" and the time as \"hh:mm:ss\".",nil,nil,nil);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
NSLog( [cdate description] );
|
NSLog( [cdate description] );
|
||||||
NSNumber* jd = [ Astro julianDate: cdate];
|
|
||||||
// float fjd = [jd intValue];
|
// float fjd = [jd intValue];
|
||||||
// NSLog ( @"jdate = %", fjd);
|
// NSLog ( @"jdate = %", fjd);
|
||||||
[sim setDate: jd ];
|
[sim setDate: jd ];
|
||||||
/*
|
|
||||||
CelestiaSimulation *sim;
|
|
||||||
CelestiaSelection *csel;
|
|
||||||
CelestiaVector *up;
|
|
||||||
double distance;
|
|
||||||
csel = nil;
|
|
||||||
//NSLog(@"-[GotoWindowController gotoObject:%@]",sender);
|
|
||||||
sim = [[CelestiaAppCore sharedAppCore] simulation];
|
|
||||||
//NSLog(@"[objectField stringValue] = '%@'",[objectField stringValue]);
|
|
||||||
if ([[objectField stringValue] length])
|
|
||||||
csel = [sim findObjectFromPath:[objectField stringValue]];
|
|
||||||
if ((csel == nil) || [csel isEmpty])
|
|
||||||
return;
|
|
||||||
[sim setSelection:csel];
|
|
||||||
[sim geosynchronousFollow];
|
|
||||||
distance = [[csel radius] doubleValue]*5.0;
|
|
||||||
if ([[distanceField stringValue] length])
|
|
||||||
{
|
|
||||||
//NSLog(@"distanceField is filled in");
|
|
||||||
// convert to km if necessary
|
|
||||||
switch ([unitsButton indexOfSelectedItem]) {
|
|
||||||
case UNITS_RADII:
|
|
||||||
//NSLog(@"Converting from radii");
|
|
||||||
distance = [distanceField doubleValue]*[[csel radius] doubleValue];
|
|
||||||
break;
|
|
||||||
case UNITS_AU:
|
|
||||||
//NSLog(@"Converting from AU");
|
|
||||||
distance = [[Astro AUtoKilometers:[NSNumber numberWithDouble:[distanceField doubleValue]]] doubleValue];
|
|
||||||
break;
|
|
||||||
case UNITS_KM:
|
|
||||||
//NSLog(@"don't have to convert from km");
|
|
||||||
distance = [distanceField doubleValue];
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
//NSLog(@"I don't know what the fuck the button has selected?");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
distance = [[Astro kilometersToLightYears:[NSNumber numberWithDouble:distance]] doubleValue];
|
|
||||||
up = [CelestiaVector vectorWithx:[NSNumber numberWithFloat:0.0] y:[NSNumber numberWithFloat:1.0] z:[NSNumber numberWithFloat:0.0]];
|
|
||||||
if ([[latitudeField stringValue] length] && [[longitudeField stringValue] length])
|
|
||||||
{
|
|
||||||
//NSLog(@"lat/lon provided");
|
|
||||||
[sim
|
|
||||||
gotoSelection:[NSNumber numberWithFloat:5.0]
|
|
||||||
distance:[NSNumber numberWithDouble:distance]
|
|
||||||
longitude:[NSNumber numberWithDouble:[longitudeField doubleValue]*(M_PI/180.0)]
|
|
||||||
latitude:[NSNumber numberWithDouble:[latitudeField doubleValue]*(M_PI/180.0)]
|
|
||||||
up:up
|
|
||||||
];
|
|
||||||
} else {
|
|
||||||
//NSLog(@"No lat/lon");
|
|
||||||
[sim
|
|
||||||
gotoSelection:[NSNumber numberWithFloat:5.0]
|
|
||||||
distance:[NSNumber numberWithDouble:distance]
|
|
||||||
up:up
|
|
||||||
coordinateSystem:@"ObserverLocal"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Reference in a new issue