Skip to content
DataMiner Dojo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Updates & Insights
  • Questions
  • Learning
    • E-learning Courses
    • Empower Replay: Limited Edition
    • Tutorials
    • Open Classroom Training
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • YouTube Videos
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Agility
      • Book your Agile Fundamentals training
      • Book you Kanban workshop
      • Learn more about Agile
        • Agile Webspace
        • Everything Agile
          • The Agile Manifesto
          • Best Practices
          • Retro Recipes
        • Methodologies
          • The Scrum Framework
          • Kanban
          • Extreme Programming
        • Roles
          • The Product Owner
          • The Agile Coach
          • The Quality & UX Coach (QX)
    • >> Go to DataMiner Docs
  • DevOps
    • About the DevOps Program
    • Sign up for the DevOps Pogram
    • DataMiner DevOps Support
    • Feature Suggestions
  • Swag Shop
  • Downloads
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Solutions
    • Deal Registration
  • Contact
    • Sales, Training & Certification
    • DataMiner Support
    • Global Feedback Survey
  • >> Go to dataminer.services

IAS – How to use StackPanel with Skyline.DataMiner.Utils.InteractiveAutomationScriptToolkit

Solved88 views2 days agoIAS IAS Toolkit interactive automation script
2
Felix Wesemeier [DevOps Catalyst]2.04K 3 days ago 0 Comments

Hi Dojo Community,

I noticed that Skyline uses StackPanel in some of their IAS.

Since I need the same functionality, I would like to use this or a similar tool for the latest Skyline.DataMiner.Utils.InteractiveAutomationScriptToolkit (10.5.4.3).

However, it is not available.

It is only available in Skyline.DataMiner.Utils.InteractiveAutomationScriptToolkit.Preview (0.0.0), which was released in 2023.

Is there something similar I can use with Skyline.DataMiner.Utils.InteractiveAutomationScriptToolkit?

Felix Wesemeier [DevOps Catalyst] Selected answer as best 2 days ago

1 Answer

  • Active
  • Voted
  • Newest
  • Oldest
1
Thomas Cauwelier [SLC] [DevOps Advocate]1.60K Posted 3 days ago 3 Comments

Hi Felix,

I initially contributed that functionality, but shortly after, I moved to a different department and the project didn’t receive much follow-up attention for a while. Fortunately, it has recently been picked up again, but it still requires some internal testing due to a few breaking changes.

While we can't commit to a release date, you can follow the progress through the GitHub pull request here: https://github.com/SkylineCommunications/Skyline.DataMiner.Utils.InteractiveAutomationScriptToolkit/pull/34

In the meantime, you'll need to manually calculate the widget positions on the grid.

Felix Wesemeier [DevOps Catalyst] Selected answer as best 2 days ago
Felix Wesemeier [DevOps Catalyst] commented 3 days ago

Hi Thomas,
great to know it'll come later.
Calculating the position is working fine.
But I've no idea how to implement the EventHandlers for the dynamically created buttons.
Do you have some example available before StackPanel was developed?
I'm using Model/View/Presenter and adding items to the presenter (e.g. List<Button> with view.ButtonName.Add(new Button(), …) in a for loop.
Within the view I use another for loop for AddWidget(ButtonName[i], …) to place the on the grid.

Thomas Cauwelier [SLC] [DevOps Advocate] commented 2 days ago

While creating the buttons, you could implement the handler as a lambda so you get access to the context for free. Or you add a dictionary that maps the button to the context you need in a handler method:

public class Presenter
{
private readonly View view;
private readonly Model model;
private readonly Engine engine;
private readonly Dictionary<object, Item> itemMap = new Dictionary<object, Item>();

// example 1
public void LoadFromModel_EventHandlerLambda()
{
foreach (Item item in model.items)
{
var button = new Button();
button.Pressed += (o, args) =>
{
engine.GenerateInformation(item.Foo);
model.DoAction(item.Bar);
button.IsEnabled = false;
};

view.ButtonName.Add(button);
}
}

// example 2
public void LoadFromModel_EventHandlerMethod()
{
foreach (Item item in model.items)
{
var button = new Button();
button.Pressed += OnButtonPressed;
itemMap.Add(button, item);
view.ButtonName.Add(button);
}
}

private void OnButtonPressed(object sender, EventArgs args)
{
Item item = itemMap[sender];
engine.GenerateInformation(item.Foo);
model.DoAction(item.Bar);
((Button)sender).IsEnabled = false;
}
}

Felix Wesemeier [DevOps Catalyst] commented 2 days ago

Thanks Thomas, I'll try this.

You are viewing 1 out of 1 answers, click here to view all answers.
Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas
Privacy Policy • Terms & Conditions • Contact

© 2025 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin