def METHOD_NAME(self, context):
    from mathutils import Matrix, Vector
    # ----
    # Move
    def move_get_cb():
        op = SelectSideOfPlaneGizmoGroup.my_target_operator(context)
        return op.plane_co
    def move_set_cb(value):
        op = SelectSideOfPlaneGizmoGroup.my_target_operator(context)
        op.plane_co = value
        # XXX, this may change!
        op.execute(context)
    gz = self.gizmos.new("GIZMO_GT_move_3d")
    gz.target_set_handler("offset", get=move_get_cb, set=move_set_cb)
    gz.use_draw_value = True
    gz.color = 0.8, 0.8, 0.8
    gz.alpha = 0.5
    gz.color_highlight = 1.0, 1.0, 1.0
    gz.alpha_highlight = 1.0
    gz.scale_basis = 0.2
    self.gizmo_move = gz
    # ----
    # Dial
    def direction_get_cb():
        op = SelectSideOfPlaneGizmoGroup.my_target_operator(context)
        no_a = self.gizmo_dial.matrix_basis.col[1].xyz
        no_b = Vector(op.plane_no)
        no_a = (no_a @ self.view_inv).xy.normalized()
        no_b = (no_b @ self.view_inv).xy.normalized()
        return no_a.angle_signed(no_b)
    def direction_set_cb(value):
        op = SelectSideOfPlaneGizmoGroup.my_target_operator(context)
        matrix_rotate = Matrix.Rotation(-value, 3, self.rotate_axis)
        no = matrix_rotate @ self.gizmo_dial.matrix_basis.col[1].xyz
        op.plane_no = no
        op.execute(context)
    gz = self.gizmos.new("GIZMO_GT_dial_3d")
    gz.target_set_handler("offset", get=direction_get_cb, set=direction_set_cb)
    gz.draw_options = {'ANGLE_START_Y'}
    gz.use_draw_value = True
    gz.color = 0.8, 0.8, 0.8
    gz.alpha = 0.5
    gz.color_highlight = 1.0, 1.0, 1.0
    gz.alpha_highlight = 1.0
    self.gizmo_dial = gz