Skip to content

Commit 3b77b4c

Browse files
Merge pull request #91 from SriramKiranSenthilkumar/master
committed the release source
2 parents 680e350 + a70be65 commit 3b77b4c

File tree

550 files changed

+100931
-33795
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

550 files changed

+100931
-33795
lines changed

README.md

+19-19
Large diffs are not rendered by default.

packages/syncfusion_flutter_barcodes/example/lib/main.dart

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ void main() {
55
return runApp(MyApp());
66
}
77

8+
/// Creates the barcode generator
89
class MyApp extends StatelessWidget {
910
@override
1011
Widget build(BuildContext context) {

packages/syncfusion_flutter_barcodes/lib/barcodes.dart

+19-27
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,23 @@
1111
/// * [Knowledge base](https://www.syncfusion.com/kb/flutter)
1212
library barcodes;
1313

14-
import 'dart:convert' show utf8;
15-
import 'dart:ui';
16-
import 'package:flutter/material.dart';
17-
import 'package:flutter/rendering.dart';
18-
import 'package:syncfusion_flutter_core/theme.dart';
19-
2014
// export barcode library
21-
part './src/barcode_generator/base/barcode_generator.dart';
22-
part './src/barcode_generator/base/symbology_base.dart';
23-
part './src/barcode_generator/one_dimensional/codabar_symbology.dart';
24-
part './src/barcode_generator/one_dimensional/code39_symbology.dart';
25-
part './src/barcode_generator/one_dimensional/code39_extended_symbology.dart';
26-
part './src/barcode_generator/one_dimensional/code93_symbology.dart';
27-
part './src/barcode_generator/one_dimensional/code128_symbology.dart';
28-
part './src/barcode_generator/one_dimensional/code128a_symbology.dart';
29-
part './src/barcode_generator/one_dimensional/code128b_symbology.dart';
30-
part './src/barcode_generator/one_dimensional/code128c_symbology.dart';
31-
part './src/barcode_generator/one_dimensional/ean8_symbology.dart';
32-
part './src/barcode_generator/one_dimensional/ean13_symbology.dart';
33-
part './src/barcode_generator/one_dimensional/upca_symbology.dart';
34-
part './src/barcode_generator/one_dimensional/upce_symbology.dart';
35-
part './src/barcode_generator/utils/helper.dart';
36-
part './src/barcode_generator/utils/enum.dart';
37-
part './src/barcode_generator/common/barcode_renderer.dart';
38-
part './src/barcode_generator/two_dimensional/error_correction_codewords.dart';
39-
part './src/barcode_generator/two_dimensional/qr_code_symbology.dart';
40-
part './src/barcode_generator/two_dimensional/qr_code_values.dart';
41-
part './src/barcode_generator/two_dimensional/datamatrix_symbology.dart';
15+
export './src/barcode_generator/base/barcode_generator.dart';
16+
export './src/barcode_generator/base/symbology_base.dart';
17+
export './src/barcode_generator/one_dimensional/codabar_symbology.dart';
18+
export './src/barcode_generator/one_dimensional/code128_symbology.dart';
19+
export './src/barcode_generator/one_dimensional/code128a_symbology.dart';
20+
export './src/barcode_generator/one_dimensional/code128b_symbology.dart';
21+
export './src/barcode_generator/one_dimensional/code128c_symbology.dart';
22+
23+
export './src/barcode_generator/one_dimensional/code39_extended_symbology.dart';
24+
export './src/barcode_generator/one_dimensional/code39_symbology.dart';
25+
export './src/barcode_generator/one_dimensional/code93_symbology.dart';
26+
27+
export './src/barcode_generator/one_dimensional/ean13_symbology.dart';
28+
export './src/barcode_generator/one_dimensional/ean8_symbology.dart';
29+
export './src/barcode_generator/one_dimensional/upca_symbology.dart';
30+
export './src/barcode_generator/one_dimensional/upce_symbology.dart';
31+
export './src/barcode_generator/two_dimensional/datamatrix_symbology.dart';
32+
export './src/barcode_generator/two_dimensional/qr_code_symbology.dart';
33+
export './src/barcode_generator/utils/enum.dart';

packages/syncfusion_flutter_barcodes/lib/src/barcode_generator/base/barcode_generator.dart

+91-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,44 @@
1-
part of barcodes;
1+
import 'dart:ui';
2+
import 'package:flutter/material.dart';
3+
import 'package:flutter/rendering.dart';
4+
import 'package:syncfusion_flutter_core/theme.dart';
5+
import '../common/barcode_renderer.dart';
6+
import '../one_dimensional/codabar_symbology.dart';
7+
import '../one_dimensional/code128_symbology.dart';
8+
import '../one_dimensional/code128a_symbology.dart';
9+
import '../one_dimensional/code128b_symbology.dart';
10+
import '../one_dimensional/code128c_symbology.dart';
11+
12+
import '../one_dimensional/code39_extended_symbology.dart';
13+
import '../one_dimensional/code39_symbology.dart';
14+
import '../one_dimensional/code93_symbology.dart';
15+
16+
import '../one_dimensional/ean13_symbology.dart';
17+
import '../one_dimensional/ean8_symbology.dart';
18+
import '../one_dimensional/upca_symbology.dart';
19+
import '../one_dimensional/upce_symbology.dart';
20+
21+
import '../renderers/one_dimensional/codabar_renderer.dart';
22+
23+
import '../renderers/one_dimensional/code128A_renderer.dart';
24+
import '../renderers/one_dimensional/code128B_renderer.dart';
25+
import '../renderers/one_dimensional/code128C_renderer.dart';
26+
import '../renderers/one_dimensional/code128_renderer.dart';
27+
import '../renderers/one_dimensional/code39_extended_renderer.dart';
28+
import '../renderers/one_dimensional/code39_renderer.dart';
29+
import '../renderers/one_dimensional/code93_renderer.dart';
30+
import '../renderers/one_dimensional/ean13_renderer.dart';
31+
import '../renderers/one_dimensional/ean8_renderer.dart';
32+
import '../renderers/one_dimensional/symbology_base_renderer.dart';
33+
import '../renderers/one_dimensional/upca_renderer.dart';
34+
import '../renderers/one_dimensional/upce_renderer.dart';
35+
import '../renderers/two_dimensional/datamatrix_renderer.dart';
36+
import '../renderers/two_dimensional/qr_code_renderer.dart';
37+
import '../two_dimensional/datamatrix_symbology.dart';
38+
import '../two_dimensional/qr_code_symbology.dart';
39+
40+
import '../utils/helper.dart';
41+
import 'symbology_base.dart';
242

343
/// Create barcode to generate and display data in a machine-readable
444
/// industry-standard 1D and 2D barcodes.
@@ -226,6 +266,8 @@ class _SfBarcodeGeneratorState extends State<SfBarcodeGenerator> {
226266
/// Specifies the text size
227267
Size _textSize;
228268

269+
SymbologyRenderer _symbologyRenderer;
270+
229271
@override
230272
void didChangeDependencies() {
231273
_barcodeTheme = SfBarcodeTheme.of(context);
@@ -237,22 +279,64 @@ class _SfBarcodeGeneratorState extends State<SfBarcodeGenerator> {
237279
if (widget.showValue &&
238280
(oldWidget.value != widget.value ||
239281
oldWidget.textStyle != widget.textStyle)) {
240-
_textSize = _measureText(widget.value.toString(), widget.textStyle);
282+
_textSize = measureText(widget.value.toString(), widget.textStyle);
283+
}
284+
285+
if (widget.symbology != oldWidget.symbology) {
286+
_createSymbologyRenderer();
241287
}
242288

243289
super.didUpdateWidget(oldWidget);
244290
}
245291

292+
@override
293+
void initState() {
294+
_createSymbologyRenderer();
295+
super.initState();
296+
}
297+
298+
void _createSymbologyRenderer() {
299+
if (widget.symbology is Codabar) {
300+
_symbologyRenderer = CodabarRenderer(symbology: widget.symbology);
301+
} else if (widget.symbology is Code39Extended) {
302+
_symbologyRenderer = Code39ExtendedRenderer(symbology: widget.symbology);
303+
} else if (widget.symbology is Code39) {
304+
_symbologyRenderer = Code39Renderer(symbology: widget.symbology);
305+
} else if (widget.symbology is Code93) {
306+
_symbologyRenderer = Code93Renderer(symbology: widget.symbology);
307+
} else if (widget.symbology is Code128) {
308+
_symbologyRenderer = Code128Renderer(symbology: widget.symbology);
309+
} else if (widget.symbology is Code128A) {
310+
_symbologyRenderer = Code128ARenderer(symbology: widget.symbology);
311+
} else if (widget.symbology is Code128B) {
312+
_symbologyRenderer = Code128BRenderer(symbology: widget.symbology);
313+
} else if (widget.symbology is Code128C) {
314+
_symbologyRenderer = Code128CRenderer(symbology: widget.symbology);
315+
} else if (widget.symbology is EAN8) {
316+
_symbologyRenderer = EAN8Renderer(symbology: widget.symbology);
317+
} else if (widget.symbology is EAN13) {
318+
_symbologyRenderer = EAN13Renderer(symbology: widget.symbology);
319+
} else if (widget.symbology is UPCA) {
320+
_symbologyRenderer = UPCARenderer(symbology: widget.symbology);
321+
} else if (widget.symbology is UPCE) {
322+
_symbologyRenderer = UPCERenderer(symbology: widget.symbology);
323+
} else if (widget.symbology is QRCode) {
324+
_symbologyRenderer = QRCodeRenderer(symbology: widget.symbology);
325+
} else if (widget.symbology is DataMatrix) {
326+
_symbologyRenderer = DataMatrixRenderer(symbology: widget.symbology);
327+
}
328+
}
329+
246330
@override
247331
Widget build(BuildContext context) {
248332
if (widget.showValue && _textSize == null) {
249-
_textSize = _measureText(widget.value.toString(), widget.textStyle);
333+
_textSize = measureText(widget.value.toString(), widget.textStyle);
250334
}
251-
widget.symbology._getIsValidateInput(widget.value);
252-
widget.symbology._textSize = _textSize;
335+
_symbologyRenderer.getIsValidateInput(widget.value);
336+
_symbologyRenderer.textSize = _textSize;
253337
return Container(
254338
color: widget.backgroundColor ?? _barcodeTheme.backgroundColor,
255-
child: _SfBarcodeGeneratorRenderObjectWidget(
339+
child: SfBarcodeGeneratorRenderObjectWidget(
256340
value: widget.value,
257341
symbology: widget.symbology,
258342
foregroundColor: widget.barColor ?? _barcodeTheme.barColor,
@@ -266,6 +350,7 @@ class _SfBarcodeGeneratorState extends State<SfBarcodeGenerator> {
266350
fontStyle: widget.textStyle.fontStyle,
267351
fontWeight: widget.textStyle.fontWeight,
268352
textBaseline: widget.textStyle.textBaseline),
353+
symbologyRenderer: _symbologyRenderer,
269354
textSize: _textSize,
270355
textAlign: widget.textAlign),
271356
);
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
part of barcodes;
2-
31
/// Define the barcode symbology that will be used to encode the input value
42
/// to the visual barcode representation.
53
///
@@ -47,118 +45,4 @@ abstract class Symbology {
4745
///}
4846
/// ```dart
4947
final int module;
50-
51-
/// Specifies the value with start and the stop symbol
52-
String _valueWithStartAndStopSymbol;
53-
54-
/// Specifies the text size
55-
Size _textSize;
56-
57-
/// Method to valid whether the provided input character is supported
58-
/// by corresponding symbology
59-
bool _getIsValidateInput(String value);
60-
61-
/// Method to render the barcode value
62-
void _renderBarcode(
63-
Canvas canvas,
64-
Size size,
65-
Offset offset,
66-
String value,
67-
Color foregroundColor,
68-
TextStyle textStyle,
69-
double textSpacing,
70-
TextAlign textAlign,
71-
bool showValue);
72-
73-
/// Renders the paint for the bar code
74-
Paint _getBarPaint(Color foregroundColor) {
75-
return Paint()
76-
..color = foregroundColor
77-
..strokeWidth = 1
78-
..style = PaintingStyle.fill;
79-
}
80-
81-
/// Calculates the left value of the initial bar code
82-
double _getLeftPosition(
83-
int barWidth, int module, double width, double offsetX) {
84-
final int calculatedWidth = barWidth * module;
85-
// Calculates the left position of the barcode based on the provided
86-
// module value
87-
double diffInWidth = (width - calculatedWidth) / 2;
88-
diffInWidth += offsetX;
89-
return diffInWidth;
90-
}
91-
92-
/// Method to render the input value of the barcode
93-
void _drawText(Canvas canvas, Offset offset, Size size, String value,
94-
TextStyle textStyle, double textSpacing, TextAlign textAlign,
95-
[Offset actualOffset, Size actualSize]) {
96-
final TextSpan span = TextSpan(text: value, style: textStyle);
97-
final TextPainter textPainter = TextPainter(
98-
text: span, textDirection: TextDirection.ltr, textAlign: textAlign);
99-
textPainter.layout();
100-
double x;
101-
double y;
102-
if ((this is UPCA || this is EAN13 || this is UPCE) && value.length == 1) {
103-
x = offset.dx;
104-
y = offset.dy;
105-
} else {
106-
switch (textAlign) {
107-
case TextAlign.justify:
108-
case TextAlign.center:
109-
{
110-
x = (offset.dx + size.width / 2) - textPainter.width / 2;
111-
y = offset.dy + size.height + textSpacing;
112-
}
113-
break;
114-
case TextAlign.left:
115-
case TextAlign.start:
116-
{
117-
x = offset.dx;
118-
y = offset.dy + size.height + textSpacing;
119-
}
120-
break;
121-
case TextAlign.right:
122-
case TextAlign.end:
123-
{
124-
x = offset.dx + (size.width - textPainter.width);
125-
y = offset.dy + size.height + textSpacing;
126-
}
127-
break;
128-
}
129-
}
130-
131-
if (this is UPCE || this is UPCA || this is EAN8 || this is EAN13) {
132-
// Checks whether the calculated x value is present inside the control
133-
// size
134-
if (x >= actualOffset.dx &&
135-
x + textPainter.width <= actualOffset.dx + actualSize.width) {
136-
textPainter.paint(canvas, Offset(x, y));
137-
}
138-
} else {
139-
textPainter.paint(canvas, Offset(x, y));
140-
}
141-
}
142-
143-
/// Calculates whether the corresponding type has extra height barcode
144-
bool _getHasExtraHeight(int currentItemIndex, List<String> code) {
145-
if (((currentItemIndex == 0 || currentItemIndex == code.length - 1) &&
146-
(this is Code39 || this is Code39Extended)) ||
147-
((this is EAN8 || this is EAN13) &&
148-
(currentItemIndex == 0 ||
149-
currentItemIndex == 2 ||
150-
currentItemIndex == code.length - 1)) ||
151-
this is UPCA &&
152-
(currentItemIndex == 1 ||
153-
currentItemIndex == code.length - 2 ||
154-
currentItemIndex == code.length - 4) ||
155-
this is UPCE &&
156-
(currentItemIndex == 1 ||
157-
currentItemIndex == code.length - 2 ||
158-
currentItemIndex == code.length - 4)) {
159-
return true;
160-
} else {
161-
return false;
162-
}
163-
}
16448
}

0 commit comments

Comments
 (0)