initial commit

This commit is contained in:
Trent Palmer 2019-08-30 13:05:00 -07:00
commit 5cc5f01dab
35 changed files with 2357 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.dart_tool
.packages
build

478
pubspec.lock Normal file
View File

@ -0,0 +1,478 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
version: "0.38.1"
archive:
dependency: transitive
description:
name: archive
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.10"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.2"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.3.0"
bazel_worker:
dependency: transitive
description:
name: bazel_worker
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.21"
build:
dependency: transitive
description:
name: build
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
build_config:
dependency: transitive
description:
name: build_config
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.1+1"
build_daemon:
dependency: transitive
description:
name: build_daemon
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
build_modules:
dependency: transitive
description:
name: build_modules
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.3"
build_resolvers:
dependency: transitive
description:
name: build_resolvers
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.7"
build_runner:
dependency: "direct dev"
description:
name: build_runner
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.7"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.9"
build_web_compilers:
dependency: "direct dev"
description:
name: build_web_compilers
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.3"
built_collection:
dependency: transitive
description:
name: built_collection
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.2"
built_value:
dependency: transitive
description:
name: built_value
url: "https://pub.dartlang.org"
source: hosted
version: "6.7.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
code_builder:
dependency: transitive
description:
name: code_builder
url: "https://pub.dartlang.org"
source: hosted
version: "3.2.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.11"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.2"
csslib:
dependency: transitive
description:
name: csslib
url: "https://pub.dartlang.org"
source: hosted
version: "0.16.1"
dart_style:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.10"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.9"
flutter_web:
dependency: "direct main"
description:
path: "packages/flutter_web"
ref: HEAD
resolved-ref: bdd12b223a7e7f268508784a7b78312e47664556
url: "https://github.com/flutter/flutter_web"
source: git
version: "0.0.0"
flutter_web_ui:
dependency: "direct main"
description:
path: "packages/flutter_web_ui"
ref: HEAD
resolved-ref: bdd12b223a7e7f268508784a7b78312e47664556
url: "https://github.com/flutter/flutter_web"
source: git
version: "0.0.0"
front_end:
dependency: transitive
description:
name: front_end
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.23"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.7"
graphs:
dependency: transitive
description:
name: graphs
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
html:
dependency: "direct main"
description:
name: html
url: "https://pub.dartlang.org"
source: hosted
version: "0.14.0+2"
http:
dependency: transitive
description:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.0+2"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.3"
intl:
dependency: transitive
description:
name: intl
url: "https://pub.dartlang.org"
source: hosted
version: "0.16.0"
io:
dependency: transitive
description:
name: io
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.3"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.1+1"
json_annotation:
dependency: transitive
description:
name: json_annotation
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
kernel:
dependency: transitive
description:
name: kernel
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.23"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
source: hosted
version: "0.11.3+2"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.5"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
mime:
dependency: transitive
description:
name: mime
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.6+3"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
package_resolver:
dependency: transitive
description:
name: package_resolver
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.10"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.4"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0+1"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
protobuf:
dependency: transitive
description:
name: protobuf
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.15"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.2"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.5"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
scratch_space:
dependency: transitive
description:
name: scratch_space
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.4"
shelf:
dependency: transitive
description:
name: shelf
url: "https://pub.dartlang.org"
source: hosted
version: "0.7.5"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.3"
source_maps:
dependency: transitive
description:
name: source_maps
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.8"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.5"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.3"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
stream_transform:
dependency: transitive
description:
name: stream_transform
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.19"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
timing:
dependency: transitive
description:
name: timing
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.1+2"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.8"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.7+12"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.15"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.16"
sdks:
dart: ">=2.4.0 <3.0.0"

30
pubspec.yaml Normal file
View File

@ -0,0 +1,30 @@
name: concisepdx
environment:
sdk: '>=2.2.0 <3.0.0'
dependencies:
flutter_web: any
flutter_web_ui: any
html: ^0.14.0+2
dev_dependencies:
# Enables the `pub run build_runner` command
build_runner: ^1.4.0
# Includes the JavaScript compilers
build_web_compilers: ^2.0.0
# flutter_web packages are not published to pub.dartlang.org
# These overrides tell the package tools to get them from GitHub
dependency_overrides:
flutter_web:
git:
url: https://github.com/flutter/flutter_web
path: packages/flutter_web
flutter_web_ui:
git:
url: https://github.com/flutter/flutter_web
path: packages/flutter_web_ui
flutter:
uses-material-design: true

View File

@ -0,0 +1 @@
[ { "family": "MaterialIcons", "fonts": [ { "asset": "https://fonts.gstatic.com/s/materialicons/v42/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2" } ] } ]

39
web/attractions.dart Normal file
View File

@ -0,0 +1,39 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
import 'card_templates.dart';
class Attractions extends StatefulWidget {
@override
_AttractionsState createState() => _AttractionsState();
}
class _AttractionsState extends State<Attractions> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'attractions',
),
centerTitle: true,
backgroundColor: navy,
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
columbiaGorge(),
multnomahFalls(),
mountHood(),
mountSaintHelens(),
oregonCoast(),
],
),
),
),
);
}
}

216
web/card_templates.dart Normal file
View File

@ -0,0 +1,216 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'dart:html' as html;
Card infoCard(String leftText,String infoUrl,String infoUrlName) {
return Card(
margin: EdgeInsets.only(
left: 4,
top: 4,
right: 4,
bottom: 0,
),
color: Colors.black,
child: Card(
margin: EdgeInsets.all(4.0),
color: ivory,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Row(
children: <Widget>[
Expanded(
flex: 8,
child: Text(
leftText,
style: TextStyle(
fontSize: 20.0,
),
),
),
Expanded(
flex: 2,
child: InkWell(
child: Icon(
Icons.info,
size: 50.0,
color: Colors.black,
),
onTap: () {
html.window.open(infoUrl,infoUrlName);
},
),
),
],
),
),
),
);
}
Card cardThree(String allText) {
return Card(
margin: EdgeInsets.only(
left: 4,
top: 4,
right: 4,
bottom: 0,
),
color: Colors.black,
child: Card(
margin: EdgeInsets.all(4.0),
color: ivory,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Text(
allText,
style: TextStyle(
fontSize: 20.0,
),
),
),
),
);
}
Card cardOne(String leftText) {
return Card(
margin: EdgeInsets.only(
left: 4,
top: 4,
right: 4,
bottom: 0,
),
color: Colors.black,
child: Card(
margin: EdgeInsets.all(4.0),
color: ivory,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Row(
children: <Widget>[
Expanded(
child: Text(
leftText,
style: TextStyle(
fontSize: 20.0,
),
),
),
Container(
child: Icon(
Icons.arrow_right,
size: 50.0,
color: candyApple,
),
),
],
),
),
),
);
}
Card cardTwo(String leftText,String mapUrl,String mapUrlName) {
return Card(
margin: EdgeInsets.only(
left: 4,
top: 4,
right: 4,
bottom: 0,
),
color: Colors.black,
child: Card(
margin: EdgeInsets.all(4.0),
color: ivory,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Row(
children: <Widget>[
Expanded(
flex: 8,
child: Text(
leftText,
style: TextStyle(
fontSize: 20.0,
),
),
),
Expanded(
flex: 2,
child: InkWell(
child: Icon(
Icons.map,
size: 50.0,
color: Colors.black,
),
onTap: () {
html.window.open(mapUrl,mapUrlName);
},
),
),
],
),
),
),
);
}
Card convenienceCardOne(String infoUrl,String infoUrlName,String middleText,String mapUrl,String mapUrlName) {
return Card(
margin: EdgeInsets.only(
left: 4,
top: 4,
right: 4,
bottom: 0,
),
color: Colors.black,
child: Card(
margin: EdgeInsets.all(4.0),
color: ivory,
child: Padding(
padding: EdgeInsets.all(8.0),
child: Row(
children: <Widget>[
Expanded(
flex: 2,
child: InkWell(
child: Icon(
Icons.info,
size: 50.0,
color: candyApple,
),
onTap: () {
html.window.open(infoUrl,infoUrlName);
},
),
),
Expanded(
flex: 6,
child: Text(
middleText,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20.0,
fontStyle: FontStyle.italic,
),
),
),
Expanded(
flex: 2,
child: InkWell(
child: Icon(
Icons.map,
size: 50.0,
color: Colors.black,
),
onTap: () {
html.window.open(mapUrl,mapUrlName);
},
),
),
],
),
),
),
);
}

View File

@ -0,0 +1,48 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
import 'prebuildcards.dart';
class ChineseJapaneseGardens extends StatefulWidget {
@override
_ChineseJapaneseGardensState createState() => _ChineseJapaneseGardensState();
}
class _ChineseJapaneseGardensState extends State<ChineseJapaneseGardens> {
@override
Widget build(BuildContext context) {
String _answer = 'The Chinese Garden is a small garden in China Town that will take up maybe an hour of your time.';
_answer += ' Whereas, Japanese Garden is part of the Washington Park complex, which has many attractions,';
_answer += ' and is a destination itself.';
return Scaffold(
appBar: AppBar(
title: Text('chinese-japanese-gardens'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
cardThree(_answer),
japaneseGarden(),
chineseGarden(),
],
),
),
),
);
}
}

83
web/concisepdx.dart Normal file
View File

@ -0,0 +1,83 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'streetareas.dart';
import 'vistas.dart';
import 'faqs.dart';
import 'hikes.dart';
import 'attractions.dart';
import 'card_templates.dart';
void main() => runApp(MainApp());
class MainApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'concise-pdx',
theme: ThemeData(
primaryColor: navy,
),
home: ConcisePDX(),
);
}
}
class ConcisePDX extends StatefulWidget {
@override
_ConcisePDXState createState() => _ConcisePDXState();
}
class _ConcisePDXState extends State<ConcisePDX> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('concise-pdx'),
centerTitle: true,
backgroundColor: navy,
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => StreetAreas()));
},
child: cardOne('Walkable Streets With Restaurants and Bars'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => Attractions()));
},
child: cardOne('Must See and Do'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => Hikes()));
},
child: cardOne('Must Hikes'),
),
// cardOne('Anecdotal Recommendations'),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => Vistas()));
},
child: cardOne('Vistas and Overlooks'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => Faqs()));
},
child: cardOne('FAQ\'s'),
),
cardOne('Feedback and Source'),
],
),
),
),
);
}
}

6
web/defaults.dart Normal file
View File

@ -0,0 +1,6 @@
import 'package:flutter_web/material.dart';
final Color navy = Color(0xff00293C);
final Color peacockBlue = Color(0xff1e656d);
final Color ivory = Color(0xfff1f3ce);
final Color candyApple = Color(0xfff62a00);

View File

@ -0,0 +1,50 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
import 'prebuildcards.dart';
class EastWillametteValley extends StatefulWidget {
@override
_EastWillametteValleyState createState() => _EastWillametteValleyState();
}
class _EastWillametteValleyState extends State<EastWillametteValley> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable small-towns\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
silverFalls(),
cardTwo('Water and First in Downtown Silverton','https://www.google.com/maps/@45.0052266,-122.7825282,17z','water-first'),
convenienceCardOne(
'https://en.wikipedia.org/wiki/Oregon_Garden',
'oregon-garden',
'Silverton is convenient for a visit to Oregon Garden',
'https://www.google.com/maps/@44.9927687,-122.7935883,16z',
'oregon-garden-map'
),
cardTwo('Downtown Mt Angel is famous for German Food','https://www.google.com/maps/@45.0696714,-122.7991836,17z','downtown-mtangel'),
],
),
),
),
);
}
}

47
web/faqs.dart Normal file
View File

@ -0,0 +1,47 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'trimet.dart';
import 'chinesejapanesegardens.dart';
import 'card_templates.dart';
class Faqs extends StatefulWidget {
@override
_FaqsState createState() => _FaqsState();
}
class _FaqsState extends State<Faqs> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'faqs',
),
centerTitle: true,
backgroundColor: navy,
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => TriMet()));
},
child: cardOne('How do the buses, lightrail, and streetcars work?'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => ChineseJapaneseGardens()));
},
child: cardOne('What is the difference between Chinese Gardens and Japanese Gardens?'),
),
],
),
),
),
);
}
}

47
web/gorgevistas.dart Normal file
View File

@ -0,0 +1,47 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class GorgeVistas extends StatefulWidget {
@override
_GorgeVistasState createState() => _GorgeVistasState();
}
class _GorgeVistasState extends State<GorgeVistas> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('gorge-vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
larchMountain(),
womensForum(),
crownPoint(),
angelsRest(),
multnomahFalls(),
indianPoint(),
dogMountain(),
coyoteWall(),
],
),
),
),
);
}
}

40
web/greshamvistas.dart Normal file
View File

@ -0,0 +1,40 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class GreshamVistas extends StatefulWidget {
@override
_GreshamVistasState createState() => _GreshamVistasState();
}
class _GreshamVistasState extends State<GreshamVistas> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('gresham-vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
hoganButte(),
],
),
),
),
);
}
}

53
web/hikes.dart Normal file
View File

@ -0,0 +1,53 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
import 'card_templates.dart';
class Hikes extends StatefulWidget {
@override
_HikesState createState() => _HikesState();
}
class _HikesState extends State<Hikes> {
@override
Widget build(BuildContext context) {
String _mapTip = 'Most trails are on Google Maps, but service is spotty, so cache some maps offline.';
_mapTip += ' and take along an auxiliary battery to keep your phone charged.';
String _prepared = 'Be sure to have water, and adequate clothing and footwear.';
String _eagleCreekClosed = 'Eagle Creek is still closed on account of fire damage.';
String _whiteWaterTrailClosed = 'The WhiteWater Trail to Jefferson Park is still closed on account of fire damage.';
return Scaffold(
appBar: AppBar(
title: Text(
'hikes',
),
centerTitle: true,
backgroundColor: navy,
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
cardThree(_mapTip),
cardThree(_prepared),
macleayParkPittockMansion(),
angelsRest(),
multnomahFalls(),
// eagleCreek(),
cardThree(_eagleCreekClosed),
dogMountain(),
paradisePark(),
silverFalls(),
// jeffersonPark(),
cardThree(_whiteWaterTrailClosed),
],
),
),
),
);
}
}

10
web/index.html Normal file
View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>concise-pdx</title>
<script defer src="main.dart.js" type="application/javascript"></script>
</head>
<body>
</body>
</html>

7
web/main.dart Normal file
View File

@ -0,0 +1,7 @@
import 'package:flutter_web_ui/ui.dart' as ui;
import 'concisepdx.dart' as app;
main() async {
await ui.webOnlyInitializePlatform();
app.main();
}

View File

@ -0,0 +1,47 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
import 'prebuildcards.dart';
class MiddleSouthEastStreets extends StatefulWidget {
@override
_MiddleSouthEastStreetsState createState() => _MiddleSouthEastStreetsState();
}
class _MiddleSouthEastStreetsState extends State<MiddleSouthEastStreets> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable middle se streets\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
mtTabor(),
cardTwo('Glisan','https://example.com','glisan'),
cardTwo('Burnside','https://example.com','burnside'),
cardTwo('Stark','https://example.com','stark'),
cardTwo('Morrison-Belmont','https://example.com','morrison-belmont'),
cardTwo('Hawthorne','https://example.com','hawthorne'),
cardTwo('SE Division between 11th and 60th','https://www.google.com/maps/@45.5048718,-122.6326215,18z','division'),
],
),
),
),
);
}
}

48
web/northeaststreets.dart Normal file
View File

@ -0,0 +1,48 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
import 'card_templates.dart';
class NorthEastStreets extends StatefulWidget {
@override
_NorthEastStreetsState createState() => _NorthEastStreetsState();
}
class _NorthEastStreetsState extends State<NorthEastStreets> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable northeast streets\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
rockyButteDrive(),
rockyButteHike(),
cardTwo('Killingsworth','https://example.com','killingsworth'),
cardTwo('Alberta','https://example.com','alberta'),
cardTwo('Freemont','https://example.com','freemont'),
cardTwo('Sandy','https://example.com','sandy'),
cardTwo('Weidler-Broadway','https://example.com','weidler-broadway'),
modaCenter(),
],
),
),
),
);
}
}

45
web/northstreets.dart Normal file
View File

@ -0,0 +1,45 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
import 'card_templates.dart';
class NorthStreets extends StatefulWidget {
@override
_NorthStreetsState createState() => _NorthStreetsState();
}
class _NorthStreetsState extends State<NorthStreets> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable north streets\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
cardTwo('Vancouver-Williams','https://example.com','vancouver-williams'),
modaCenter(),
cardTwo('Mississippi-Albina','https://example.com','mississippi-albina'),
waudBluff(),
cardTwo('North Lombard','https://example.com','north lombard'),
],
),
),
),
);
}
}

58
web/northweststreets.dart Normal file
View File

@ -0,0 +1,58 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
import 'prebuildcards.dart';
class NorthWestStreets extends StatefulWidget {
@override
_NorthWestStreetsState createState() => _NorthWestStreetsState();
}
class _NorthWestStreetsState extends State<NorthWestStreets> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable northwest streets\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
macleayParkPittockMansion(),
cardTwo('Vaughn','https://example.com','vaughn'),
convenienceCardOne(
'https://en.wikipedia.org/wiki/Washington_Park_(Portland,_Oregon)',
'washington-park',
'This area of town is convenient for the Zoo, Rose Garden, and Japanese Garden',
'https://www.google.com/maps/@45.515833,-122.7075,15z',
'washington-park-map'
),
cardTwo('NW 23rd','https://example.com','23rd'),
convenienceCardOne(
'https://en.wikipedia.org/wiki/Providence_Park',
'providence-park',
'This area of town is convenient for a football, baseball, or soccer game at Providence park',
'https://www.google.com/maps/@45.521389,-122.691667,17z',
'providence-park-map'
),
cardTwo('NW 21st','https://example.com','21st'),
],
),
),
),
);
}
}

272
web/prebuildcards.dart Normal file
View File

@ -0,0 +1,272 @@
import 'package:flutter_web/material.dart';
import 'card_templates.dart';
Card modaCenter() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Moda_Center',
'moda-center',
'This area of town is convenient for a visit to the Moda Center for Concert, Basketball, or Hockey',
'https://www.google.com/maps/@45.531667,-122.666667,17z',
'moda-center-map'
);
}
Card waudBluff() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Swan_Island-Mocks_Crest_Loop_Hike',
'mocks-crest-hike',
'Hike, drive, or bike atop Waud Bluff via Willamette Blvd in North Portland.',
'https://www.google.com/maps/@45.5736,-122.7220,17z',
'waud-bluff-trailhead'
);
}
Card rockyButteHike() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Rocky_Butte_Hike',
'rocky-butte-hike',
'Hike to Rocky Butte in North East PDX.',
'https://www.google.com/maps/@45.55325,-122.57468,17z',
'grotto-trailhead'
);
}
Card rockyButteDrive() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Rocky_Butte',
'rocky-butte',
'Drive to Rocky Butte in North East PDX.',
'https://www.google.com/maps/@45.546714,-122.565941,17z',
'rocky-butte-map'
);
}
Card mtTabor() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Mount_Tabor_Hike',
'mt-tabor-hike',
'Hike or Walk on Mt Tabor in South East PDX.',
'https://www.google.com/maps/@45.50894,-122.5996687,17z',
'lincoln-street-trailhead'
);
}
Card hoganButte() {
return convenienceCardOne(
'https://greshamoregon.gov/hogan-butte-nature-park/',
'hogan-butte',
'Drive and Walk to Hogan Butte in Gresham.',
'https://www.google.com/maps/@45.474413,-122.4238744,17z',
'hogan-butte-map'
);
}
Card olallieButte() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Olallie_Butte_Hike',
'olallie-butte',
'Drive a gassed-up truck or suv to remote Olallie Butte for a serious hike, weather permitting.',
'https://www.google.com/maps/@44.8419,-121.7798,17z',
'olallie-butte-map'
);
}
Card highRockLookOut() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/High_Rock_Hike',
'high-rock',
'Drive a gassed-up car and walk to remote High Rock Lookout.',
'https://www.google.com/maps/@45.15983,-121.89141,17z',
'high-rock-map'
);
}
Card larchMountain() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Sherrard_Point_Hike',
'larch-mountain',
'Walk to the top of Larch Mt, (or hike up from the gorge).',
'https://www.google.com/maps/@45.53271,-122.0878,17z',
'larch-mountain-map'
);
}
Card womensForum() {
return convenienceCardOne(
'https://oregonstateparks.org/index.cfm?do=parkPage.dsp_parkPage&parkId=119',
'womens-forum',
'Drive to Portland Women\'s Forum Overlooking the Gorge',
'https://www.google.com/maps/@45.5345,-122.2607,17z',
'womens-forum-map'
);
}
Card crownPoint() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Vista_House',
'crown-point',
'Drive to Crown Point Overlooking the Gorge',
'https://www.google.com/maps/@45.539579,-122.244401,17z',
'crown-point-map'
);
}
Card angelsRest() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Angels_Rest_Hike',
'angels-rest',
'Hike to Angel\'s Rest in the Gorge',
'https://www.google.com/maps/@45.56065,-122.17241,17z',
'angels-rest-map'
);
}
Card multnomahFalls() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Multnomah_Falls',
'multnomah-falls',
'Hike up Multnomah Falls in The Gorge (closed when full)',
'https://www.google.com/maps/@45.5780539,-122.1140257,17z',
'multnomah-falls-map'
);
}
Card indianPoint() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Indian_Point_Loop_Hike',
'indian-point',
'Hike to Indian Point overlooking the Gorge',
'https://www.google.com/maps/@45.68367,-121.79795,17z',
'indian-point-map'
);
}
Card dogMountain() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Dog_Mountain_Loop_Hike',
'dog-mountain',
'Hike to Dog Mountain overlooking the Gorge',
'https://www.google.com/maps/@45.6993,-121.7081,17z',
'dog-mountain-map'
);
}
Card coyoteWall() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Labyrinth-Coyote_Wall_Loop_Hike',
'coyote-wall',
'Hike to Coyote Wall overlooking the Gorge',
'https://www.google.com/maps/@45.7005,-121.4024,17z',
'coyote-wall-map'
);
}
Card japaneseGarden() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Portland_Japanese_Garden',
'japanese-garden',
'Japanese Garden in Washington Park',
'https://www.google.com/maps/@45.51872,-122.7080,17z',
'japanese-garden-map'
);
}
Card chineseGarden() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Lan_Su_Chinese_Garden',
'chinese-garden',
'Lan Su Chinese Garden in NW Downtown Portland',
'https://www.google.com/maps/@45.52565,-122.67299,17z',
'chinese-garden-map'
);
}
Card paradisePark() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Paradise_Park_from_Timberline_Lodge_Hike',
'paradise-park',
'Hike to Paradise Park on Mt Hood, from Timberline Lodge in Summer.',
'https://www.google.com/maps/@45.3561013,-121.7472,17z',
'paradise-park-map'
);
}
Card eagleCreek() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Eagle_Creek_to_Tunnel_Falls_Hike',
'eagle-creek',
'Hike up Eagle Creek in the Gorge to Tunnel Falls',
'https://www.google.com/maps/@45.63653,-121.91947,17z',
'eagle-creek-map'
);
}
Card silverFalls() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Trail_of_Ten_Falls_Loop_Hike',
'trail-of-ten-falls-loop-hike',
'Silver Falls near Silverton, has the most Water Falls Anywhere.',
'https://www.google.com/maps/@44.87752,-122.65513,15z',
'south-falls-lodge-trailhead'
);
}
Card jeffersonPark() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Jefferson_Park_from_Whitewater_Trailhead_Hike',
'jefferson-park',
'Hike to Jefferson Park on Mt Jefferson',
'https://www.google.com/maps/@44.706730,-121.874899,17z',
'jefferson-park-map'
);
}
Card macleayParkPittockMansion() {
return convenienceCardOne(
'https://www.oregonhikers.org/field_guide/Pittock_Mansion_Hike',
'pittock-mansion-hike',
'Hike from Macleay Park in NW Portland, to Pittock Mansion',
'https://www.google.com/maps/@45.5360,-122.7125,15z',
'lower-macleay-park-trailhead'
);
}
Card columbiaGorge() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Columbia_River_Gorge',
'columbia-river-gorge',
'Hike, SightSee, Cruise, or WindSurf the Columbia River Gorge',
'https://www.google.com/maps/@45.704722,-121.791667,11z',
'columbia-river-gorge-map'
);
}
Card mountHood() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Mount_Hood',
'mount-hood',
'Visit Mt Hood',
'https://www.google.com/maps/@45.373514,-121.695919,12z',
'mount-hood-map'
);
}
Card mountSaintHelens() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Mount_St._Helens',
'mount-saint-helens',
'Visit Mt St Helens',
'https://www.google.com/maps/@46.27532,-122.21729,13z',
'mount-saint-helens-map'
);
}
Card oregonCoast() {
return convenienceCardOne(
'https://en.wikipedia.org/wiki/Oregon_Coast',
'oregon-coast',
'Visit the Oregon Coast',
'https://www.google.com/maps/@44.000001,-124.100001,8z',
'oregon-coast-map'
);
}

41
web/remotevistas.dart Normal file
View File

@ -0,0 +1,41 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class RemoteVistas extends StatefulWidget {
@override
_RemoteVistasState createState() => _RemoteVistasState();
}
class _RemoteVistasState extends State<RemoteVistas> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('remote-vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
olallieButte(),
highRockLookOut(),
],
),
),
),
);
}
}

58
web/sellwoodstreets.dart Normal file
View File

@ -0,0 +1,58 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
class SellwoodStreets extends StatefulWidget {
@override
_SellwoodStreetsState createState() => _SellwoodStreetsState();
}
class _SellwoodStreetsState extends State<SellwoodStreets> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable sellwood streets\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
cardTwo('Woodstock','https://example.com','woodstock'),
convenienceCardOne(
'https://www.portlandoregon.gov/parks/finder/index.cfm?&action=ViewPark&propertyid=27',
'crystal-springs-rhododendron-garden',
'This area of town is convenient for Crystal Springs Rhododendron Garden',
'https://www.google.com/maps/@45.479722,-122.635556,17z',
'crystal-springs-rhododendron-garden-map'
),
cardTwo('Bybee','https://example.com','bybee'),
cardTwo('Milwaukie','https://example.com','milwaukie'),
convenienceCardOne(
'https://www.alltrails.com/trail/us/oregon/springwater-on-the-wilamette-north-woodland-and-bluff-trail-loop',
'springwater-on-the-willamette-trail',
'This area of town is near the Springwater on the Willamette Trail',
'https://www.google.com/maps/@45.4762318,-122.6616333,16z',
'springwater-on-the-willamette-trail-map'
),
cardTwo('SE 13th','https://example.com','13th'),
cardTwo('Tacoma','https://example.com','tacoma'),
],
),
),
),
);
}
}

53
web/smalltowns.dart Normal file
View File

@ -0,0 +1,53 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
import 'eastwillamettevalley.dart';
import 'westwillamettevalley.dart';
class SmallTowns extends StatefulWidget {
@override
_SmallTownsState createState() => _SmallTownsState();
}
class _SmallTownsState extends State<SmallTowns> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable small-towns\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => EastWillametteValley()));
},
child: cardOne('East Willamette Valley'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => WestWillametteValley()));
},
child: cardOne('West Willamette Valley'),
),
],
),
),
),
);
}
}

42
web/stjohnsstreets.dart Normal file
View File

@ -0,0 +1,42 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
class StJohnsStreets extends StatefulWidget {
@override
_StJohnsStreetsState createState() => _StJohnsStreetsState();
}
class _StJohnsStreetsState extends State<StJohnsStreets> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable stjohns streets\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: Column(
children: <Widget>[
convenienceCardOne(
'https://en.wikipedia.org/wiki/Cathedral_Park_(Portland,_Oregon)',
'Cathedral Park',
'This area of town is convenient for a visit to Cathedral Park under the St John\'s Bridge',
'https://www.google.com/maps/@45.5883,-122.75799,17z',
'cathedral-park'
),
cardTwo('Lombard-Ivanhoe','https://example.com','lombard-ivanhoe'),
],
),
);
}
}

82
web/streetareas.dart Normal file
View File

@ -0,0 +1,82 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'middlesoutheaststreets.dart';
import 'northeaststreets.dart';
import 'northweststreets.dart';
import 'northstreets.dart';
import 'stjohnsstreets.dart';
import 'sellwoodstreets.dart';
import 'smalltowns.dart';
import 'card_templates.dart';
class StreetAreas extends StatefulWidget {
@override
_StreetAreasState createState() => _StreetAreasState();
}
class _StreetAreasState extends State<StreetAreas> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'walkable-street-areas\nwith bars-restaurants',
),
centerTitle: true,
backgroundColor: navy,
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => MiddleSouthEastStreets()));
},
child: cardOne('Middle SouthEast'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => SellwoodStreets()));
},
child: cardOne('Sellwood'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => NorthEastStreets()));
},
child: cardOne('NorthEast'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => NorthStreets()));
},
child: cardOne('North'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => StJohnsStreets()));
},
child: cardOne('St John\'s'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => NorthWestStreets()));
},
child: cardOne('NorthWest'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => SmallTowns()));
},
child: cardOne('Small Towns in the Area'),
),
],
),
),
),
);
}
}

50
web/trimet.dart Normal file
View File

@ -0,0 +1,50 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
class TriMet extends StatefulWidget {
@override
_TriMetState createState() => _TriMetState();
}
class _TriMetState extends State<TriMet> {
@override
Widget build(BuildContext context) {
String _answer = 'The buses, lightrail, and streetcars are all on the same system.';
_answer += ' This makes it easy to find your way using Google Maps for directions.';
String _fareAnswer = 'Presumably if you are a tourist, you want to buy a HOP ticket from a ticket machine,';
_fareAnswer += ' or pay a bus driver cash, (instead of buying a HOP card).';
_fareAnswer += ' All day costs \$5, 2.5 hours costs \$2.50.';
return Scaffold(
appBar: AppBar(
title: Text('trimet'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
cardThree(_answer),
infoCard('There no longer is a \"Fareless Square\".','https://en.wikipedia.org/wiki/Fareless_Square','a'),
infoCard(_fareAnswer,'https://trimet.org/fares/','b'),
],
),
),
),
);
}
}

44
web/vistadrives.dart Normal file
View File

@ -0,0 +1,44 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class VistaDrives extends StatefulWidget {
@override
_VistaDrivesState createState() => _VistaDrivesState();
}
class _VistaDrivesState extends State<VistaDrives> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('driveable vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
waudBluff(),
rockyButteDrive(),
hoganButte(),
womensForum(),
crownPoint(),
],
),
),
),
);
}
}

49
web/vistahikes.dart Normal file
View File

@ -0,0 +1,49 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class VistaHikes extends StatefulWidget {
@override
_VistaHikesState createState() => _VistaHikesState();
}
class _VistaHikesState extends State<VistaHikes> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('hikeable vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
waudBluff(),
rockyButteHike(),
mtTabor(),
olallieButte(),
larchMountain(),
angelsRest(),
multnomahFalls(),
indianPoint(),
dogMountain(),
coyoteWall(),
],
),
),
),
);
}
}

96
web/vistas.dart Normal file
View File

@ -0,0 +1,96 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
import 'vistadrives.dart';
import 'vistawalks.dart';
import 'vistahikes.dart';
import 'vistasnorthpdx.dart';
import 'vistasnortheastpdx.dart';
import 'vistassoutheastpdx.dart';
import 'greshamvistas.dart';
import 'remotevistas.dart';
import 'gorgevistas.dart';
class Vistas extends StatefulWidget {
@override
_VistasState createState() => _VistasState();
}
class _VistasState extends State<Vistas> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'walkable-street-areas\nwith bars-restaurants',
),
centerTitle: true,
backgroundColor: navy,
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => VistaDrives()));
},
child: cardOne('Drive to the Top'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => VistaWalks()));
},
child: cardOne('Walk to the Top'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => VistaHikes()));
},
child: cardOne('A Real Hike to the Top'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => GorgeVistas()));
},
child: cardOne('Gorge'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => RemoteVistas()));
},
child: cardOne('Remote'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => VistasNorthPDX()));
},
child: cardOne('North Portland'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => VistasNorthEastPDX()));
},
child: cardOne('NE Portland'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => VistasSouthEastPDX()));
},
child: cardOne('SE Portland'),
),
InkWell(
onTap: () async {
await Navigator.push(context, MaterialPageRoute(builder: (context) => GreshamVistas()));
},
child: cardOne('Gresham'),
),
],
),
),
),
);
}
}

View File

@ -0,0 +1,41 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class VistasNorthEastPDX extends StatefulWidget {
@override
_VistasNorthEastPDXState createState() => _VistasNorthEastPDXState();
}
class _VistasNorthEastPDXState extends State<VistasNorthEastPDX> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('ne-pdx-vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
rockyButteDrive(),
rockyButteHike(),
],
),
),
),
);
}
}

40
web/vistasnorthpdx.dart Normal file
View File

@ -0,0 +1,40 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class VistasNorthPDX extends StatefulWidget {
@override
_VistasNorthPDXState createState() => _VistasNorthPDXState();
}
class _VistasNorthPDXState extends State<VistasNorthPDX> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('north-pdx-vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
waudBluff(),
],
),
),
),
);
}
}

View File

@ -0,0 +1,40 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class VistasSouthEastPDX extends StatefulWidget {
@override
_VistasSouthEastPDXState createState() => _VistasSouthEastPDXState();
}
class _VistasSouthEastPDXState extends State<VistasSouthEastPDX> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('se-pdx-vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
mtTabor(),
],
),
),
),
);
}
}

45
web/vistawalks.dart Normal file
View File

@ -0,0 +1,45 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'prebuildcards.dart';
class VistaWalks extends StatefulWidget {
@override
_VistaWalksState createState() => _VistaWalksState();
}
class _VistaWalksState extends State<VistaWalks> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable vistas'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
waudBluff(),
mtTabor(),
hoganButte(),
highRockLookOut(),
larchMountain(),
multnomahFalls(),
],
),
),
),
);
}
}

View File

@ -0,0 +1,48 @@
import 'package:flutter_web/material.dart';
import 'defaults.dart';
import 'card_templates.dart';
class WestWillametteValley extends StatefulWidget {
@override
_WestWillametteValleyState createState() => _WestWillametteValleyState();
}
class _WestWillametteValleyState extends State<WestWillametteValley> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('walkable small-towns\nwith bars-restaurants'),
centerTitle: true,
backgroundColor: navy,
actions: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
Navigator.of(context).popUntil((route) => route.isFirst);
},
),
],
),
backgroundColor: peacockBlue,
body: SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: 6.0,),
child: Column(
children: <Widget>[
cardTwo('Newberg-Dundee is a Wine-Tasting Destination','https://www.google.com/maps/@45.3007635,-122.9754037,17z','downtown-newberg'),
cardTwo('3rd St in Downtown McMinnville','https://www.google.com/maps/@45.2099371,-123.1927857,16z','downtown-mcminnville'),
convenienceCardOne(
'https://en.wikipedia.org/wiki/Evergreen_Aviation_%26_Space_Museum',
'spruce-goose',
'McMinnville is convenient for the Spruce Goose and Evergreen Aviation Museum',
'https://www.google.com/maps/@45.2031571,-123.1454622,17z',
'spruce-goose-map'
),
],
),
),
),
);
}
}