mirror of
https://github.com/TrentSPalmer/concise-pdx.git
synced 2024-10-31 14:28:46 -07: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