Skip to content

Commit f889b6d

Browse files
committed
Add preset for aluminum and paper. Fix message in paper size list
1 parent b4159d9 commit f889b6d

File tree

7 files changed

+336
-25
lines changed

7 files changed

+336
-25
lines changed

desktopbraillerap.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@
3131
"OptimLevel":0,
3232
"Speed":6000,
3333
"Accel":1500,
34+
"VectorIndex":0,
35+
"VectorSteps":[
36+
{"name":"Paper", "step":2.4, "lock":True},
37+
{"name":"Aluminium Can", "step":1.8, "lock":True}
38+
],
3439
"PaperUsableSize":[
3540
{"name":"A4 (BrailleRAP XL)","width":210, "height":250, "lock":True},
3641
{"name":"A3 (BrailleRAP XL)","width":297, "height":420-47, "lock":True},

src/components/AppOption.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ const AppOption = {
1212
OptimLevel:0,
1313
Speed:6000,
1414
Accel:1500,
15+
VectorIndex:0,
16+
VectorSteps:[
17+
{name:"Paper", step:2.4, lock:true},
18+
{name:"Aluminium Can", step:1.8, lock:true}
19+
],
1520
PaperUsableSize:[
1621
{name:"A4",width:210, height:250,lock:true},
1722
{name:"A3",width:297, height:420-47,lock:true},

src/locales/en.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@
8383
"param.custom.device_size.aria": "Customize device size",
8484
"param.usable_size": "Print area size",
8585
"param.custom.usable_size.aria": "Customize print area size",
86+
"param.custom.vector.step.aria":"Customize available vector steps",
87+
"param.diag.stepmm":"Step in mm along paths",
88+
"param.usable.diag.material":"Material name",
8689
"param.modal.title.printsize": "Customize printing area size",
8790
"param.modal.updatelocked": "You cannot modify a locked element",
8891
"param.modal.details": "Area details",

src/locales/fr.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,12 @@
8181
"param.custom.device_size.aria": "Modifier les dimensions de BrailleRAP",
8282
"param.usable_size": "Taille de la zone d'impression",
8383
"param.custom.usable_size.aria": "Modifier les tailles de zones d'impression",
84+
"param.custom.vector.step.aria":"Modifier les écarts des points pour les graphiques",
8485
"param.modal.title.devicesize": "Tailles de BrailleRAP disponibles",
8586
"param.modal.title.printsize": "Tailles de zones d'impression disponibles",
8687
"param.modal.updatelocked": "Vous ne pouvez pas modifier un élément verrouillé",
88+
"param.diag.stepmm":"Ecart en mm entre les points sur les chemins",
89+
"param.usable.diag.material":"Nom du materiau",
8790
"param.modal.details": "Détails de la zone",
8891
"param.modal.add": "Ajouter",
8992
"param.modal.delete": "Supprimer",

src/pages/ModalPrintSize.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ const ModalPrintSize = ({ show, handleOK, handleCancel, paperusablesize, title})
6262

6363
}
6464
const onDelete = () => {
65-
if (SelectedSize) {
65+
if (SelectedSize >= 0) {
6666
console.log(SelectedSize);
6767
console.log(usableSize[SelectedSize]);
6868
if (usableSize[SelectedSize].lock === false) {

src/pages/ModalVectorStep.js

Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
import React, { useState, useContext, useEffect } from 'react';
2+
import Modal from 'react-modal'
3+
import AppContext from "../components/AppContext";
4+
5+
const ModalVectorStep = ({ show, handleOK, handleCancel, vectorstepmmlist, title}) => {
6+
const { GetLocaleString } = useContext(AppContext);
7+
const [SelectedStep, setSelectedStep] = useState(0);
8+
const [Name, setName] = useState('New');
9+
const [Stepmm, setStepmm] = useState(2.5);
10+
console.log ("modal");
11+
console.log (vectorstepmmlist);
12+
const [CustomStepmmList, setCustomStepmmList] = useState([...vectorstepmmlist] || []);
13+
const [Message, setMessage] =useState("");
14+
15+
useEffect(() => {
16+
console.log (vectorstepmmlist);
17+
if (CustomStepmmList.length === 0)
18+
{
19+
setCustomStepmmList([...vectorstepmmlist] || []);
20+
if (vectorstepmmlist && vectorstepmmlist.length > 0)
21+
{
22+
setName (vectorstepmmlist[0].name);
23+
setStepmm(vectorstepmmlist[0].step);
24+
}
25+
}
26+
27+
return (() => { });
28+
}, [CustomStepmmList]);
29+
30+
const render_lock = (locked) => {
31+
return locked ? String.fromCodePoint(0x1f512): " ";
32+
33+
}
34+
35+
const onOk = () => {
36+
if (handleOK)
37+
handleOK(CustomStepmmList);
38+
}
39+
const onCancel = () => {
40+
if (handleCancel)
41+
handleCancel();
42+
}
43+
const onAdd = () => {
44+
45+
let data = { name: Name, step: Stepmm, lock: false };
46+
setCustomStepmmList([...CustomStepmmList, data]);
47+
48+
}
49+
const onUpdate = () =>
50+
{
51+
let index = parseInt(SelectedStep);
52+
let option = [...CustomStepmmList];
53+
let data = { name: Name, step: Stepmm, lock: false };
54+
if (! option[index].lock)
55+
{
56+
option[index] = data;
57+
setCustomStepmmList(option);
58+
}
59+
else{
60+
setMessage (GetLocaleString("param.modal.updatelocked"));
61+
}
62+
63+
}
64+
const onDelete = () => {
65+
if (SelectedStep >= 0) {
66+
if (CustomStepmmList[SelectedStep].lock === false) {
67+
let data = [...CustomStepmmList];
68+
data.splice(SelectedStep, 1);
69+
setCustomStepmmList(data);
70+
}
71+
else
72+
{
73+
setMessage (GetLocaleString("param.modal.updatelocked"));
74+
}
75+
}
76+
}
77+
const onDuplicate = () => {
78+
if (SelectedStep >= 0) {
79+
let data = [...CustomStepmmList];
80+
let elem = { ...data[SelectedStep] };
81+
elem.name += " Copy";
82+
elem.lock = false;
83+
data.push(elem);
84+
setCustomStepmmList(data);
85+
86+
}
87+
}
88+
89+
const render_message = () => {
90+
if (Message.length > 0)
91+
return (<div className='content'>
92+
<div class="alert alert-danger alert-white rounded">
93+
{Message}
94+
<button type="button" class="close"
95+
data-dismiss="alert"
96+
aria-hidden="true"
97+
onClick={() => { setMessage("") }}>×</button>
98+
<div class="icon"><i class="fa fa-check"></i></div>
99+
</div>
100+
101+
</div>);
102+
return (<div className='content'>
103+
104+
<div class="rounded">
105+
&nbsp;
106+
107+
<div class="icon"><i class="fa fa-check"></i></div>
108+
</div>
109+
</div>)
110+
}
111+
112+
return (
113+
114+
<div
115+
tabIndex={0}
116+
onKeyUp={(e) => {
117+
e.stopPropagation();
118+
console.log(e);
119+
if (e.key === "Escape")
120+
onCancel()
121+
else if (e.key === 'Enter')
122+
onOk();
123+
}}>
124+
<Modal
125+
isOpen={show}
126+
contentLabel="Toto"
127+
aria={{ hidden: false, label: ' ' }}
128+
onRequestClose={()=>{onCancel()}}
129+
>
130+
131+
<div className='MakeColumn100' >
132+
133+
<div>
134+
<h2>{title ? title : ""}</h2>
135+
<select
136+
onChange={(e) => {
137+
console.log (e);
138+
let index = parseInt(e.target.value);
139+
setStepmm (CustomStepmmList[index].step);
140+
console.log (CustomStepmmList[index]);
141+
setName (CustomStepmmList[index].name);
142+
setSelectedStep(index);
143+
}}
144+
value={SelectedStep}
145+
id="steplist"
146+
name="steplist"
147+
className='select_modal'
148+
size="6"
149+
>
150+
{CustomStepmmList.map((item, index) => {
151+
if (SelectedStep === index)
152+
return (<option aria-selected={true} key={item.name} value={index}>{render_lock(item.lock)} {item.name} ({item.step}mm)</option>);
153+
else
154+
return (<option aria-selected={false} key={item.name} value={index}>{render_lock(item.lock)} {item.name} ({item.step}mm)</option>);
155+
})
156+
}
157+
</select>
158+
</div>
159+
<div>
160+
<div className='pure-form pure-form-aligned'>
161+
{render_message()}
162+
<div className='pure-control-group'>
163+
<legend>{GetLocaleString("param.modal.details")}</legend>
164+
<fieldset>
165+
<label for='myInputWUDiag'>
166+
{GetLocaleString("param.usable.diag.material")}:
167+
</label>
168+
<input type="text"
169+
defaultValue={Name}
170+
value={Name}
171+
name="myInputNameDiag"
172+
id="myInputNameDiag"
173+
174+
onChange={(e) => {
175+
//this.handleChangePaper('usablewidth', e.target.value);
176+
setName(e.target.value);
177+
}}
178+
style={{ width: "12em" }}
179+
/><br />
180+
<label for='myInputWUDiag'>
181+
{GetLocaleString("param.diag.stepmm")}(mm):
182+
</label>
183+
<input type="number"
184+
min={100}
185+
max={420}
186+
defaultValue={Stepmm}
187+
value={Stepmm}
188+
name="myInputWUDiag"
189+
id="myInputWUDiag"
190+
191+
onChange={(e) => {
192+
//this.handleChangePaper('usablewidth', e.target.value);
193+
setStepmm(e.target.value);
194+
}}
195+
style={{ width: "5em" }}
196+
/><br />
197+
198+
199+
200+
201+
</fieldset>
202+
203+
<fieldset>
204+
<button className="pad-button pure-button"
205+
onClick={() => { onAdd() }}
206+
>
207+
{GetLocaleString("param.modal.add")}
208+
</button>&nbsp;
209+
<button className="pad-button pure-button"
210+
onClick={() => { onDelete() }}
211+
>
212+
{GetLocaleString("param.modal.delete")}
213+
</button>&nbsp;
214+
<button className="pad-button pure-button"
215+
onClick={() => { onUpdate() }}
216+
>
217+
{GetLocaleString("param.modal.update")}
218+
</button>&nbsp;
219+
<button className="pad-button pure-button"
220+
onClick={() => { onDuplicate() }}
221+
>
222+
{GetLocaleString("param.modal.duplicate")}
223+
</button>&nbsp;
224+
</fieldset>
225+
<fieldset>
226+
<button className="pad-button pure-button"
227+
onClick={() => { onOk() }}
228+
>
229+
{GetLocaleString("param.modal.ok")}
230+
231+
</button>&nbsp;
232+
<button className="pad-button pure-button"
233+
onClick={() => { onCancel() }}
234+
>
235+
{GetLocaleString("param.modal.cancel")}
236+
237+
</button>
238+
</fieldset>
239+
240+
</div>
241+
</div>
242+
</div>
243+
</div>
244+
</Modal>
245+
</div>
246+
);
247+
}
248+
export default ModalVectorStep;

0 commit comments

Comments
 (0)