teste gráfico
This commit is contained in:
@@ -0,0 +1,314 @@
|
||||
import 'package:flutter/material.dart';
|
||||
/// SampleModel class is the base of the Sample browser
|
||||
/// It contains the category, control, theme information
|
||||
class SampleModel extends Listenable {
|
||||
/// Contains the category, control, theme information
|
||||
SampleModel() {
|
||||
// searchControlItems = <Control>[];
|
||||
// sampleList = <SubItem>[];
|
||||
// searchResults = <SubItem>[];
|
||||
// searchSampleItems = <SubItem>[];
|
||||
// categoryList = SampleModel._categoryList;
|
||||
// controlList = SampleModel._controlList;
|
||||
// routes = SampleModel._routes;
|
||||
// searchControlItems.addAll(controlList);
|
||||
// for (int index = 0; index < controlList.length; index++) {
|
||||
// if (controlList[index].sampleList != null) {
|
||||
// for (int i = 0; i < controlList[index].sampleList!.length; i++) {
|
||||
// searchSampleItems.add(controlList[index].sampleList![i]);
|
||||
// }
|
||||
// } else if (controlList[index].childList != null) {
|
||||
// for (int i = 0; i < controlList[index].childList!.length; i++) {
|
||||
// for (int j = 0;
|
||||
// j < controlList[index].childList![i].subItems!.length;
|
||||
// j++) {
|
||||
// if (controlList[index].childList![i].subItems![j].type != 'child') {
|
||||
// searchSampleItems
|
||||
// .add(controlList[index].childList![i].subItems![j]);
|
||||
// } else {
|
||||
// //ignore: prefer_foreach
|
||||
// for (final SubItem sample
|
||||
// in controlList[index].childList![i].subItems![j].subItems) {
|
||||
// searchSampleItems.add(sample);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// for (int i = 0; i < controlList[index].subItems!.length; i++) {
|
||||
// for (int j = 0;
|
||||
// j < controlList[index].subItems![i].subItems.length;
|
||||
// j++) {
|
||||
// for (int k = 0;
|
||||
// k < controlList[index].subItems![i].subItems[j].subItems.length;
|
||||
// k++) {
|
||||
// searchSampleItems
|
||||
// .add(controlList[index].subItems![i].subItems[j].subItems[k]);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
/// Used to create the instance of [SampleModel]
|
||||
static SampleModel instance = SampleModel();
|
||||
|
||||
/// Contains the output widget of sample
|
||||
/// appropriate key and output widget mapped
|
||||
//final Map<String, Function> sampleWidget = getSampleWidget();
|
||||
//ignore:prefer_final_fields
|
||||
// static List<Control> _controlList = <Control>[];
|
||||
// //ignore:prefer_final_fields
|
||||
// static List<WidgetCategory> _categoryList = <WidgetCategory>[];
|
||||
|
||||
// /// Holds the category list
|
||||
// late List<WidgetCategory> categoryList;
|
||||
|
||||
// /// Holds the sorted control list
|
||||
// late List<Control> controlList;
|
||||
|
||||
// /// Holds the searched control list
|
||||
// late List<Control> searchControlItems;
|
||||
|
||||
// ///List of all the samples
|
||||
// late List<SubItem> sampleList;
|
||||
|
||||
// /// To handle search
|
||||
// late List<SubItem> searchSampleItems;
|
||||
|
||||
// /// To handle search
|
||||
// late List<SubItem> searchResults;
|
||||
|
||||
/// holds theme based current palette color
|
||||
Color backgroundColor = const Color.fromRGBO(0, 116, 227, 1);
|
||||
|
||||
/// holds light theme current palette color
|
||||
Color paletteColor = const Color.fromRGBO(0, 116, 227, 1);
|
||||
|
||||
/// holds current palette color
|
||||
/// on toggling the palette colors before or after apply settings
|
||||
Color currentPrimaryColor = const Color.fromRGBO(0, 116, 227, 1);
|
||||
|
||||
/// holds the current theme data
|
||||
late ThemeData themeData;
|
||||
|
||||
/// Holds theme baased color of web outputcontainer
|
||||
Color textColor = const Color.fromRGBO(51, 51, 51, 1);
|
||||
|
||||
/// Holds theme based drawer text color
|
||||
Color drawerTextIconColor = Colors.black;
|
||||
|
||||
/// Holds theme based bottom sheet color
|
||||
Color bottomSheetBackgroundColor = Colors.white;
|
||||
|
||||
/// Holds theme based card color
|
||||
Color cardThemeColor = Colors.white;
|
||||
|
||||
/// Holds theme based web page background color
|
||||
Color webBackgroundColor = const Color.fromRGBO(246, 246, 246, 1);
|
||||
|
||||
/// Holds theme based color of icon
|
||||
Color webIconColor = const Color.fromRGBO(0, 0, 0, 0.54);
|
||||
|
||||
/// Holds theme based input container color
|
||||
Color webInputColor = const Color.fromRGBO(242, 242, 242, 1);
|
||||
|
||||
/// Holds theme based web outputcontainer color
|
||||
Color webOutputContainerColor = Colors.white;
|
||||
|
||||
/// Holds the theme based card's color
|
||||
Color cardColor = Colors.white;
|
||||
|
||||
/// Holds the theme based divider color
|
||||
Color dividerColor = const Color.fromRGBO(204, 204, 204, 1);
|
||||
|
||||
/// Holds the old browser window's height and width
|
||||
Size? oldWindowSize;
|
||||
|
||||
/// Holds the current browser window's height and width
|
||||
late Size currentWindowSize;
|
||||
|
||||
//static List<SampleRoute> _routes = <SampleRoute>[];
|
||||
|
||||
/// List of navigation routes text and appropriate subitem
|
||||
//late List<SampleRoute>? routes;
|
||||
|
||||
/// Holds the current visible sample, only for web
|
||||
late dynamic currentRenderSample;
|
||||
|
||||
/// Holds the current rendered sample's key, only for web
|
||||
late String? currentSampleKey;
|
||||
|
||||
/// Contains the light theme pallete colors
|
||||
late List<Color>? paletteColors;
|
||||
|
||||
/// Contains the pallete's border colors
|
||||
late List<Color>? paletteBorderColors;
|
||||
|
||||
/// Contains dark theme theme palatte colors
|
||||
late List<Color>? darkPaletteColors;
|
||||
|
||||
/// Holds current theme data
|
||||
ThemeData? currentThemeData;
|
||||
|
||||
/// Holds current pallete color
|
||||
Color currentPaletteColor = const Color.fromRGBO(0, 116, 227, 1);
|
||||
|
||||
/// holds the index to finding the current theme
|
||||
/// In mobile sb - system 0, light 1, dark 2
|
||||
int selectedThemeIndex = 0;
|
||||
|
||||
/// Holds the information of isCardView or not
|
||||
bool isCardView = true;
|
||||
|
||||
/// Holds the information of isMobileResolution or not
|
||||
/// To render the appbar and search bar based on it
|
||||
late bool isMobileResolution;
|
||||
|
||||
/// Holds the current system theme
|
||||
late ThemeData systemTheme;
|
||||
|
||||
/// Editing controller which used in the search text field
|
||||
TextEditingController editingController = TextEditingController();
|
||||
|
||||
/// Key of the property panel widget
|
||||
late GlobalKey<State> propertyPanelKey;
|
||||
|
||||
/// Holds the information of to be maximize or not
|
||||
bool needToMaximize = false;
|
||||
|
||||
///Storing state of current output container
|
||||
late dynamic outputContainerState;
|
||||
|
||||
///Storing state of web output container
|
||||
//late SampleOutputContainerState webOutputContainerState;
|
||||
|
||||
///check whether application is running on web/linuxOS/windowsOS/macOS
|
||||
bool isWebFullView = false;
|
||||
|
||||
///Check whether application is running on a mobile device
|
||||
bool isMobile = false;
|
||||
|
||||
///Check whether application is running on the web browser
|
||||
bool isWeb = false;
|
||||
|
||||
///Check whether application is running on the desktop
|
||||
bool isDesktop = false;
|
||||
|
||||
///Check whether application is running on the Android mobile device
|
||||
bool isAndroid = false;
|
||||
|
||||
///Check whether application is running on the Windows desktop OS
|
||||
bool isWindows = false;
|
||||
|
||||
///Check whether application is running on the iOS mobile device
|
||||
bool isIOS = false;
|
||||
|
||||
///Check whether application is running on the Linux desktop OS
|
||||
bool isLinux = false;
|
||||
|
||||
///Check whether application is running on the macOS desktop
|
||||
bool isMacOS = false;
|
||||
|
||||
/// This controls to open / hide the property panel
|
||||
bool isPropertyPanelOpened = true;
|
||||
|
||||
/// holds the current route of sample.
|
||||
//late SampleRoute currentSampleRoute;
|
||||
|
||||
/// holds the collection of all sample routes.
|
||||
//static List<SampleRoute> sampleRoutes = <SampleRoute>[];
|
||||
|
||||
/// Switching between light, dark, system themes
|
||||
void changeTheme(ThemeData _themeData) {
|
||||
themeData = _themeData;
|
||||
switch (_themeData.brightness) {
|
||||
case Brightness.dark:
|
||||
{
|
||||
dividerColor = const Color.fromRGBO(61, 61, 61, 1);
|
||||
cardColor = const Color.fromRGBO(48, 48, 48, 1);
|
||||
webIconColor = const Color.fromRGBO(255, 255, 255, 0.65);
|
||||
webOutputContainerColor = const Color.fromRGBO(23, 23, 23, 1);
|
||||
webInputColor = const Color.fromRGBO(44, 44, 44, 1);
|
||||
webBackgroundColor = const Color.fromRGBO(33, 33, 33, 1);
|
||||
drawerTextIconColor = Colors.white;
|
||||
bottomSheetBackgroundColor = const Color.fromRGBO(34, 39, 51, 1);
|
||||
textColor = const Color.fromRGBO(242, 242, 242, 1);
|
||||
cardThemeColor = const Color.fromRGBO(33, 33, 33, 1);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
dividerColor = const Color.fromRGBO(204, 204, 204, 1);
|
||||
cardColor = Colors.white;
|
||||
webIconColor = const Color.fromRGBO(0, 0, 0, 0.54);
|
||||
webOutputContainerColor = Colors.white;
|
||||
webInputColor = const Color.fromRGBO(242, 242, 242, 1);
|
||||
webBackgroundColor = const Color.fromRGBO(246, 246, 246, 1);
|
||||
drawerTextIconColor = Colors.black;
|
||||
bottomSheetBackgroundColor = Colors.white;
|
||||
textColor = const Color.fromRGBO(51, 51, 51, 1);
|
||||
cardThemeColor = Colors.white;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//ignore: prefer_collection_literals
|
||||
final Set<VoidCallback> _listeners = Set<VoidCallback>();
|
||||
@override
|
||||
|
||||
/// [listener] will be invoked when the model changes.
|
||||
void addListener(VoidCallback listener) {
|
||||
_listeners.add(listener);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
/// [listener] will no longer be invoked when the model changes.
|
||||
void removeListener(VoidCallback listener) {
|
||||
_listeners.remove(listener);
|
||||
}
|
||||
|
||||
/// Should be called only by [Model] when the model has changed.
|
||||
@protected
|
||||
void notifyListeners() {
|
||||
_listeners.toList().forEach((VoidCallback listener) => listener());
|
||||
}
|
||||
}
|
||||
|
||||
/// Base class of the sample's stateful widget class
|
||||
abstract class SampleView extends StatefulWidget {
|
||||
/// base class constructor of sample's stateful widget class
|
||||
const SampleView({Key? key}) : super(key: key);
|
||||
}
|
||||
|
||||
/// Base class of the sample's state class
|
||||
abstract class SampleViewState extends State<SampleView> {
|
||||
/// Holds the SampleModel information
|
||||
late SampleModel model;
|
||||
|
||||
/// Holds the information of current page is card view or not
|
||||
late bool isCardView;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
model = SampleModel.instance;
|
||||
isCardView = model.isCardView && !model.isWebFullView;
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
/// Must call super.
|
||||
void dispose() {
|
||||
model.isCardView = true;
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
/// Get the settings panel content.
|
||||
Widget? buildSettings(BuildContext context) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user