Украшение приложения SWT на Mac

Основное преимущество наличия OpenID будет замечено в долгосрочной перспективе. Вместо того, чтобы иметь необходимость относиться к различным сайтам за идентификационные данные, Вы делаете это однажды и затем используете их на всех сайтах, которые требуют уникальных идентификационных данных. Конечно, для безопасных сайтов как банковское дело и торговля им будет нуждаться в другом виде размышления в целом. Но для сайтов социальных сетей и т.п. можно использовать его легко.

Родителям будет легко также, потому что теперь они должны помнить только одно имя пользователя/пароль. Много времен, нам становится трудным помнить то, что входит в систему, мы имеем, в котором сайте, и заканчивают тем, что использовали корректное имя пользователя/пароль Сайта на Сайте B. OpenID решит это. Плюс он - хорошая модель дохода для поставщика OpenID и пользователя. Я могу войти в такие все подробности поставщика, которые я готов дать и каждая такая подробная информация, которую я предоставляю, я могу заработать деньги.

, Возможно, поставщик может подключить меня коаксиальным кабелем, чтобы сказать этому больше обо мне с помощью то, что как стимул, который это может затем продать сайтам, в которых я регистрируюсь. Так Расположите платежи OpenID для моей информации. OpenID затем передает сокращение этого мне. Сайт A не должен управлять пользователями, OpenID получает деньги, пользователь получает деньги, все счастливы :)

Этот способ, которым Вы не должны будете делать OpenID обязательным. Сами люди захотят это. Поставщики OpenID будут затем конкурировать среди себя для предоставления лучших услуг, и где существует конкуренция будет лучшее значение, предоставленное всем затронутым. Я думаю, что это - невероятная идея.

Редактирование: Относительно времен простоя в одном конкретном поставщике; если поставщик OpenID A не уверен в обеспечении 100%-го времени работы, оно может взять справку другого поставщика B, и пользователь на Поставщике A может выбрать от поставщика опций A, дает. Сайт, который переходит к поставщику для аутентификации пользователя, будет знать, который другие поставщики перейти в то, в случае, если поставщик A не работает. Это будет сохранено в его базе данных по первому входу в систему автоматически. Кто-либо хочет провести коллективное обсуждение деталей реализации? :)

5
задан Mark 20 November 2009 в 10:17
поделиться

5 ответов

Лучшее, что я могу предложить, - это использовать либо MacWidgets , либо Quaqua , которые бесплатны и находятся на разных стадиях развития. Плохая новость заключается в том, что они оба основаны на Swing, что, вероятно, не то, что вы хотите слышать.

1
ответ дан 14 December 2019 в 04:40
поделиться

Вы можете легко заставить ваше приложение выглядеть и вести себя как приложение Mac. Apple предоставляет приложение под названием JarBundler, с которым вы можете разместить свои пункты меню там, где они должны быть, он также создаст исполняемый файл с возможностью двойного щелчка, и вы можете установить значок.

Компоненты Swing в Mac OS X очень похожи на их какао компоненты, а для OS X вы можете установить некоторые специальные флаги, которые сделают их такими же, как их счетные части какао, например, вы можете установить флаг для JTextField и сделать его похожим на поле поиска какао.

Также все Mac поставляются с java предустановлен, так что беспокоиться меньше.

1
ответ дан 14 December 2019 в 04:40
поделиться

Обычно это проблема Swing, а не SWT (SWT напрямую связан с виджетами, предоставляемыми OS / framework) - цитата из Мягкое введение в SWT и JFace 2 :

SWT - это библиотека, которая создает Java вид на родной хост, работающий системные элементы управления графическим интерфейсом. Это хозяин зависит от реализации. Это означает У приложений на основе SWT есть несколько ключевые характеристики: 1. Они выглядят, действуют и работают как «родные» приложения. 2. Предоставляемые виджеты отражают виджеты (компоненты и элементы управления), предоставленные в операционной системе хоста. 3. Любое особое поведение. библиотеки GUI хоста отражается в графических интерфейсах SWT.

Milestone до 3.5 использовался для использования Carbon framework, а теперь 3.5+ поддерживает как 32/64-битную структуру Cocoa 1 , так что, возможно, это вызвало у вас замешательство? Или вы можете быть более конкретными, дайте нам версию, которую вы используете, и несколько снимков экрана / примеров кода для воспроизведения?

Я некоторое время занимался разработкой Java-приложения на основе SWT / Eclipse RCP для OSX и не обнаружил серьезных проблем с внешний вид (потому что он не на 100% соответствует Apple HID 3 , поскольку он соответствует Eclipse UIG)

6
ответ дан 14 December 2019 в 04:40
поделиться

Предостережение: Я не знаю Java. Немного о наборах символов.

Вы не указываете, какой именно набор символов вы точно используете.

Но независимо от того, что вы используете, невозможно преобразовать последовательность Юникода в ASCII и сохранить исходную длину и позиции символов, просто потому, что набор символов Юникода будет использовать несколько байтов для некоторых символов (очевидно).

Единственным исключением, о котором я знаю, будет последовательность UTF-8, содержащая только символы ASCII: Эта последовательность уже будет идентична в UTF-8 и ASCII, потому что UTF-8 использует многобайтовые символы только в случае необходимости. (Я не знаю о других ароматах Юникода, могут быть и другие динамические).

Единственный обходной путь, который я вижу, это добавление космоса к любому особому символу, который был заменен ASCII, но который будет портить последовательность ( Göteborg в UTF8 должен стать Go teborg , чтобы сохранить длину).

Может быть, вы хотите подробно рассказать о том, чего вы хотите/должны достичь, поэтому люди здесь могут предложить обходные пути.

-121--3238916-

Я считаю, что это третий вариант. Он не может просто использовать new T [n] , потому что тогда ему действительно придется создавать столько объектов, сколько он выделяет. E.g

std::vector<Foo> v;
v.reserve(10);

Если бы ваша реализация просто закончила делать новый Foo [10] , то вы бы просто построили 10 экземпляров Foo.

Вместо этого он использует свой распределитель для выделения и освобождения необработанной памяти (без построения объектов), и при необходимости (например, когда вы фактически нажимаете _ назад объекты) помещает созданные копии экземпляры в правильные ячейки памяти в резерве с помощью placement new и удаляет их с помощью явных вызовов деструктора (то, что вы бы сделали только в сочетании с placement new). Класс распределителя предоставляет следующие методы, которые, как я предполагаю, используются реализациями вектора

 void construct(pointer p, const_reference val);

  Returns:
    new((void *)p) T(val)

  void destroy(pointer p);

  Returns:
    ((T*)p)->~T()

Подробнее о размещение нового

-121--1205517-

Я часто использую нечетные «запросы платформы» для настройки приложения. Например, это не совсем о переодевании приложения и многое другое о (например) чтобы в меню выхода было указано "Выход" на Mac и "Выход на окнах. Есть несколько руководств по Маку, которые я не могу обойти так, но это может помочь.

См. Patform.java для класса коммутации и ExitAction.java для примера его использования.

Удачи с ним: D

0
ответ дан 14 December 2019 в 04:40
поделиться

Я создал поддержку встроенной панели инструментов Mac OS сначала для Carbon, а затем для версии SWT какао. В то время мне удалось перенести переключатель перспективы затмения на встроенную панель инструментов. У меня не было опыта работы с Obj-C, так что версия Cocoa была более трудоемкой, чем версия Carbon, но, судя по всему, это не так уж сложно. После поддержки панели инструментов я написал код для поддержки альфа-компоновки, собственной прозрачности изображения, эффектов аппаратного ускорения (CAAnimation). Для них более сложной задачей было понять, почему некоторые API-интерфейсы даже не были доступны для генерации генератором Eclipse JNI. Оказалось, что генератор моста python, предоставляемый Apple, не был обновлен для синтаксиса свойств Obj-C 2.0. Когда я исправил это, я смог заставить SWT JNI Generator выдавать недостающие API. С этого момента их использование было самой легкой частью. Вы можете найти некоторые частичные части этого на сервере bugzilla eclipse.org.

Я не могу сказать, что это всегда просто, но если вы уже знаете Obj-C, то сможете делать все, что захотите. Пару дней назад я снова начал работать над SWT Cocoa, чтобы добавить поддержку изображений ARGB (в отличие от ограниченной поддержки прозрачности, предлагаемой ImageData).

Удачи.

0
ответ дан 14 December 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: