+ w = af.alignPanel.getVisibleIdWidth(false);
+ // allow some leeway for different OS renderings
+ assertTrue(w > 105 && w < 120);
+ // different scaling (1.0, 2.0) gives different results
+ assertEquals(w, expectedWidth);
+ }
+
+ @Test(groups = { "Functional", "Not-bamboo" })
+ public void testresetIdWidth()
+ {
+ double scaling = jalview.gui.JvSwingUtilsTest.getScaling(af.alignPanel);
+ /*
+ * width for onscreen rendering is IDPanel width
+ */
+ int w = af.alignPanel.getVisibleIdWidth(true);
+ int actual = af.alignPanel.getIdPanel().getWidth();
+ assertEquals(w, actual);
+ // allow some leeway for different OS renderings
+ assertTrue(w > 105 && w < 120);
+ // different scaling (1.0, 2.0) gives different results
+ int expectedWidth = scaling == 1.0 ? 112 : Platform.isMac() ? 115 : 107;
+ assertEquals(w, expectedWidth);
+
+ // manually adjust
+ af.viewport.setIdWidth(200);
+ // fake mouse drag sets manuallyAdjusted to true (0,0 not moving mouse)
+ MouseEvent drag = new MouseEvent(af.alignPanel,
+ MouseEvent.MOUSE_DRAGGED, System.currentTimeMillis(), 0, 0, 0,
+ MouseEvent.BUTTON1, false);
+ af.alignPanel.idwidthAdjuster.mouseDragged(drag);
+ af.alignPanel.paintComponent(af.alignPanel.getGraphics());
+ w = af.alignPanel.calculateIdWidth().width;
+ assertTrue(
+ af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+ actual = af.alignPanel.getIdPanel().getWidth();
+ assertEquals(w, actual);
+
+ af.viewport.setIdWidth(-1);
+ af.alignPanel.calculateIdWidth();
+ af.alignPanel.getIdPanel().getIdCanvas().setManuallyAdjusted(false);
+ w = af.alignPanel.calculateIdWidth().width;
+ af.alignPanel.paintComponent(af.alignPanel.getGraphics());
+
+ actual = af.alignPanel.getIdPanel().getWidth();
+ assertEquals(w, actual);
+
+ // setting a negative IdWidth and then running calculateIdWidth resets width
+ // to optimal id width
+ // allow some leeway for different OS renderings
+ assertTrue(w > 105 && w < 120);
+ // different scaling (1.0, 2.0) gives different results
+ assertEquals(w, expectedWidth);