diff --git a/base/uk.ac.stfc.isis.ibex.client.tycho.parent/pom.xml b/base/uk.ac.stfc.isis.ibex.client.tycho.parent/pom.xml
index c10c3a07f3..0ad834963b 100644
--- a/base/uk.ac.stfc.isis.ibex.client.tycho.parent/pom.xml
+++ b/base/uk.ac.stfc.isis.ibex.client.tycho.parent/pom.xml
@@ -9,8 +9,8 @@
 	<properties>
 		<tycho.version>4.0.9</tycho.version>
 		<tycho-repo.url>https://oss.sonatype.org/content/groups/public/</tycho-repo.url>
-		<photon-repo.url>http://download.eclipse.org/releases/2024-09</photon-repo.url>
-		<photon-updates-repo.url>http://download.eclipse.org/eclipse/updates/4.33</photon-updates-repo.url>
+		<photon-repo.url>http://download.eclipse.org/releases/2024-12</photon-repo.url>
+		<photon-updates-repo.url>http://download.eclipse.org/eclipse/updates/4.34</photon-updates-repo.url>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 
diff --git a/base/uk.ac.stfc.isis.ibex.feature.css/feature.xml b/base/uk.ac.stfc.isis.ibex.feature.css/feature.xml
index 412e3250c1..6d6a99b2d1 100644
--- a/base/uk.ac.stfc.isis.ibex.feature.css/feature.xml
+++ b/base/uk.ac.stfc.isis.ibex.feature.css/feature.xml
@@ -104,10 +104,6 @@
          id="org.csstudio.autocomplete"
          version="0.0.0"/>
 
-   <plugin
-         id="org.hamcrest.core"
-         version="0.0.0"/>
-
    <plugin
          id="org.eclipse.equinox.p2.metadata"
          version="0.0.0"/>
@@ -132,10 +128,6 @@
          id="org.tukaani.xz"
          version="0.0.0"/>
 
-   <plugin
-         id="org.apache.commons.jxpath"
-         version="0.0.0"/>
-
    <plugin
          id="org.csstudio.logging.ui"
          version="0.0.0"/>
@@ -720,4 +712,8 @@
          id="jakarta.annotation-api"
          version="0.0.0"/>
 
+   <plugin
+         id="org.csstudio.opibuilder.widgets.extra"
+         version="0.0.0"/>
+
 </feature>
diff --git a/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target b/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target
index 7ecfd74ea0..ccf2b0ab60 100644
--- a/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target
+++ b/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target
@@ -31,14 +31,14 @@
 		<unit id="org.eclipse.nebula.visualization.feature.feature.group" version="2.1.0.202303072132"/>
 	</location>
 	<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-		<repository location="https://download.eclipse.org/eclipse/updates/4.33/"/>
-		<unit id="org.eclipse.platform.ide" version="4.33.0.I20240903-0240"/>
-		<unit id="org.eclipse.rcp.feature.group" version="4.33.0.v20240903-0618"/>
-		<unit id="org.eclipse.rcp.source.feature.group" version="4.33.0.v20240903-0618"/>
+		<repository location="https://download.eclipse.org/eclipse/updates/4.34/"/>
+		<unit id="org.eclipse.platform.ide" version="0.0.0"/>
+		<unit id="org.eclipse.rcp.feature.group" version="0.0.0"/>
+		<unit id="org.eclipse.rcp.source.feature.group" version="0.0.0"/>
   		<unit id="jakarta.annotation-api" version="1.3.5"/>
 	</location>
 	<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-		<repository location="https://download.eclipse.org/releases/2024-09/"/>
+		<repository location="https://download.eclipse.org/releases/2024-12/"/>
 		<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
 		<unit id="org.eclipse.gef.cloudio.sdk.feature.group" version="0.0.0"/>
 		<unit id="org.eclipse.gef.cloudio.user.feature.group" version="0.0.0"/>
@@ -53,7 +53,7 @@
 		<unit id="org.eclipse.gef.zest.sdk.feature.group" version="0.0.0"/>
 	</location>
 	<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-		<repository location="http://shadow.nd.rl.ac.uk/ICP_P2/css_gui_dependencies_2023_12_20/p2repo"/>
+		<repository location="http://shadow.nd.rl.ac.uk/ICP_P2/css_gui_dependencies_2025_03_18/p2repo"/>
 		<unit id="com.fasterxml.jackson.core.jackson-annotations" version="0.0.0"/>
 		<unit id="com.fasterxml.jackson.core.jackson-core" version="0.0.0"/>
 		<unit id="com.fasterxml.jackson.core.jackson-databind" version="0.0.0"/>
@@ -99,7 +99,7 @@
 			<dependency>
 				<groupId>org.apache.logging.log4j</groupId>
 				<artifactId>log4j-core</artifactId>
-				<version>2.24.1</version>
+				<version>2.24.3</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
@@ -109,7 +109,7 @@
 			<dependency>
 				<groupId>org.apache.logging.log4j</groupId>
 				<artifactId>log4j-api</artifactId>
-				<version>2.24.1</version>
+				<version>2.24.3</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
@@ -119,7 +119,7 @@
 			<dependency>
 				<groupId>org.apache.activemq</groupId>
 				<artifactId>activemq-all</artifactId>
-				<version>5.18.6</version>
+				<version>5.19.0</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
@@ -139,7 +139,7 @@
 			<dependency>
 				<groupId>commons-codec</groupId>
 				<artifactId>commons-codec</artifactId>
-				<version>1.17.1</version>
+				<version>1.18.0</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
@@ -149,7 +149,7 @@
 			<dependency>
 				<groupId>joda-time</groupId>
 				<artifactId>joda-time</artifactId>
-				<version>2.13.0</version>
+				<version>2.13.1</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
@@ -169,7 +169,7 @@
 			<dependency>
 				<groupId>org.mockito</groupId>
 				<artifactId>mockito-core</artifactId>
-				<version>5.14.0</version>
+				<version>5.16.1</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
@@ -179,7 +179,7 @@
 			<dependency>
 				<groupId>net.sf.py4j</groupId>
 				<artifactId>py4j</artifactId>
-				<version>0.10.9.7</version>
+				<version>0.10.9.9</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
@@ -209,7 +209,7 @@
 			<dependency>
 				<groupId>com.google.code.gson</groupId>
 				<artifactId>gson</artifactId>
-				<version>2.11.0</version>
+				<version>2.12.1</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
@@ -259,7 +259,7 @@
 			<dependency>
 				<groupId>com.google.guava</groupId>
 				<artifactId>guava</artifactId>
-				<version>33.3.1-jre</version>
+				<version>33.4.0-jre</version>
 				<type>jar</type>
 			</dependency>
 		</dependencies>
diff --git a/base/uk.ac.stfc.isis.ibex.ui.configserver.tests/src/uk/ac/stfc/isis/ibex/ui/configserver/tests/CheckboxLabelProviderTest.java b/base/uk.ac.stfc.isis.ibex.ui.configserver.tests/src/uk/ac/stfc/isis/ibex/ui/configserver/tests/CheckboxLabelProviderTest.java
index 3f94ae82bc..2bee9b8a0b 100644
--- a/base/uk.ac.stfc.isis.ibex.ui.configserver.tests/src/uk/ac/stfc/isis/ibex/ui/configserver/tests/CheckboxLabelProviderTest.java
+++ b/base/uk.ac.stfc.isis.ibex.ui.configserver.tests/src/uk/ac/stfc/isis/ibex/ui/configserver/tests/CheckboxLabelProviderTest.java
@@ -26,6 +26,7 @@
 import static org.mockito.Mockito.*;
 
 import java.util.List;
+import java.util.stream.Stream;
 
 import org.eclipse.core.databinding.observable.Realm;
 import org.eclipse.core.databinding.observable.map.WritableMap;
@@ -211,16 +212,16 @@ public void GIVEN_table_WHEN_checkboxes_updated_then_table_sorted_THEN_checkbox_
     public void GIVEN_checkbox_with_selection_adapters_WHEN_clear_checkbox_selection_listeners_THEN_selection_adapters_removed() {
         Button mockCheckBox = mock(Button.class);
         
-        TypedListener[] checkBoxListeners = new TypedListener[2];
-        checkBoxListeners[0] = new TypedListener(modifiedCheckboxLabelProvider.new CheckboxSelectionAdapter(mockCheckBox, testModels[0]));
-        checkBoxListeners[1] = new TypedListener(modifiedCheckboxLabelProvider.new CheckboxSelectionAdapter(mockCheckBox, testModels[1]));
+        var checkBoxListeners = new CheckboxSelectionAdapter[2];
+        checkBoxListeners[0] = modifiedCheckboxLabelProvider.new CheckboxSelectionAdapter(mockCheckBox, testModels[0]);
+        checkBoxListeners[1] = modifiedCheckboxLabelProvider.new CheckboxSelectionAdapter(mockCheckBox, testModels[1]);
         
-        when(mockCheckBox.getListeners(SWT.Selection)).thenReturn(checkBoxListeners);
+        when(mockCheckBox.getTypedListeners(SWT.Selection, CheckboxSelectionAdapter.class)).thenReturn(Stream.of(checkBoxListeners));
         
         CheckboxLabelProvider.clearCheckBoxSelectListeners(mockCheckBox);
         
-        verify(mockCheckBox, times(1)).removeSelectionListener((SelectionListener) checkBoxListeners[0].getEventListener());
-        verify(mockCheckBox, times(1)).removeSelectionListener((SelectionListener) checkBoxListeners[1].getEventListener());
+        verify(mockCheckBox, times(1)).removeSelectionListener((SelectionListener) checkBoxListeners[0]);
+        verify(mockCheckBox, times(1)).removeSelectionListener((SelectionListener) checkBoxListeners[1]);
     }
     
     @Test
diff --git a/base/uk.ac.stfc.isis.ibex.ui.graphing/src/uk/ac/stfc/isis/ibex/ui/graphing/websocketview/MatplotlibWebsocketEndpoint.java b/base/uk.ac.stfc.isis.ibex.ui.graphing/src/uk/ac/stfc/isis/ibex/ui/graphing/websocketview/MatplotlibWebsocketEndpoint.java
index 78aff9ef7b..6efe4a5755 100644
--- a/base/uk.ac.stfc.isis.ibex.ui.graphing/src/uk/ac/stfc/isis/ibex/ui/graphing/websocketview/MatplotlibWebsocketEndpoint.java
+++ b/base/uk.ac.stfc.isis.ibex.ui.graphing/src/uk/ac/stfc/isis/ibex/ui/graphing/websocketview/MatplotlibWebsocketEndpoint.java
@@ -254,7 +254,8 @@ public void cursorPositionChanged(final MatplotlibCursorPosition position) {
 		final Map<String, Object> event = Map.of(
 				"x", position.x(), 
 				"y", position.y(), 
-				"button", 0, 
+				"button", 0,
+				"buttons", 0,
 				"guiEvent", new HashMap<>(), 
 				"modifiers", new ArrayList<>()
 		);
@@ -285,7 +286,8 @@ public void notifyButtonPress(final MatplotlibCursorPosition position, Matplotli
 	  final Map<String, Object> event = Map.of(
 			  "x", position.x(), 
 			  "y", position.y(), 
-			  "button", 0, 
+			  "button", 0,
+			  "buttons", 0,
 			  "guiEvent", new HashMap<>(), 
 			  "modifiers", new ArrayList<>()
 	  );
diff --git a/base/uk.ac.stfc.isis.ibex.ui.widgets/.settings/org.eclipse.jdt.core.prefs b/base/uk.ac.stfc.isis.ibex.ui.widgets/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f4d933e4eb..0000000000
--- a/base/uk.ac.stfc.isis.ibex.ui.widgets/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
-org.eclipse.jdt.core.compiler.compliance=11
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=11
diff --git a/base/uk.ac.stfc.isis.ibex.ui.widgets/src/uk/ac/stfc/isis/ibex/ui/widgets/CheckboxLabelProvider.java b/base/uk.ac.stfc.isis.ibex.ui.widgets/src/uk/ac/stfc/isis/ibex/ui/widgets/CheckboxLabelProvider.java
index 40a2b1c863..6f435a2c07 100644
--- a/base/uk.ac.stfc.isis.ibex.ui.widgets/src/uk/ac/stfc/isis/ibex/ui/widgets/CheckboxLabelProvider.java
+++ b/base/uk.ac.stfc.isis.ibex.ui.widgets/src/uk/ac/stfc/isis/ibex/ui/widgets/CheckboxLabelProvider.java
@@ -29,10 +29,7 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.TypedListener;
 
 /**
  * A LabelProvider that adds a check box to a cell in a table. 
@@ -185,16 +182,8 @@ private void resetCheckBoxListeners(boolean doUpdate, Button checkBox, T model)
 	 * will remove.
 	 */
 	public static void clearCheckBoxSelectListeners(Button checkBox) {
-        for (Listener listener: checkBox.getListeners(SWT.Selection)) {
-            if (listener instanceof TypedListener) {
-                TypedListener typedListener = (TypedListener) listener;
-                
-                if (typedListener.getEventListener() instanceof CheckboxLabelProvider.CheckboxSelectionAdapter) {
-                    
-                    checkBox.removeSelectionListener((SelectionListener)
-                        typedListener.getEventListener());
-                }
-            }
+        for (var listener: checkBox.getTypedListeners(SWT.Selection, CheckboxLabelProvider.CheckboxSelectionAdapter.class).toList()) {
+            checkBox.removeSelectionListener(listener);
         }
     }