Closed GoogleCodeExporter closed 8 years ago
This has always been something I've been intending to add. The funny thing is
that every time I think we need this, it turns out that I'm designing something
badly. To date I've not encountered a situation where a warning icon is
actually needed.
Blockly's design philosophy is that everything is legal. There are no syntax
errors. If something is wrong, Blockly should fix it. For example, Blockly
simply won't let you plug "Hello" into the square root block. There's no "type
mismatch" warning, it just won't happen. Another example, Blockly will quietly
delete all function calls when a function definition is deleted. There's no
"unknown function" warning, it just won't happen.
I've seen enough of these issues appear, and been resolved without a warning,
that I'm reluctant to add this warning icon. Making Blockly always legal does
take more work, but I think it's worth it. Tell me what your circumstances
are. Can you think of an always legal way to structure your issue?
BTW, Blockly's warning icon would be a blue triangle with an exclamation mark
in it. Right next to the circular comment icon and the square edit icon.
Original comment by neil.fra...@gmail.com
on 11 Jul 2012 at 12:40
Original comment by neil.fra...@gmail.com
on 18 Jul 2012 at 9:02
Hi, sorry for the delayed response ...
I do generally agree with you, that a warning icon shouldn't be required.
Our issue is around a fairly painful use case. We have wrapped Blockly around a
DSL for building out virtual servers. The problem is that Blockly is part of a
much bigger system, and sometimes we can't easily verify that an issue exists
until we run the associated logic, or that we have inter-dependencies between
various UI interfaces.
Here are the two scenarios:
Scenario 1:
So the scenario where we want warning icon is because of a dependency between
Blockly and another component. Essentially we are building an interface to help
setup virtual servers. And as part of doing this the user has the option of
uploading files to a virtual server after its been built. The user can upload
files to our website and switch to another tab on the webpage to build the
Blockly related script. The Blockly block for what file to upload is a drop
down which is populated based on certain criteria for the specific virtual
server.
We've done our best to make Blockly stay consistent with the list of uploaded
files, but we've found that if a user moves the file upload block around to a
different server or there are no files uploaded we end up in an inconsistent
state where a file can't be specified. We don't want to require the user to
upload a file before placing a file upload block, but we also want the user to
know there is an issue, in a gentle way, if no file has been specified.
Scenario 2:
We've partially implemented a debug interface for our capability to build out
virtual servers, so that a user can step through the build out process to see
what is happening. But if something goes wrong, we'd like to highlight the
specific block where the issue exists, and provide the user with some insight
as to how to fix the issue. Our current method is to have a pop-up dialog box
which follows along as the user steps through the process.
Original comment by dtyre...@gmail.com
on 19 Jul 2012 at 2:37
Point taken. Reopening bug.
Original comment by neil.fra...@gmail.com
on 20 Jul 2012 at 6:27
Done (r373). Just call block.setWarningText('Ahhh!') to create a warning, or
pass null to remove the warning (same as comments). See the break/continue
block for an example; a warning appears if it is not nested in a loop.
Original comment by neil.fra...@gmail.com
on 28 Jul 2012 at 6:54
Thanks! That is awesome!
Original comment by dtyre...@gmail.com
on 28 Jul 2012 at 4:32
Original issue reported on code.google.com by
dtyre...@gmail.com
on 10 Jul 2012 at 8:34