Skip to content

Commit cad42bb

Browse files
Implemented durationMode in TimeSpinner3D and added unit test.
- In `TimeSpinner3D.java`: - Implemented `setDurationMode(boolean)` to update state and rebuild UI. - Updated `addComponents` to add "hours" and "minutes" labels in duration mode. - Updated `rebuildHours` to set correct hour range (0-24) for duration mode. - Added `TimeSpinner3DTest.java` in `maven/core-unittests` to verify duration mode behavior.
1 parent 6c9df2e commit cad42bb

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.codename1.ui.spinner;
2+
3+
import com.codename1.ui.Component;
4+
import com.codename1.ui.Display;
5+
import com.codename1.ui.Form;
6+
import com.codename1.ui.Label;
7+
import com.codename1.ui.layouts.LayeredLayout;
8+
import com.codename1.junit.UITestBase;
9+
import org.junit.jupiter.api.Assertions;
10+
import org.junit.jupiter.api.Test;
11+
12+
public class TimeSpinner3DTest extends UITestBase {
13+
14+
@Test
15+
public void testDurationMode() {
16+
TimeSpinner3D ts = new TimeSpinner3D();
17+
ts.setDurationMode(true);
18+
19+
Assertions.assertTrue(ts.isDurationMode(), "durationMode should be true");
20+
Assertions.assertFalse(ts.isShowMeridiem(), "showMeridiem should be false in duration mode");
21+
22+
// Check components
23+
// In duration mode we expect: Hour spinner, Hour label, Minute spinner, Minute label
24+
// That is 4 components.
25+
26+
Assertions.assertEquals(4, ts.getComponentCount(), "Should have 4 components in duration mode");
27+
28+
boolean foundHoursLabel = false;
29+
boolean foundMinutesLabel = false;
30+
31+
for (int i = 0; i < ts.getComponentCount(); i++) {
32+
Component c = ts.getComponentAt(i);
33+
if (c instanceof Label) {
34+
Label l = (Label) c;
35+
if ("hours".equals(l.getText()) || "hours".equals(l.getUIID())) {
36+
if ("TimeSpinnerHoursLabel".equals(l.getUIID())) {
37+
foundHoursLabel = true;
38+
}
39+
}
40+
if ("minutes".equals(l.getText()) || "minutes".equals(l.getUIID())) {
41+
if ("TimeSpinnerMinutesLabel".equals(l.getUIID())) {
42+
foundMinutesLabel = true;
43+
}
44+
}
45+
}
46+
}
47+
48+
Assertions.assertTrue(foundHoursLabel, "Should find hours label");
49+
Assertions.assertTrue(foundMinutesLabel, "Should find minutes label");
50+
}
51+
}

0 commit comments

Comments
 (0)