Для школьного проекта мне нужно создать простое приложение для рисования, которое может рисовать линии, овалы и прямоугольники.
В задании указано, что мне нужны кнопки панели инструментов и пункты меню для каждый тип формы.
Я хотел бы пойти немного дальше и дальше, сделав кнопки JToggleButtons
на панели инструментов и элементы меню JRadioButtonMenuItems
. Более того, я хочу, чтобы когда вы выбираете одну из кнопок панели инструментов, она отменяет выбор других, выбирает соответствующий пункт меню и отменяет выбор других пунктов меню. То же самое для выбора одного из пунктов меню.
Я знаю, что могу сгруппировать любую AbstractButton
с помощью ButtonGroup
, но я не уверен, что это правильный путь, потому что хотя он отлично справляется с одной "группой" кнопок,
Поэтому я попробовал следующее в /Configuration/TypoScript/setup.txt: plugin.myextension ....
Я расширил таблицу страниц и теперь хочу использовать некоторые данные в объекте домена под названием «Теги ".
Итак, я пробовал следующее в /Configuration/TypoScript/setup.txt
:
plugin.myextension.persistence.classes.Tx_myextension_Domain_Model_Tag {
mapping {
tableName = pages
recordType = Tx_myextension_Domain_Model_Tag
columns {
tx_myextension_tag_name.mapOnProperty = name
uid.mapOnProperty = id
}
}
}
Но похоже, что расширение пытается получить доступ к таблице Tx_myextension_Domain_Model_Tag (которой не существует)
Это Я получаю ошибку:
Tx_Extbase_Persistence_Storage_Exception_SqlError`
Таблица 'tx_myextension_domain_model_tag' не существует: SELECT tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. 121 --- 1853032-
Мои классы домена, которые имеют сопоставления «один-ко-многим», обычно принимают следующую форму (непроверенный код):
public Customer Customer
{
// Public methods.
public Order AddOrder(Order order)
{
_orders.Add(order);
}
public Order GetOrder(long id)
{
return _orders.Where(x => x.Id).Single();
}
// etc.
// Private fields.
private ICollection _orders = new List();
}
Примеры кода EF4 только Я видел, как открывать общедоступную коллекцию ICollection при работе с отношениями «один ко многим».
Есть ли способ сохранить и восстановить мои коллекции, открыв их? В противном случае может показаться, что мои объекты домена будут разработаны с учетом требований ORM, что, похоже, противоречит духу наших усилий. Предоставление ICollection (с его методами Add и т. Д.) Не кажется особенно чистым и не будет моим подходом по умолчанию.
Обновление
Нашел этот пост , который предполагает, что это не так. возможно в мае. Конечно, плакат Microsoft действительно сказал, что они были " {int x, y; } эти два значения могут использоваться для представления позиции, а также ширины и высоты. предоставляет ли C ++ возможность для ...
Допустим, у меня есть базовый класс 2D-векторов вроде
class vector2
{
int x, y;
}
, эти два значения могут использоваться для представления положения, а также ширины и высоты. С ++ предоставляет мне возможность реализовать такую функцию, как vector2 :: getXpos ()
, а затем также определить vector2 :: getWidth ()
и использовать ту же реализацию.
Я знаю, что могу просто сделать обе эти функции встроенными, но компилятор может решить не встраивать эти функции. поэтому, если getWidth
только что вызвал getXpos
, вы получите два вызова функций.
Более реалистичный пример того, для чего я хотел бы использовать это, - getLength ()
и эээ ...
grid = new Slick.Grid ($ ("# myGrid"), данные, столбцы, параметры);
В ClassA есть такие методы. void Add (строка str); В ClassA есть такие методы. void Add (строка str);
void ...
Есть такая проблема дизайна.
Предположим, у вас есть набор классов, реализующих похожие методы, но не идентичные.
Пример: ClassA имеет такие методы.
void Add(string str);
void Delete(string str);
List GetInfo(string name);
Другой класс, ClassB, имеет следующие методы.
void Add(Dictionary Info);
void Delete(string str);
Dictionary GetInfo(string name);
Итак, природа методы аналогичны, но типы возвращаемых данных / входные параметры отличаются. Если я разработаю интерфейс для сохранения согласованности, я могу определить только операцию удаления там. В качестве альтернативы я могу думать о наборе независимых классов без каких-либо отношений друг с другом (конечно, без реализаций интерфейса), но я не думаю, что это хороший дизайн.
- Какой подход я могу использовать для реализации этого?
- Я новичок в общих интерфейсах. Помогает ли это в этом случае? Если так, я собираюсь изучить и внедрить их. { общедоступные: CGarage (); ~ CGarage (); typedef std :: vector
CarCollection; ... В своей повседневной работе я часто пишу классы, подобные этому упрощенному примеру:
class CGarage { public: CGarage(); ~CGarage(); typedef std::vector
CarCollection; private: CarCollection m_Cars; }; Я хочу, чтобы пользователи CGarage могли только читать доступ к коллекции CarCollection. Для достижения этой цели есть несколько общих решений, которые все не очень удовлетворительны:
Решение 1
class CGarage { Car GetCar(CarCollection::size_type index) const; CarCollection::size_type CarCount() const; };
Главный недостаток:
- Из-за отсутствия итераторов я не могу использовать алгоритмы STL в Cars (например, for_each (. ..))
Решение 2
class CGarage { CarCollection::const_iterator CarBegin() const; CarCollection::const_iterator CarEnd() const; CarCollection::size_type CarCount() const; };
Главный недостаток: чтобы увидеть, что недавно выводил процесс nohup-ed? У меня все еще открыт этот процесс, но я запустил его с перенаправлением всего вывода на /dev/...
Я знаю, что шансы крайне низки, но есть ли способ и я могу показать, что время тратится после завершения работы функции, но до того, как она вернет управление, следующим методом:
ts1 = tic; disp ('calling function'); functionCall(args); disp (['control returned to caller - ', num2str(toc(ts1))]);
Первая строка функции, которую я вызываю, -
ts2 = tic
, а последняя строка isdisp (['last line of function- ', num2str(toc(ts2))]);
Результатом является
вызывающая функция
последняя строка функции - 24.0043
элемент управления возвращен вызывающей стороне - 49.857
Пробираясь сквозь сети, я думаю, что это симптом того, как MATLAB управляет объем памяти. Он освобождается при возврате функции, и иногда это занимает много времени. Функция выделяет несколько больших (~ 1 миллион элементов) массивов. Он также работает с дескрипторами, но не создает никаких новых объектов дескрипторов или хранилищ явно. У меня следующие вопросы:
- Это определенно проблема с управлением памятью?
- Есть ли какой-нибудь систематический способ диагностировать причину проблемы в этой функции? Хорошая идея или нет? Ребята, у меня большая база кода .Net, и я пытаюсь познакомить команду с модульным тестированием. Они хорошие ребята, но для них это все в новинку (честно говоря, для меня это тоже в новинку). Один из ...
Ребята, У меня обширная база кода .Net, и я пытаюсь познакомить команду с модульным тестированием. Они хорошие ребята, но для них это все в новинку (честно говоря, для меня это тоже в новинку).
Одна из проблем заключается в том, что кодовая база интенсивно использует статические классы в System.IO, их много в библиотеки статических классов и классов не записываются в интерфейсы (если для этого нет реальной причины в дизайне).
Я разрабатываю стратегию простоты использования с использованием NUnit и FakeItEasy.
Для решения зависимости статических классов Я написал инструмент, который генерирует классы-оболочки и интерфейсы для существующих статических классов. например, в файле конфигурации я говорю, что мне нужны оболочки для
Каталог и файл System.IO
, инструмент генерирует сборку с кодом по строкам. . . или вы думаете, что это работоспособный подход?