mirror of
https://github.com/TrentSPalmer/concise-pdx.git
synced 2024-12-23 07:32:50 -08:00
initial commit
This commit is contained in:
commit
5cc5f01dab
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
.dart_tool
|
||||
.packages
|
||||
build
|
478
pubspec.lock
Normal file
478
pubspec.lock
Normal 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
30
pubspec.yaml
Normal 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
|
1
web/assets/FontManifest.json
Normal file
1
web/assets/FontManifest.json
Normal 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
39
web/attractions.dart
Normal 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
216
web/card_templates.dart
Normal 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);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
48
web/chinesejapanesegardens.dart
Normal file
48
web/chinesejapanesegardens.dart
Normal 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
83
web/concisepdx.dart
Normal 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
6
web/defaults.dart
Normal 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);
|
50
web/eastwillamettevalley.dart
Normal file
50
web/eastwillamettevalley.dart
Normal 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
47
web/faqs.dart
Normal 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
47
web/gorgevistas.dart
Normal 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
40
web/greshamvistas.dart
Normal 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
53
web/hikes.dart
Normal 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
10
web/index.html
Normal 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
7
web/main.dart
Normal 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();
|
||||
}
|
47
web/middlesoutheaststreets.dart
Normal file
47
web/middlesoutheaststreets.dart
Normal 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
48
web/northeaststreets.dart
Normal 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
45
web/northstreets.dart
Normal 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
58
web/northweststreets.dart
Normal 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
272
web/prebuildcards.dart
Normal 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
41
web/remotevistas.dart
Normal 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
58
web/sellwoodstreets.dart
Normal 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
53
web/smalltowns.dart
Normal 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
42
web/stjohnsstreets.dart
Normal 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
82
web/streetareas.dart
Normal 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
50
web/trimet.dart
Normal 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
44
web/vistadrives.dart
Normal 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
49
web/vistahikes.dart
Normal 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
96
web/vistas.dart
Normal 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'),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
41
web/vistasnortheastpdx.dart
Normal file
41
web/vistasnortheastpdx.dart
Normal 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
40
web/vistasnorthpdx.dart
Normal 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(),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
40
web/vistassoutheastpdx.dart
Normal file
40
web/vistassoutheastpdx.dart
Normal 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
45
web/vistawalks.dart
Normal 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(),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
48
web/westwillamettevalley.dart
Normal file
48
web/westwillamettevalley.dart
Normal 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'
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user