Request Management 1.0
parent
f2224a3f76
commit
4b08a974bb
@ -0,0 +1,31 @@
|
||||
class Enums {
|
||||
int id;
|
||||
int enumTypeId;
|
||||
String enumValueStr;
|
||||
int enumValue;
|
||||
bool isActive;
|
||||
|
||||
Enums({
|
||||
required this.id,
|
||||
required this.enumTypeId,
|
||||
required this.enumValueStr,
|
||||
required this.enumValue,
|
||||
required this.isActive,
|
||||
});
|
||||
|
||||
factory Enums.fromJson(Map<String, dynamic> json) => Enums(
|
||||
id: json["id"],
|
||||
enumTypeId: json["enumTypeID"],
|
||||
enumValueStr: json["enumValueStr"],
|
||||
enumValue: json["enumValue"],
|
||||
isActive: json["isActive"],
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"id": id,
|
||||
"enumTypeID": enumTypeId,
|
||||
"enumValueStr": enumValueStr,
|
||||
"enumValue": enumValue,
|
||||
"isActive": isActive,
|
||||
};
|
||||
}
|
@ -0,0 +1,101 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:math' as math;
|
||||
|
||||
class DashedRect extends StatelessWidget {
|
||||
final Color color;
|
||||
final double strokeWidth;
|
||||
final double gap;
|
||||
|
||||
DashedRect({this.color = Colors.black, this.strokeWidth = 1.0, this.gap = 5.0});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.all(strokeWidth / 2),
|
||||
child: CustomPaint(
|
||||
painter: DashRectPainter(color: color, strokeWidth: strokeWidth, gap: gap),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class DashRectPainter extends CustomPainter {
|
||||
double strokeWidth;
|
||||
Color color;
|
||||
double gap;
|
||||
|
||||
DashRectPainter({this.strokeWidth = 5.0, this.color = Colors.red, this.gap = 5.0});
|
||||
|
||||
@override
|
||||
void paint(Canvas canvas, Size size) {
|
||||
Paint dashedPaint = Paint()
|
||||
..color = color
|
||||
..strokeWidth = strokeWidth
|
||||
..style = PaintingStyle.stroke;
|
||||
|
||||
double x = size.width;
|
||||
double y = size.height;
|
||||
|
||||
Path _topPath = getDashedPath(
|
||||
a: math.Point(0, 0),
|
||||
b: math.Point(x, 0),
|
||||
gap: gap,
|
||||
);
|
||||
|
||||
Path _rightPath = getDashedPath(
|
||||
a: math.Point(x, 0),
|
||||
b: math.Point(x, y),
|
||||
gap: gap,
|
||||
);
|
||||
|
||||
Path _bottomPath = getDashedPath(
|
||||
a: math.Point(0, y),
|
||||
b: math.Point(x, y),
|
||||
gap: gap,
|
||||
);
|
||||
|
||||
Path _leftPath = getDashedPath(
|
||||
a: math.Point(0, 0),
|
||||
b: math.Point(0.001, y),
|
||||
gap: gap,
|
||||
);
|
||||
|
||||
canvas.drawPath(_topPath, dashedPaint);
|
||||
canvas.drawPath(_rightPath, dashedPaint);
|
||||
canvas.drawPath(_bottomPath, dashedPaint);
|
||||
canvas.drawPath(_leftPath, dashedPaint);
|
||||
}
|
||||
|
||||
Path getDashedPath({
|
||||
required math.Point<double> a,
|
||||
required math.Point<double> b,
|
||||
required gap,
|
||||
}) {
|
||||
Size size = Size(b.x - a.x, b.y - a.y);
|
||||
Path path = Path();
|
||||
path.moveTo(a.x, a.y);
|
||||
bool shouldDraw = true;
|
||||
math.Point currentPoint = math.Point(a.x, a.y);
|
||||
|
||||
num radians = math.atan(size.height / size.width);
|
||||
|
||||
num dx = math.cos(radians) * gap < 0 ? math.cos(radians) * gap * -1 : math.cos(radians) * gap;
|
||||
|
||||
num dy = math.sin(radians) * gap < 0 ? math.sin(radians) * gap * -1 : math.sin(radians) * gap;
|
||||
|
||||
while (currentPoint.x <= b.x && currentPoint.y <= b.y) {
|
||||
shouldDraw ? path.lineTo(currentPoint.x.toDouble(), currentPoint.y.toDouble()) : path.moveTo(currentPoint.x.toDouble(), currentPoint.y.toDouble());
|
||||
shouldDraw = !shouldDraw;
|
||||
currentPoint = math.Point(
|
||||
currentPoint.x + dx,
|
||||
currentPoint.y + dy,
|
||||
);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
@override
|
||||
bool shouldRepaint(CustomPainter oldDelegate) {
|
||||
return true;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue